# Class ArchiveSourceContainer

java.lang.Object
org.eclipse.core.runtime.PlatformObject
org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainer
org.eclipse.debug.core.sourcelookup.containers.ArchiveSourceContainer

All Implemented Interfaces:
  `IAdaptable, ISourceContainer`

public class ArchiveSourceContainer extends AbstractSourceContainer
Archive source container for an archive in the workspace. Returns instances of `ZipEntryStorage` as source elements.

Clients may instantiate this class.

Since:
  3.0
Restriction:
  This class is not intended to be subclassed by clients.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`TYPE_ID`
Unique identifier for the archive source container type (value `org.eclipse.debug.core.containerType.archive`).

### Fields inherited from class AbstractSourceContainer

`EMPTY`

## Constructor Summary

Constructors
Constructor
Description
`ArchiveSourceContainer(IFile archive, boolean detectRootPath)`
Creates an archive source container on the given file.

## Method Summary

Modifier and Type
Method
Description
`void`
`dispose()`
Disposes this source container.
`boolean`
`equals(Object obj)`
`Object[]`
`findSourceElements(String name)`
Returns a collection of source elements in this container corresponding to the given name.
`IFile`
`getFile()`
Returns the associated file in the workspace.
`String`
`getName()`
The name of this source container that can be used for presentation purposes.
`ISourceContainerType`
`getType()`
Returns this container's type.
`int`
`hashCode()`
`void`
`init(ISourceLookupDirector director)`
Notification this source container has been added to the given source lookup director.
`boolean`
`isDetectRoot()`
Returns whether root paths are automatically detected in this archive source container.

### Methods inherited from class AbstractSourceContainer

`abort, getDirector, getSourceContainers, getSourceContainerType, isComposite, isFindDuplicates, warn`

### Methods inherited from class PlatformObject

`getAdapter`

### Methods inherited from class Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface IAdaptable

`getAdapter`

## Field Details

### TYPE_ID

public static final String TYPE_ID
Unique identifier for the archive source container type (value `org.eclipse.debug.core.containerType.archive`).

## Constructor Details

### ArchiveSourceContainer

public ArchiveSourceContainer(IFile archive, boolean detectRootPath)
Creates an archive source container on the given file.

Parameters:
  `archive` - archive in the workspace
  `detectRootPath` - whether a root path should be detected. When `true`, searching is performed relative to a root path within the archive based on fully qualified file names. The root path is automatically determined when the first successful search is performed. For example, when searching for a file named `a/b/c.d`, and an entry in the archive named `r/a/b/c.d` exists, the root path is set to `r`. From that point on, searching is performed relative to `r`. When `false`, searching is performed by matching file names as suffixes to the entries in the archive.

## Method Details

### getName

public String getName()
Description copied from interface: `ISourceContainer`
The name of this source container that can be used for presentation purposes. For example, the name of a project.

Returns:
  the name of this source container

### getFile

public IFile getFile()
Returns the associated file in the workspace.

Returns:
  associated file in the workspace

### getType

public ISourceContainerType getType()
Description copied from interface: `ISourceContainer`
Returns this container's type.

Returns:
  this container's type

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### findSourceElements

public Object[] findSourceElements(String name) throws CoreException
Description copied from interface: `ISourceContainer`
Returns a collection of source elements in this container corresponding to the given name. Returns an empty collection if no source elements are found. This source container's source lookup director specifies if duplicate source elements should be searched for, via `isFindDuplicates()`. When `false` the returned collection should contain at most one source element. If this is a composite container, the containers contained by this container are also searched.

The format of the given name is implementation specific but generally conforms to the format of a file name. If a source container does not recognize the name format provided, an empty collection should be returned. A source container may or may not require names to be fully qualified (i.e. be qualified with directory names).

Parameters:
  `name` - the name of the source element to search for
Returns:
  a collection of source elements corresponding to the given name
Throws:
  `CoreException` - if an exception occurs while searching for source elements

### init

public void init(ISourceLookupDirector director)
Description copied from interface: `ISourceContainer`
Notification this source container has been added to the given source lookup director.

Specified by:
  `init` in interface `ISourceContainer`
Overrides:
  `init` in class `AbstractSourceContainer`
Parameters:
  `director` - the director this container has been added to

### dispose

public void dispose()
Description copied from interface: `ISourceContainer`
Disposes this source container. This method is called when the source director associated with this source container is disposed.

Specified by:
  `dispose` in interface `ISourceContainer`
Overrides:
  `dispose` in class `AbstractSourceContainer`

### isDetectRoot

public boolean isDetectRoot()
Returns whether root paths are automatically detected in this archive source container.

Returns:
  whether root paths are automatically detected in this archive source container
Since:
  3.0.1.1