use of com.prosysopc.ua.types.opcua.DictionaryEntryType in project FAAAST-Service by FraunhoferIOSB.
the class AasServiceNodeManager method addConceptDescriptions.
/**
* Adds the given list of AAS Concept Descriptions.
*
* @param descriptions The desired list of AAS Concept Descriptions
* @throws StatusException If the operation fails
* @throws ServiceResultException Generic service exception
*/
private void addConceptDescriptions(List<ConceptDescription> descriptions) throws StatusException, ServiceResultException {
try {
// create folder DictionaryEntries
final UaNode dictionariesFolder = getServer().getNodeManagerRoot().getNodeOrExternal(Identifiers.Dictionaries);
// Folder for my objects
final NodeId dictionarieEntriesFolderId = new NodeId(getNamespaceIndex(), "Dictionaries.DictionaryEntries");
FolderTypeNode dictEntriesFolder = createInstance(FolderTypeNode.class, "DictionaryEntries", dictionarieEntriesFolderId);
this.addNodeAndReference(dictionariesFolder, dictEntriesFolder, Identifiers.Organizes);
for (ConceptDescription c : descriptions) {
String name = c.getIdShort();
NodeId nid = createNodeId(dictionariesFolder, name);
DictionaryEntryType dictNode;
switch(c.getIdentification().getIdType()) {
case IRDI:
AASIrdiConceptDescriptionType irdiNode = createInstance(AASIrdiConceptDescriptionType.class, name, nid);
addIdentifiable(irdiNode, c.getIdentification(), c.getAdministration(), name);
addConceptDescriptionReference(irdiNode, getReference(c));
dictEntriesFolder.addComponent(irdiNode);
dictionaryMap.put(getReference(c), irdiNode);
dictNode = irdiNode;
break;
case IRI:
AASIriConceptDescriptionType iriNode = createInstance(AASIriConceptDescriptionType.class, name, nid);
addIdentifiable(iriNode, c.getIdentification(), c.getAdministration(), name);
addConceptDescriptionReference(iriNode, getReference(c));
dictEntriesFolder.addComponent(iriNode);
dictionaryMap.put(getReference(c), iriNode);
dictNode = iriNode;
break;
default:
AASCustomConceptDescriptionType customNode = createInstance(AASCustomConceptDescriptionType.class, name, nid);
addIdentifiable(customNode, c.getIdentification(), c.getAdministration(), name);
addConceptDescriptionReference(customNode, getReference(c));
dictEntriesFolder.addComponent(customNode);
dictionaryMap.put(getReference(c), customNode);
dictNode = customNode;
break;
}
referableMap.put(AasUtils.toReference(c), new ObjectData(c, dictNode));
}
} catch (Throwable ex) {
logger.error("addConceptDescriptions Exception", ex);
throw ex;
}
}
Aggregations