Class AmaltheaIndex
- Object
-
- AmaltheaIndex
-
public final class AmaltheaIndex extends ObjectThis class provides static methods for efficient model navigation, search and delete.An
AmaltheaCrossReferenceAdapteris 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
getInverseReferencesis 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 voidbuildIndex(@NonNull Notifier context)Creates the index explicitly.static voiddelete(@NonNull EObject eObject)Deletes the object from itscontainingresource and/or itscontainingobject as well as from any other feature that references it within the enclosing root context (resource set, resource or root object).static voiddeleteAll(@NonNull Collection<? extends EObject> eObjects)Deletes the objects from theircontainingresource and/or theircontainingobject as well as from any other feature that references it within the enclosing root context (resource set, resource or root object).static voiddeleteAll(@NonNull Collection<? extends EObject> eObjects, boolean recursive)Deletes the objects from theircontainingresource and/or theircontainingobject as well as from any other feature that references it within the enclosing root context (resource set, resource or root object).static voiddumpAdapterInfo(@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 IReferablegetEObjectByID(@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 giveneObjectFilters:
- 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 itscontainingresource and/or itscontainingobject 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 theircontainingresource and/or theircontainingobject 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 theircontainingresource and/or theircontainingobject 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)
-
-