Class ComplexTypeInstantiator<T extends ComplexType>
java.lang.Object
org.eclipse.esmf.metamodel.loader.AttributeValueRetriever
org.eclipse.esmf.metamodel.loader.Instantiator<T>
org.eclipse.esmf.metamodel.loader.instantiator.ComplexTypeInstantiator<T>
- All Implemented Interfaces:
Function<org.apache.jena.rdf.model.Resource,T>
- Direct Known Subclasses:
AbstractEntityInstantiator,EntityInstantiator
-
Field Summary
Fields inherited from class org.eclipse.esmf.metamodel.loader.Instantiator
curieDataType, metaModelVersion, model, modelElementFactory, sammc, targetClass, unitFields inherited from class org.eclipse.esmf.metamodel.loader.AttributeValueRetriever
samm -
Constructor Summary
ConstructorsConstructorDescriptionComplexTypeInstantiator(ModelElementFactory modelElementFactory, Class<T> targetClass) -
Method Summary
Modifier and TypeMethodDescriptionapply(org.apache.jena.rdf.model.Resource resource) Initializes aDefaultAbstractEntity.protected abstract TcreateDefaultEntity(MetaModelBaseAttributes metaModelBaseAttributes, List<Property> properties, Optional<ComplexType> extendedEntity, List<org.eclipse.esmf.aspectmodel.urn.AspectModelUrn> extendingComplexTypes) protected Optional<ComplexType>getExtendedEntity(org.apache.jena.rdf.model.Resource resource) Methods inherited from class org.eclipse.esmf.metamodel.loader.Instantiator
buildBaseAttributes, buildEntityInstance, buildLanguageString, buildValue, getElementCharacteristic, getNodesFromList, getPropertiesModels, getResourcesFromList, getType, isTypeOfOrSubtypeOf, propertyValueFromTypeTreeMethods inherited from class org.eclipse.esmf.metamodel.loader.AttributeValueRetriever
attributeValue, attributeValues, optionalAttributeValue
-
Constructor Details
-
ComplexTypeInstantiator
-
-
Method Details
-
apply
Initializes aDefaultAbstractEntity. SinceComplexTypes have a reference to the element which is extended by a particularComplexType, and theAbstractEntityhas a list of references to all elements which extend theAbstractEntity, a circular dependency exists between theComplexTypeand theAbstractEntity. The reference between theComplexTypes represents the `extends` relationship between anEntityor anAbstractEntityand anotherEntityorAbstractEntity. The list of references between anAbstractEntityand allComplexTypes extending theAbstractEntityhas been implemented to ensure that all extendingComplexTypes are loaded into theAspectwhether they are directly linked to that Aspect or not. This scenario may occur for example when the Aspect Model contains aCollectionwith anAbstractEntityas its data type with multiple Entities extending theAbstractEntity. -
getExtendedEntity
-
createDefaultEntity
protected abstract T createDefaultEntity(MetaModelBaseAttributes metaModelBaseAttributes, List<Property> properties, Optional<ComplexType> extendedEntity, List<org.eclipse.esmf.aspectmodel.urn.AspectModelUrn> extendingComplexTypes)
-