UNPKG

@dasch-swiss/dsp-js

Version:
56 lines 2.38 kB
import { ResourceClassDefinition } from '../../models/v2/ontologies/resource-class-definition'; import { ResourcePropertyDefinition } from '../../models/v2/ontologies/resource-property-definition'; import { SystemPropertyDefinition } from '../../models/v2/ontologies/system-property-definition'; /** * Represents a resource class definition containing all property definitions it has cardinalities for. * * @category Model V2 */ export class ResourceClassDefinitionWithPropertyDefinition extends ResourceClassDefinition { /** * Create an instance from a given `ResourceClassDefinition`. * * @param resClassDef instance of `ResourceClassDefinition`. * @param propertyDefinitions object containing all `PropertyDefinition` * the resource class definition has cardinalities for. */ constructor(resClassDef, propertyDefinitions) { super(); this.propertiesList = []; this.id = resClassDef.id; this.label = resClassDef.label; this.comment = resClassDef.comment; this.subClassOf = resClassDef.subClassOf; // add property definition to properties list's items this.propertiesList = resClassDef.propertiesList.map((prop) => { if (!propertyDefinitions.hasOwnProperty(prop.propertyIndex)) { throw Error(`Expected key ${prop.propertyIndex} in property definitions.`); } const propInfo = { propertyIndex: prop.propertyIndex, cardinality: prop.cardinality, guiOrder: prop.guiOrder, isInherited: prop.isInherited, propertyDefinition: propertyDefinitions[prop.propertyIndex], }; return propInfo; }); } /** * Gets the resource properties from properties list. */ getResourcePropertiesList() { return this.propertiesList.filter(prop => { return prop.propertyDefinition instanceof ResourcePropertyDefinition; }); } /** * Gets the system properties from properties list. */ getSystemPropertiesList() { return this.propertiesList.filter(prop => { return prop.propertyDefinition instanceof SystemPropertyDefinition; }); } } //# sourceMappingURL=resource-class-definition-with-property-definition.js.map