Class BaSyxSubmodelElementContainerBuilder<S extends org.eclipse.digitaltwin.aas4j.v3.model.Submodel>

java.lang.Object
de.iip_ecosphere.platform.support.aas.basyx2.BaSyxSubmodelElementContainerBuilder<S>
Type Parameters:
S - the BaSyx type implementing the sub-model
All Implemented Interfaces:
de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
Direct Known Subclasses:
BaSyxEntity.BaSyxEntityBuilder, BaSyxSubmodel.BaSyxSubmodelBuilder, BaSyxSubmodelElementCollection.BaSyxSubmodelElementCollectionBuilder, BaSyxSubmodelElementList.BaSyxSubmodelElementListBuilder

public abstract class BaSyxSubmodelElementContainerBuilder<S extends org.eclipse.digitaltwin.aas4j.v3.model.Submodel> extends Object implements de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
Basic implementation for a container-based model element. Subclasses must call buildMyDeferred() in an appropriate method (usually Builder.build()) and use DeferredBuilder.getDeferred(String, Class, java.util.Map) when potentially creating a builder that could be deferred.
Author:
Holger Eichelberger, SSE
  • Constructor Details

    • BaSyxSubmodelElementContainerBuilder

      public BaSyxSubmodelElementContainerBuilder()
  • Method Details

    • createPropertyBuilder

      public de.iip_ecosphere.platform.support.aas.Property.PropertyBuilder createPropertyBuilder(String idShort)
      Specified by:
      createPropertyBuilder in interface de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
    • createMultiLanguagePropertyBuilder

      public de.iip_ecosphere.platform.support.aas.MultiLanguageProperty.MultiLanguagePropertyBuilder createMultiLanguagePropertyBuilder(String idShort)
      Specified by:
      createMultiLanguagePropertyBuilder in interface de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
    • createRelationshipElementBuilder

      public de.iip_ecosphere.platform.support.aas.RelationshipElement.RelationshipElementBuilder createRelationshipElementBuilder(String idShort, de.iip_ecosphere.platform.support.aas.Reference first, de.iip_ecosphere.platform.support.aas.Reference second)
      Specified by:
      createRelationshipElementBuilder in interface de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
    • createReferenceElementBuilder

      public de.iip_ecosphere.platform.support.aas.ReferenceElement.ReferenceElementBuilder createReferenceElementBuilder(String idShort)
      Specified by:
      createReferenceElementBuilder in interface de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
    • createEntityBuilder

      public de.iip_ecosphere.platform.support.aas.Entity.EntityBuilder createEntityBuilder(String idShort, de.iip_ecosphere.platform.support.aas.Entity.EntityType type, de.iip_ecosphere.platform.support.aas.Reference asset)
      Specified by:
      createEntityBuilder in interface de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
    • createOperationBuilder

      public de.iip_ecosphere.platform.support.aas.Operation.OperationBuilder createOperationBuilder(String idShort)
      Specified by:
      createOperationBuilder in interface de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
    • createFileDataElementBuilder

      public de.iip_ecosphere.platform.support.aas.FileDataElement.FileDataElementBuilder createFileDataElementBuilder(String idShort, String contents, String mimeType)
      Specified by:
      createFileDataElementBuilder in interface de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
    • createRangeBuilder

      public de.iip_ecosphere.platform.support.aas.Range.RangeBuilder createRangeBuilder(String idShort, de.iip_ecosphere.platform.support.aas.Type type, Object min, Object max)
      Specified by:
      createRangeBuilder in interface de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
    • createBlobDataElementBuilder

      public de.iip_ecosphere.platform.support.aas.BlobDataElement.BlobDataElementBuilder createBlobDataElementBuilder(String idShort, String content, String mimeType)
      Specified by:
      createBlobDataElementBuilder in interface de.iip_ecosphere.platform.support.aas.SubmodelElementContainerBuilder
    • createReference

      public de.iip_ecosphere.platform.support.aas.Reference createReference()
      Creates a reference to the sub-model under creation.
      Returns:
      the reference
    • getInstance

      protected AbstractSubmodel<S> getInstance()
      Returns the underlying instance.
      Returns:
      the instance
    • getIdShort

      protected abstract String getIdShort()
      Returns the underlying collection instance.
      Returns:
      the instance
    • register

      Registers a relationship element.
      Parameters:
      relationship - the relationship element
      Returns:
      relationship
    • addSubmodelElement

      private void addSubmodelElement(org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement element)
      Adds a submodel element to this container.
      Parameters:
      element - the element
    • registerElement

      <T extends de.iip_ecosphere.platform.support.aas.SubmodelElement> T registerElement(T elt)
      Registers an element. Default for all remaining registration functions.
      Type Parameters:
      T - the actual type of the element
      Parameters:
      elt - the element
      Returns:
      elt
    • register

      BaSyxEntity register(BaSyxEntity entity)
      Registers a entity element.
      Parameters:
      entity - the entity
      Returns:
      reference
    • register

      BaSyxFile register(BaSyxFile file)
      Registers a file data element.
      Parameters:
      file - the file data element
      Returns:
      file
    • register

      BaSyxRange register(BaSyxRange range)
      Registers a range element.
      Parameters:
      range - the range element
      Returns:
      range
    • register

      BaSyxBlob register(BaSyxBlob blob)
      Registers a file data element.
      Parameters:
      blob - the BLOB data element
      Returns:
      blob
    • register

      BaSyxOperation register(BaSyxOperation operation)
      Registers an operation.
      Parameters:
      operation - the operation
      Returns:
      operation
    • register

      BaSyxProperty register(BaSyxProperty property)
      Registers a property.
      Parameters:
      property - the property
      Returns:
      property
    • register

      Registers a multi-language property.
      Parameters:
      property - the property
      Returns:
      property
    • register

      Registers a reference element.
      Parameters:
      reference - the reference
      Returns:
      reference
    • register

      protected BaSyxSubmodelElementCollection register(BaSyxSubmodelElementCollection collection, boolean propagate)
      Registers a sub-model element collection.
      Parameters:
      collection - the collection
      propagate - enable propagation into the interface instance (usually true) or take a (performance) shortcut and only update the BaSyx submodel (false)
      Returns:
      collection
    • register

      protected BaSyxSubmodelElementList register(BaSyxSubmodelElementList list, boolean propagate)
      Registers a sub-model element list.
      Parameters:
      list - the list
      propagate - enable propagation into the interface instance (usually true) or take a (performance) shortcut and only update the BaSyx submodel (false)
      Returns:
      list
    • defer

      void defer(String shortId, de.iip_ecosphere.platform.support.Builder<?> builder)
      Registers a sub-build as deferred.
      Parameters:
      shortId - the shortId of the element
      builder - the sub-builder to be registered
      See Also:
    • buildMyDeferred

      void buildMyDeferred()
      Calls Builder.build() on all deferred builders.
      See Also:
    • parents

      protected Object[] parents()
      Returns all parent builders including this.
      Returns:
      the parent builders
    • composeRbacPath

      public String composeRbacPath(String element)
      Composes an RBAC path from the parents.
      Parameters:
      element - optional name of the element to be appended to the path
      Returns:
      the path, including the parents