Package org.openflexo.pamela
Class PamelaMetaModelLibrary
- java.lang.Object
-
- org.openflexo.pamela.PamelaMetaModelLibrary
-
public class PamelaMetaModelLibrary extends java.lang.Object
ThePamelaMetaModelLibrary
represent the API used to instantiate a PAMELA model (aPamelaMetaModel
). ComputedPamelaMetaModel
are stored in an internal cache.
The idea behind this is to instantiate required model using a list of class acting as base entries. The inheritance links as well as the properties links (getter/setter) are explored - both are dependancy links -, as well as @Imports and @Import annotations, until a closure is computed. That scheme allows to avoid the explicit declaration of a PAMELA model boundary, since this is dynamically performed. This offers a basic solution to model fragmentation.
Note following details regarding model exploration:- If a property link should not be followed (accessed type should not be part of returned
PamelaMetaModel
), use @Getter(...,ignoreType=true)) - If a property type is specialized in PAMELA model to retrieve, declare in that type required entity specializations using @Imports annotations in generic type
- If a property link should not be followed (accessed type should not be part of returned
-
-
Constructor Summary
Constructors Constructor Description PamelaMetaModelLibrary()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
clearCache()
Clear cachestatic PamelaMetaModel
getCompoundModelContext(java.lang.Class<?>... classes)
Return (compute when not existant) aPamelaMetaModel
(a PAMELA model) from supplied base classes as multiple entry pointsstatic PamelaMetaModel
getCompoundModelContext(java.lang.Class<?> baseClass, java.lang.Class<?>[] classes)
Return (compute when not existant) aPamelaMetaModel
(a PAMELA model) from supplied base classes as multiple entry pointsstatic PamelaMetaModel
getCompoundModelContext(java.util.List<java.lang.Class<?>> classes)
Return (compute when not existant) aPamelaMetaModel
(a PAMELA model) from supplied base classes as multiple entry pointsstatic PamelaMetaModel
getModelContext(java.lang.Class<?> baseClass)
Return (compute when not existant) aPamelaMetaModel
(a PAMELA model) from supplied base class a unique entry pointstatic boolean
hasContext(java.lang.Class<?> baseClass)
Indicates ifPamelaMetaModel
identified by baseClass was already computed
-
-
-
Method Detail
-
getModelContext
public static PamelaMetaModel getModelContext(java.lang.Class<?> baseClass) throws ModelDefinitionException
Return (compute when not existant) aPamelaMetaModel
(a PAMELA model) from supplied base class a unique entry point- Parameters:
baseClass
- unique entry point- Returns:
- Throws:
ModelDefinitionException
-
hasContext
public static boolean hasContext(java.lang.Class<?> baseClass)
Indicates ifPamelaMetaModel
identified by baseClass was already computed- Parameters:
baseClass
-- Returns:
-
getCompoundModelContext
public static PamelaMetaModel getCompoundModelContext(java.util.List<java.lang.Class<?>> classes) throws ModelDefinitionException
Return (compute when not existant) aPamelaMetaModel
(a PAMELA model) from supplied base classes as multiple entry points- Parameters:
classes
- classes to consider to compute graph closure- Returns:
- Throws:
ModelDefinitionException
-
getCompoundModelContext
public static PamelaMetaModel getCompoundModelContext(java.lang.Class<?>... classes) throws ModelDefinitionException
Return (compute when not existant) aPamelaMetaModel
(a PAMELA model) from supplied base classes as multiple entry points- Parameters:
classes
- classes to consider to compute graph closure- Returns:
- Throws:
ModelDefinitionException
-
getCompoundModelContext
public static PamelaMetaModel getCompoundModelContext(java.lang.Class<?> baseClass, java.lang.Class<?>[] classes) throws ModelDefinitionException
Return (compute when not existant) aPamelaMetaModel
(a PAMELA model) from supplied base classes as multiple entry points- Parameters:
baseClass
- main entry pointclasses
- other classes to consider to compute graph closure- Returns:
- Throws:
ModelDefinitionException
-
clearCache
public static void clearCache()
Clear cache
-
-