@Override
protected void visitDerived(DerivedArtifactType artifact) {
try {
if (this.jcrNode.hasNode("sramp-relationships:relatedDocument")) {
Node relatedDocNode = this.jcrNode.getNode("sramp-relationships:relatedDocument");
String targetType = getProperty(relatedDocNode, "sramp:targetType");
Property property = relatedDocNode.getProperty("sramp:relationshipTarget");
Value[] values = property.getValues();
if (values.length > 1) {
throw new Exception(Messages.i18n.format("MAX_CARDINALITY_FAILED", values.length));
}
Value value = values[0];
String targetUUID = referenceResolver.resolveReference(value);
DocumentArtifactTarget target = new DocumentArtifactTarget();
target.setValue(targetUUID);
if (targetType != null) {
target.setArtifactType(DocumentArtifactEnum.valueOf(targetType));
}
artifact.setRelatedDocument(target);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}