use of org.kie.dmn.model.v1_4.KieDMNModelInstrumentedBase in project drools by kiegroup.
the class DecisionServiceConverter method parseElements.
@Override
protected void parseElements(HierarchicalStreamReader reader, UnmarshallingContext context, Object parent) {
while (reader.hasMoreChildren()) {
reader.moveDown();
Object object = null;
String nodeName = reader.getNodeName();
if (nodeName.equals(INPUT_DATA)) {
// Patch because the tag name inputData is used in both decision services and as a DRG Element
DMNElementReference ref = new TDMNElementReference();
ref.setHref(reader.getAttribute("href"));
object = ref;
} else {
// Default behaviour
object = readItem(reader, context, null);
}
if (object instanceof DMNModelInstrumentedBase) {
((KieDMNModelInstrumentedBase) object).setParent((KieDMNModelInstrumentedBase) parent);
((KieDMNModelInstrumentedBase) parent).addChildren((KieDMNModelInstrumentedBase) object);
}
reader.moveUp();
assignChildElement(parent, nodeName, object);
}
}
use of org.kie.dmn.model.v1_4.KieDMNModelInstrumentedBase in project drools by kiegroup.
the class ExtensionElementsConverter method unmarshal.
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
DMNModelInstrumentedBase obj = createModelObject();
assignAttributes(reader, obj);
if (extensionRegisters.size() == 0) {
while (reader.hasMoreChildren()) {
reader.moveDown();
String nodeName = reader.getNodeName();
// skipping nodeName
reader.moveUp();
}
} else {
// do as default behavior, but in case cannot unmarshall an extension element child, just skip it.
while (reader.hasMoreChildren()) {
reader.moveDown();
String nodeName = reader.getNodeName();
try {
Object object = readItem(reader, context, null);
if (object instanceof DMNModelInstrumentedBase) {
((KieDMNModelInstrumentedBase) object).setParent(obj);
((KieDMNModelInstrumentedBase) obj).addChildren((KieDMNModelInstrumentedBase) object);
}
assignChildElement(obj, nodeName, object);
} catch (CannotResolveClassException e) {
// do nothing; I tried to convert the extension element child with the converters, but no converter is registered for this child.
LOG.debug("Tried to convert the extension element child {}, but no converter is registered for this child.", nodeName);
}
reader.moveUp();
}
}
return obj;
}
Aggregations