org.eclipse.xtext.resource.containers
Class StateBasedContainer

java.lang.Object
  extended by org.eclipse.xtext.resource.impl.AbstractCompoundSelectable
      extended by org.eclipse.xtext.resource.impl.AbstractContainer
          extended by org.eclipse.xtext.resource.impl.ResourceDescriptionsBasedContainer
              extended by org.eclipse.xtext.resource.containers.StateBasedContainer
All Implemented Interfaces:
IContainer, IResourceDescription.Event.Listener, ISelectable

public class StateBasedContainer
extends ResourceDescriptionsBasedContainer

A specialized container which is based on some long living lightweight state. A container state is used to decide about the actually contained resource descriptions.

Author:
Sebastian Zarnekow - Initial contribution and API

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.eclipse.xtext.resource.IContainer
IContainer.Manager
 
Field Summary
 
Fields inherited from interface org.eclipse.xtext.resource.IContainer
NULL_CONTAINER
 
Constructor Summary
StateBasedContainer(IResourceDescriptions descriptions, IContainerState state)
           
 
Method Summary
protected  java.util.Map<org.eclipse.emf.common.util.URI,IResourceDescription> doGetUriToDescription()
           
protected  java.lang.Iterable<IEObjectDescription> filterByURI(java.lang.Iterable<IEObjectDescription> unfiltered)
           
 java.lang.Iterable<IEObjectDescription> getExportedObjects()
           
 java.lang.Iterable<IEObjectDescription> getExportedObjects(org.eclipse.emf.ecore.EClass type, QualifiedName qualifiedName, boolean ignoreCase)
           
 java.lang.Iterable<IEObjectDescription> getExportedObjectsByObject(org.eclipse.emf.ecore.EObject object)
           
 java.lang.Iterable<IEObjectDescription> getExportedObjectsByType(org.eclipse.emf.ecore.EClass type)
           
 IResourceDescription getResourceDescription(org.eclipse.emf.common.util.URI uri)
           
 int getResourceDescriptionCount()
           
 java.lang.Iterable<IResourceDescription> getResourceDescriptions()
           
 boolean hasResourceDescription(org.eclipse.emf.common.util.URI uri)
           
 boolean isEmpty()
          Clients may want to check the selectable to skip its processing in case it is empty.
 
Methods inherited from class org.eclipse.xtext.resource.impl.ResourceDescriptionsBasedContainer
contains, descriptionsChanged, getDescriptions, getUriToDescription, isUriToDescriptionCacheEnabled, setUriToDescriptionCacheEnabled
 
Methods inherited from class org.eclipse.xtext.resource.impl.AbstractContainer
getSelectables
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StateBasedContainer

public StateBasedContainer(IResourceDescriptions descriptions,
                           IContainerState state)
Method Detail

filterByURI

protected java.lang.Iterable<IEObjectDescription> filterByURI(java.lang.Iterable<IEObjectDescription> unfiltered)
Overrides:
filterByURI in class ResourceDescriptionsBasedContainer

hasResourceDescription

public boolean hasResourceDescription(org.eclipse.emf.common.util.URI uri)
Specified by:
hasResourceDescription in interface IContainer
Overrides:
hasResourceDescription in class ResourceDescriptionsBasedContainer
Returns:
true if the container can provide a resource description with the given uri.

getResourceDescriptionCount

public int getResourceDescriptionCount()
Specified by:
getResourceDescriptionCount in interface IContainer
Overrides:
getResourceDescriptionCount in class ResourceDescriptionsBasedContainer
Returns:
the total number of resource descriptions returned by IContainer.getResourceDescriptions()

isEmpty

public boolean isEmpty()
Description copied from interface: ISelectable
Clients may want to check the selectable to skip its processing in case it is empty. Implementations should be fast and not require expensive precalculation. Selectable may return false if it is too expensive to compute the actual result.

Specified by:
isEmpty in interface ISelectable
Overrides:
isEmpty in class AbstractCompoundSelectable
Returns:
true if the selectable does not provide any descriptions.

getResourceDescription

public IResourceDescription getResourceDescription(org.eclipse.emf.common.util.URI uri)
Specified by:
getResourceDescription in interface IContainer
Overrides:
getResourceDescription in class ResourceDescriptionsBasedContainer
Returns:
the IResourceDescription for the given URI, or null is this container does not contain such an IResourceDescription. The result may be a cached view on the actual content of the underlying resource.

getResourceDescriptions

public java.lang.Iterable<IResourceDescription> getResourceDescriptions()
Specified by:
getResourceDescriptions in interface IContainer
Overrides:
getResourceDescriptions in class ResourceDescriptionsBasedContainer
Returns:
the IResourceDescription contained in this container. The result is never null. The result may be a cached view on the actual content of the underlying resources.

doGetUriToDescription

protected java.util.Map<org.eclipse.emf.common.util.URI,IResourceDescription> doGetUriToDescription()
Overrides:
doGetUriToDescription in class ResourceDescriptionsBasedContainer

getExportedObjects

public java.lang.Iterable<IEObjectDescription> getExportedObjects()
Specified by:
getExportedObjects in interface ISelectable
Overrides:
getExportedObjects in class AbstractCompoundSelectable
Returns:
all exported elements. May not be null.

getExportedObjectsByType

public java.lang.Iterable<IEObjectDescription> getExportedObjectsByType(org.eclipse.emf.ecore.EClass type)
Specified by:
getExportedObjectsByType in interface ISelectable
Overrides:
getExportedObjectsByType in class ResourceDescriptionsBasedContainer
Returns:
all elements which match the given type. May not be null.

getExportedObjectsByObject

public java.lang.Iterable<IEObjectDescription> getExportedObjectsByObject(org.eclipse.emf.ecore.EObject object)
Specified by:
getExportedObjectsByObject in interface ISelectable
Overrides:
getExportedObjectsByObject in class AbstractContainer
Returns:
all elements which match the given instance. May not be null.

getExportedObjects

public java.lang.Iterable<IEObjectDescription> getExportedObjects(org.eclipse.emf.ecore.EClass type,
                                                                  QualifiedName qualifiedName,
                                                                  boolean ignoreCase)
Specified by:
getExportedObjects in interface ISelectable
Overrides:
getExportedObjects in class ResourceDescriptionsBasedContainer
Returns:
all elements which match the given qualified name and type. May not be null.