blob: 4e9b53a8236e63f4585c91c9643323bc59e07cc6 [file] [log] [blame]
package org.eclipse.basyx.submodel.metamodel.facade;
import java.util.Collection;
import java.util.Collections;
import org.eclipse.basyx.submodel.metamodel.api.identifier.IdentifierType;
import org.eclipse.basyx.submodel.metamodel.api.qualifier.haskind.ModelingKind;
import org.eclipse.basyx.submodel.metamodel.api.reference.enums.KeyElements;
import org.eclipse.basyx.submodel.metamodel.api.reference.enums.KeyType;
import org.eclipse.basyx.submodel.metamodel.map.SubModel;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.HasDataSpecification;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.HasSemantics;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.Identifiable;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.LangStrings;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.haskind.HasKind;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.qualifiable.Constraint;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.qualifiable.Qualifiable;
import org.eclipse.basyx.submodel.metamodel.map.reference.Key;
import org.eclipse.basyx.submodel.metamodel.map.reference.Reference;
/**
* Facade class that supports the development and access of sub models using
* IRDI (International Registration Data Identifier) semantic definitions
*
* @author kuhn
*
*/
public class SubmodelFacadeIRDISemantics extends SubModel {
/**
* Constructor without arguments - create a sub model with all meta properties
* empty / set to default values
*/
public SubmodelFacadeIRDISemantics() {
// Create sub model
super();
}
/**
* Sub model constructor for sub models that conform to a globally defined
* semantics with IRDI (International Registration Data Identifier)
*
* Create an instance sub model with all meta properties empty / set to default
* values
*
* @param semantics
* String that describes the sub model semantics e.g. its type (e.g.
* basys.semantics.transportsystem)
* @param idType
* Submodel ID type
* @param id
* Sub model ID according to idType
* @param idShort
* Short ID of the sub model (e.g. "subsystemTopology")
* @param category
* Additional coded meta information regarding the element type that
* affects expected existence of attributes (e.g.
* "transportSystemTopology")
* @param description
* Descriptive sub model description (e.g. "This is a machine
* readable description of the transport system topology")
* @param constraint
* The collection of qualifiers of this sub model (e.g.
* ["plant.maintransport", "maintransport."])
* @param dataSpecification
* Sub model data specification
* @param kind
* Sub model kind
* @param version
* Sub model version
* @param revision
* Sub model revision
*/
public SubmodelFacadeIRDISemantics(String semantics, IdentifierType idType, String id, String idShort, String category, LangStrings description, Constraint constraint, HasDataSpecification dataSpecification, ModelingKind kind,
String version,
String revision) {
// Create sub model
super(new HasSemantics(new Reference(Collections.singletonList(new Key(KeyElements.GLOBALREFERENCE, false, semantics, KeyType.IRDI)))), new Identifiable(version, revision, idShort, category, description, IdentifierType.CUSTOM, id),
new Qualifiable(constraint),
dataSpecification,
new HasKind(kind));
}
/**
* Sub model constructor for sub models that conform to a globally defined
* semantics with IRDI (International Registration Data Identifier) <br />
* Create an instance sub model with all meta properties empty / set to default
* values
*
* @param semantics
* String that describes the sub model semantics e.g. its type (e.g.
* basys.semantics.transportsystem)
* @param idType
* Submodel ID type
* @param id
* Sub model ID according to idType
* @param idShort
* Short ID of the sub model (e.g. "subsystemTopology")
* @param category
* Additional coded meta information regarding the element type that
* affects expected existence of attributes (e.g.
* "transportSystemTopology")
* @param description
* Descriptive sub model description (e.g. "This is a machine
* readable description of the transport system topology")
* @param constraint
* The collection of qualifiers of this sub model (e.g.
* ["plant.maintransport", "maintransport."])
* @param dataSpecification
* Sub model data specification
* @param kind
* Sub model kind
* @param version
* Sub model version
* @param revision
* Sub model revision
*/
public SubmodelFacadeIRDISemantics(String semantics, IdentifierType idType, String id, String idShort, String category, LangStrings description, Collection<Constraint> qualifier, Constraint constraint,
HasDataSpecification dataSpecification, ModelingKind kind, String version, String revision) {
// Create sub model
super(new HasSemantics(new Reference(Collections.singletonList(new Key(KeyElements.GLOBALREFERENCE, false, semantics, KeyType.IRDI)))),
new Identifiable(version, revision, idShort, category, description, idType, id),
new Qualifiable(qualifier),
dataSpecification,
new HasKind(kind));
}
}