blob: 3254b29dae0cdb0d9d9edcc89ac16e1db44f326c [file] [log] [blame]
package org.eclipse.basyx.aas.metamodel.facade.parts;
import java.util.Map;
import java.util.Set;
import org.eclipse.basyx.aas.metamodel.api.parts.IConceptDescription;
import org.eclipse.basyx.aas.metamodel.map.parts.ConceptDescription;
import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier;
import org.eclipse.basyx.submodel.metamodel.api.qualifier.IAdministrativeInformation;
import org.eclipse.basyx.submodel.metamodel.api.reference.IReference;
import org.eclipse.basyx.submodel.metamodel.facade.identifier.IdentifierFacade;
import org.eclipse.basyx.submodel.metamodel.facade.qualifier.AdministrativeInformationFacade;
import org.eclipse.basyx.submodel.metamodel.facade.qualifier.ReferableFacade;
import org.eclipse.basyx.submodel.metamodel.facade.reference.ReferenceFacade;
import org.eclipse.basyx.submodel.metamodel.facade.reference.ReferenceHelper;
import org.eclipse.basyx.submodel.metamodel.map.identifier.Identifier;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.AdministrativeInformation;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.HasDataSpecification;
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.Referable;
import org.eclipse.basyx.submodel.metamodel.map.reference.Reference;
/**
* Facade providing access to a map containing the ConceptDescription structure
*
* @author rajashek
*
*/
public class ConceptDescriptionFacade implements IConceptDescription {
private Map<String, Object> map;
public ConceptDescriptionFacade(Map<String, Object> map) {
super();
this.map = map;
}
@Override
@SuppressWarnings("unchecked")
public Set<IReference> getDataSpecificationReferences() {
Set<Map<String, Object>> set = (Set<Map<String, Object>>) map.get(HasDataSpecification.HASDATASPECIFICATION);
return ReferenceHelper.transform(set);
}
public void setDataSpecificationReferences(Set<IReference> ref) {
map.put(HasDataSpecification.HASDATASPECIFICATION, ref);
}
@SuppressWarnings("unchecked")
@Override
public IAdministrativeInformation getAdministration() {
return new AdministrativeInformationFacade((Map<String, Object>) map.get(Identifiable.ADMINISTRATION));
}
@SuppressWarnings("unchecked")
@Override
public IIdentifier getIdentification() {
return new IdentifierFacade((Map<String, Object>) map.get(Identifiable.IDENTIFICATION));
}
public void setAdministration(String version, String revision) {
map.put(Identifiable.ADMINISTRATION, new AdministrativeInformation(version, revision));
}
public void setIdentification(String idType, String id) {
map.put(Identifiable.IDENTIFICATION, new Identifier(idType, id));
}
@Override
@SuppressWarnings("unchecked")
public Set<IReference> getIsCaseOf() {
Set<Map<String, Object>> set = (Set<Map<String, Object>>) map.get(ConceptDescription.ISCASEOF);
return ReferenceHelper.transform(set);
}
public void setIscaseOf(Set<Reference> ref) {
map.put(ConceptDescription.ISCASEOF, ref);
}
@Override
public String getIdShort() {
return (String) map.get(Referable.IDSHORT);
}
@Override
public String getCategory() {
return (String) map.get(Referable.CATEGORY);
}
@Override
public LangStrings getDescription() {
return new ReferableFacade(map).getDescription();
}
@SuppressWarnings("unchecked")
@Override
public IReference getParent() {
return new ReferenceFacade((Map<String, Object>) map.get(Referable.PARENT));
}
public void setIdShort(String idShort) {
map.put(Referable.IDSHORT, idShort);
}
public void setCategory(String category) {
map.put(Referable.CATEGORY, category);
}
public void setDescription(LangStrings description) {
map.put(Referable.DESCRIPTION, description);
}
public void setParent(IReference obj) {
map.put(Referable.PARENT, obj);
}
}