Class 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.
  • 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 ISourceContainers
      Throws:
      CoreException - if unable to create the containers