Package org.eclipse.debug.core.sourcelookup.containers

# Class ContainerSourceContainer

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

All Implemented Interfaces:
  `IAdaptable`, `ISourceContainer`

Direct Known Subclasses:
  `FolderSourceContainer`, `ProjectSourceContainer`

public abstract class ContainerSourceContainer extends CompositeSourceContainer
A source container for a container in the workspace. Source elements are searched for within this container and optionally nested containers.

Names specified in `findSourceElements` method can be simple or qualified. When a name is qualified, a file will be searched for relative to this container, and optionally nested containers.

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

## Field Summary

### Fields inherited from class org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainer

`EMPTY`

## Constructor Summary

Constructors
Constructor
Description
`ContainerSourceContainer(IContainer container, boolean subfolders)`
Constructs a source container on the given workspace container.

## Method Summary

Modifier and Type
Method
Description
`protected ISourceContainer[]`
`createSourceContainers()`
Creates the source containers in this composite container.
`boolean`
`equals(Object obj)`
`Object[]`
`findSourceElements(String name)`
Returns a collection of source elements in this container corresponding to the given name.
`IContainer`
`getContainer()`
Returns the workspace container this source container is rooted at.
`String`
`getName()`
The name of this source container that can be used for presentation purposes.
`int`
`hashCode()`
`boolean`
`isComposite()`
Returns whether this container is a composite container.

### Methods inherited from class org.eclipse.debug.core.sourcelookup.containers.CompositeSourceContainer

`dispose, findSourceElements, getSourceContainers`

### Methods inherited from class org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainer

`abort, getDirector, getSourceContainerType, init, isFindDuplicates, warn`

### Methods inherited from class org.eclipse.core.runtime.PlatformObject

`getAdapter`

### Methods inherited from class java.lang.Object

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

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Methods inherited from interface org.eclipse.debug.core.sourcelookup.ISourceContainer

`getType`

## Constructor Details

### ContainerSourceContainer

public ContainerSourceContainer(IContainer container, boolean subfolders)
Constructs a source container on the given workspace container.

Parameters:
  `container` - the container to search for source in
  `subfolders` - whether nested folders should be searched for source elements

## Method Details

### getContainer

public IContainer getContainer()
Returns the workspace container this source container is rooted at.

Returns:
  the workspace container this source container is rooted at

### 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).

Specified by:
  `findSourceElements` in interface `ISourceContainer`
Overrides:
  `findSourceElements` in class `CompositeSourceContainer`
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

### 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

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### isComposite

public boolean isComposite()
Description copied from interface: `ISourceContainer`
Returns whether this container is a composite container. A composite container is composed of other source containers. For example, a workspace source container may be composed of project source containers.

Specified by:
  `isComposite` in interface `ISourceContainer`
Overrides:
  `isComposite` in class `CompositeSourceContainer`
Returns:
  whether this container is a composite container

### createSourceContainers

protected ISourceContainer[] createSourceContainers() throws CoreException
Description copied from class: `CompositeSourceContainer`
Creates the source containers in this composite container. Subclasses should override this methods.

Specified by:
  `createSourceContainers` in class `CompositeSourceContainer`
Returns:
  the array of `ISourceContainer`s
Throws:
  `CoreException` - if unable to create the containers