Class BaSyxSubmodel
java.lang.Object
de.iip_ecosphere.platform.support.aas.basyx2.AbstractSubmodel<org.eclipse.digitaltwin.aas4j.v3.model.Submodel>
de.iip_ecosphere.platform.support.aas.basyx2.BaSyxSubmodel
- All Implemented Interfaces:
BaSyxElementTranslator.SubmodelElementsRegistrar,BaSyxSubmodelElementParent,de.iip_ecosphere.platform.support.aas.DeferredParent,de.iip_ecosphere.platform.support.aas.Element,de.iip_ecosphere.platform.support.aas.ElementContainer,de.iip_ecosphere.platform.support.aas.ElementsAccess,de.iip_ecosphere.platform.support.aas.HasDataSpecification,de.iip_ecosphere.platform.support.aas.HasKind,de.iip_ecosphere.platform.support.aas.HasSemantics,de.iip_ecosphere.platform.support.aas.Identifiable,de.iip_ecosphere.platform.support.aas.Qualifiable,de.iip_ecosphere.platform.support.aas.Referable,de.iip_ecosphere.platform.support.aas.Submodel
public class BaSyxSubmodel
extends AbstractSubmodel<org.eclipse.digitaltwin.aas4j.v3.model.Submodel>
Wraps a BaSyx sub-model.
- Author:
- Holger Eichelberger, SSE
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface de.iip_ecosphere.platform.support.aas.Submodel
de.iip_ecosphere.platform.support.aas.Submodel.IteratorFunction<T extends de.iip_ecosphere.platform.support.aas.SubmodelElement>, de.iip_ecosphere.platform.support.aas.Submodel.SubmodelBuilder -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate BaSyxSubmodelParentprivate org.eclipse.digitaltwin.basyx.submodelrepository.client.ConnectedSubmodelRepository -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBaSyxSubmodel(BaSyxSubmodelParent parent, org.eclipse.digitaltwin.aas4j.v3.model.Submodel instance, org.eclipse.digitaltwin.basyx.submodelrepository.client.ConnectedSubmodelRepository repo) Creates an instance based on a given instance.protectedBaSyxSubmodel(org.eclipse.digitaltwin.aas4j.v3.model.Submodel subModel, org.eclipse.digitaltwin.basyx.submodelrepository.client.ConnectedSubmodelRepository repo) Creates an instance. -
Method Summary
Modifier and TypeMethodDescription(package private) static voidaddSubmodelElement(org.eclipse.digitaltwin.aas4j.v3.model.Submodel submodel, org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement element) Adds a submodel element.booleancreate(Consumer<de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder> func, boolean propagate, String... path) de.iip_ecosphere.platform.support.aas.SubmodelElementCollection.SubmodelElementCollectionBuilderde.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilderde.iip_ecosphere.platform.support.aas.SubmodelElementList.SubmodelElementListBuildercreateSubmodelElementListBuilder(String idShort) voiddeleteElement(de.iip_ecosphere.platform.support.aas.SubmodelElement elt) voiddeleteElement(String idShort) (package private) BaSyxSubmodelParentgetAas()Returns the parent AAS.Returns the parent element.org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElementReturns the path element to be used inBaSyxSubmodelElementParent.processOnPath(List, boolean, PathFunction).<T extends de.iip_ecosphere.platform.support.aas.SubmodelElement>
booleaniterate(de.iip_ecosphere.platform.support.aas.Submodel.IteratorFunction<T> func, Class<T> cls, String... path) private de.iip_ecosphere.platform.support.aas.SubmodelElementCollection.SubmodelElementCollectionBuilderobtainSubmodelElementCollectionBuilder(BaSyxSubmodelElementContainerBuilder<?> parent, String idShort, boolean ordered, boolean allowDuplicates) Creates a builder for a contained sub-model element collection.private de.iip_ecosphere.platform.support.aas.SubmodelElementList.SubmodelElementListBuilderobtainSubmodelElementListBuilder(BaSyxSubmodelElementContainerBuilder<?> parent, String idShort) Creates a builder for a contained sub-model element list.org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElementprocessOnPath(List<org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement> path, boolean skipIfNoRepo, BaSyxSubmodelElement.PathFunction function) Iterates up the path up to the submodel and callsfunctionon the aggregated path.void(package private) voidsetRepo(org.eclipse.digitaltwin.basyx.submodelrepository.client.ConnectedSubmodelRepository repo) Sets the repository, emulating a connected submodel.voidsetSemanticId(String semanticId) voidupdate()private voidUpdates this submodel in its repository if connected.private voidupdateOnDelete(String idShortPath) Updates this submodel on deleting an element.Methods inherited from class de.iip_ecosphere.platform.support.aas.basyx2.AbstractSubmodel
accept, buildDeferred, createReference, dataElements, defer, deleteSubmodelElement, getDataElement, getDataElementsCount, getDeferred, getEntity, getIdentification, getIdShort, getOperation, getOperationsCount, getPropertiesCount, getProperty, getReferenceElement, getRelationshipElement, getSemanticId, getSubmodel, getSubmodelElement, getSubmodelElementCollection, getSubmodelElementList, getSubmodelElementsCount, getSubmodelEndpoint, operations, properties, register, register, register, register, register, register, register, register, register, register, register, register, registerElement, reset, submodelElementsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.iip_ecosphere.platform.support.aas.HasSemantics
getSemanticId
-
Field Details
-
parent
-
repo
private org.eclipse.digitaltwin.basyx.submodelrepository.client.ConnectedSubmodelRepository repo
-
-
Constructor Details
-
BaSyxSubmodel
protected BaSyxSubmodel(org.eclipse.digitaltwin.aas4j.v3.model.Submodel subModel, org.eclipse.digitaltwin.basyx.submodelrepository.client.ConnectedSubmodelRepository repo) Creates an instance. Prevents external creation.- Parameters:
subModel- the sub-model instance
-
BaSyxSubmodel
protected BaSyxSubmodel(BaSyxSubmodelParent parent, org.eclipse.digitaltwin.aas4j.v3.model.Submodel instance, org.eclipse.digitaltwin.basyx.submodelrepository.client.ConnectedSubmodelRepository repo) Creates an instance based on a given instance.- Parameters:
parent- the parent instanceinstance- the BaSyx submodel instance
-
-
Method Details
-
addSubmodelElement
static void addSubmodelElement(org.eclipse.digitaltwin.aas4j.v3.model.Submodel submodel, org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement element) Adds a submodel element.- Parameters:
submodel- the submodel to add the element toelement- the element to add
-
obtainSubmodelElementCollectionBuilder
private de.iip_ecosphere.platform.support.aas.SubmodelElementCollection.SubmodelElementCollectionBuilder obtainSubmodelElementCollectionBuilder(BaSyxSubmodelElementContainerBuilder<?> parent, String idShort, boolean ordered, boolean allowDuplicates) Creates a builder for a contained sub-model element collection. Calling this method again with the same name shall lead to a builder that allows for modifying the sub-model.- Parameters:
parent- the parent builderidShort- the short name of the reference elementordered- whether the collection is orderedallowDuplicates- whether the collection allows duplicates- Returns:
- the builder
- Throws:
IllegalArgumentException- ifidShortis null or empty; or if modification is not possible
-
obtainSubmodelElementListBuilder
private de.iip_ecosphere.platform.support.aas.SubmodelElementList.SubmodelElementListBuilder obtainSubmodelElementListBuilder(BaSyxSubmodelElementContainerBuilder<?> parent, String idShort) Creates a builder for a contained sub-model element list. Calling this method again with the same name shall lead to a builder that allows for modifying the sub-model.- Parameters:
parent- the parent builderidShort- the short name of the reference element- Returns:
- the builder
- Throws:
IllegalArgumentException- ifidShortis null or empty; or if modification is not possible
-
createSubmodelElementContainerBuilder
public de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder createSubmodelElementContainerBuilder(String idShort) -
createSubmodelElementCollectionBuilder
public de.iip_ecosphere.platform.support.aas.SubmodelElementCollection.SubmodelElementCollectionBuilder createSubmodelElementCollectionBuilder(String idShort) -
createSubmodelElementListBuilder
public de.iip_ecosphere.platform.support.aas.SubmodelElementList.SubmodelElementListBuilder createSubmodelElementListBuilder(String idShort) -
update
public void update() -
create
-
iterate
-
getAas
BaSyxSubmodelParent getAas()Description copied from class:AbstractSubmodelReturns the parent AAS.- Specified by:
getAasin classAbstractSubmodel<org.eclipse.digitaltwin.aas4j.v3.model.Submodel>- Returns:
- the parent AAS
-
setSemanticId
-
setRepo
void setRepo(org.eclipse.digitaltwin.basyx.submodelrepository.client.ConnectedSubmodelRepository repo) Sets the repository, emulating a connected submodel.- Parameters:
repo- the repository
-
processOnPath
public org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement processOnPath(List<org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement> path, boolean skipIfNoRepo, BaSyxSubmodelElement.PathFunction function) Description copied from interface:BaSyxSubmodelElementParentIterates up the path up to the submodel and callsfunctionon the aggregated path.- Parameters:
path- the path accumulated so farskipIfNoRepo- skip executing function if there is no repository to pass intofunction- the function to call at the end of the path- See Also:
-
deleteElement
- Specified by:
deleteElementin interfacede.iip_ecosphere.platform.support.aas.ElementsAccess- Overrides:
deleteElementin classAbstractSubmodel<org.eclipse.digitaltwin.aas4j.v3.model.Submodel>
-
deleteElement
public void deleteElement(de.iip_ecosphere.platform.support.aas.SubmodelElement elt) - Specified by:
deleteElementin interfacede.iip_ecosphere.platform.support.aas.ElementsAccess- Overrides:
deleteElementin classAbstractSubmodel<org.eclipse.digitaltwin.aas4j.v3.model.Submodel>
-
updateOnDelete
Updates this submodel on deleting an element.- Parameters:
idShortPath- the path to the element
-
updateInRepo
private void updateInRepo()Updates this submodel in its repository if connected. -
getParent
Description copied from interface:BaSyxSubmodelElementParentReturns the parent element.- Returns:
- the parent element
-
getPathElement
public org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement getPathElement()Description copied from interface:BaSyxSubmodelElementParentReturns the path element to be used inBaSyxSubmodelElementParent.processOnPath(List, boolean, PathFunction).- Returns:
- the path element
-
refreshOnUse
public void refreshOnUse()
-