Class AmaltheaIndex
- Object
-
- AmaltheaIndex
-
public final class AmaltheaIndex extends Object
This class provides static methods for efficient model navigation, search and delete.An
AmaltheaCrossReferenceAdapter
is created and attached to the root context of the model. The adapter maintains an index that allows fast access to inverse references and an index based on object name.The method
getInverseReferences
is called from several generated model objects to compute inverse transient references based on the incoming references.
-
-
Method Summary
All Methods Modifier and Type Method Description static void
buildIndex(@NonNull Notifier context)
Creates the index explicitly.static void
delete(@NonNull EObject eObject)
Deletes the object from itscontaining
resource and/or itscontaining
object as well as from any other feature that references it within the enclosing root context (resource set, resource or root object).static void
deleteAll(@NonNull Collection<? extends EObject> eObjects)
Deletes the objects from theircontaining
resource and/or theircontaining
object as well as from any other feature that references it within the enclosing root context (resource set, resource or root object).static void
deleteAll(@NonNull Collection<? extends EObject> eObjects, boolean recursive)
Deletes the objects from theircontaining
resource and/or theircontaining
object as well as from any other feature that references it within the enclosing root context (resource set, resource or root object).static void
dumpAdapterInfo(@NonNull Notifier context, int info, @NonNull PrintStream stream)
Dumps adapter info to a print streamstatic <T extends INamed>
Set<T>getElements(@NonNull Notifier context, @NonNull String name, @NonNull Class<T> targetClass)
Finds elements by name and classstatic <T extends INamed>
Set<T>getElements(@NonNull Notifier context, @NonNull Pattern namePattern, @NonNull Class<T> targetClass)
Finds elements by name pattern and classstatic IReferable
getEObjectByID(@NonNull Notifier context, @Nullable String id)
static <T> EList<T>
getInverseReferences(@NonNull EObject eObject, @NonNull EReference resultEReference, @NonNull Set<@NonNull EReference> targetEReferences)
Computes a list of objects that refer to an EObject via dedicated references.static List<Set<IReferable>>
getObjectsWithConflictingNames(@NonNull Notifier context)
static Set<EObject>
getReferringObjects(@NonNull EObject eObject)
Returns a set of objects that refer to the giveneObject
.static <T extends EObject>
Set<T>getReferringObjects(@NonNull EObject eObject, @NonNull Class<T> targetClass)
Returns a type filtered set of objects that refer to the giveneObject
.static <T extends EObject>
Set<T>getReferringObjects(@NonNull EObject eObject, @NonNull Class<T> targetClass, @NonNull EReference targetEReference)
Returns a filtered set of objects that refer to the giveneObject
-
-
-
Method Detail
-
getInverseReferences
public static <T> EList<T> getInverseReferences(@NonNull EObject eObject, @NonNull EReference resultEReference, @NonNull Set<@NonNull EReference> targetEReferences)
Computes a list of objects that refer to an EObject via dedicated references.This method is called from several generated model objects to compute an inverse transient reference based on the incoming references.
- Parameters:
eObject
- object that implements a derived transient opposite referenceresultEReference
- opposite reference definition (resulting objects are computed)targetEReferences
- list of incoming references- Returns:
- EcoreEList.UnmodifiableEList <T>
-
getReferringObjects
public static Set<EObject> getReferringObjects(@NonNull EObject eObject)
Returns a set of objects that refer to the giveneObject
.- Parameters:
eObject
-- Returns:
- Set of objects (EObject)
-
getReferringObjects
public static <T extends EObject> Set<T> getReferringObjects(@NonNull EObject eObject, @NonNull Class<T> targetClass)
Returns a type filtered set of objects that refer to the giveneObject
.- Parameters:
eObject
-targetClass
-- Returns:
- Set of objects of given type
-
getReferringObjects
public static <T extends EObject> Set<T> getReferringObjects(@NonNull EObject eObject, @NonNull Class<T> targetClass, @NonNull EReference targetEReference)
Returns a filtered set of objects that refer to the giveneObject
Filters:
- type (
targetClass
) - reference (
targetEReference
)
- Parameters:
eObject
-targetClass
-targetEReference
-- Returns:
- Set of objects of given type
- type (
-
getEObjectByID
public static IReferable getEObjectByID(@NonNull Notifier context, @Nullable String id)
-
getObjectsWithConflictingNames
public static List<Set<IReferable>> getObjectsWithConflictingNames(@NonNull Notifier context)
-
buildIndex
public static void buildIndex(@NonNull Notifier context)
Creates the index explicitly. If the index is already available the method will have no effect.This method is optional. Normally the index will be built on demand.
- Parameters:
eObject
-
-
delete
public static void delete(@NonNull EObject eObject)
Deletes the object from itscontaining
resource and/or itscontaining
object as well as from any other feature that references it within the enclosing root context (resource set, resource or root object). Contained children of the object are similarly removed from any features that reference them.- Parameters:
eObject
- object to delete
-
deleteAll
public static void deleteAll(@NonNull Collection<? extends EObject> eObjects)
Deletes the objects from theircontaining
resource and/or theircontaining
object as well as from any other feature that references it within the enclosing root context (resource set, resource or root object). Contained children of the object are similarly removed from any features that reference them.- Parameters:
eObjects
- objects to delete
-
deleteAll
public static void deleteAll(@NonNull Collection<? extends EObject> eObjects, boolean recursive)
Deletes the objects from theircontaining
resource and/or theircontaining
object as well as from any other feature that references it within the enclosing root context (resource set, resource or root object). If recursive is true, contained children of the object are similarly removed from any features that reference them.- Parameters:
eObjects
- objects to deleterecursive
- true: contained children should also be deleted
-
getElements
public static <T extends INamed> Set<T> getElements(@NonNull Notifier context, @NonNull String name, @NonNull Class<T> targetClass)
Finds elements by name and class- Parameters:
context
- EObject, Resource or ResourceSetname
- StringtargetClass
- for example:Label.class
- Returns:
- Set of named objects (INamed)
-
getElements
public static <T extends INamed> Set<T> getElements(@NonNull Notifier context, @NonNull Pattern namePattern, @NonNull Class<T> targetClass)
Finds elements by name pattern and class- Parameters:
context
- EObject, Resource or ResourceSetnamePattern
- for example:Pattern.compile("Prefix_.*")
targetClass
- for example:Label.class
- Returns:
- Set of named objects (INamed)
-
dumpAdapterInfo
public static void dumpAdapterInfo(@NonNull Notifier context, int info, @NonNull PrintStream stream)
Dumps adapter info to a print stream- Parameters:
context
- EObject, Resource or ResourceSetinfo
- content selector- 1 - basic adapter info (resources, size of maps)
- 2 - cross reference map
- 3 - name index
stream
- output stream (use System.out to print to console)
-
-