use of org.drools.workbench.models.guided.dtree.shared.model.parser.messages.UnsupportedFieldConstraintParserMessage in project drools by kiegroup.
the class GuidedDecisionTreeModelUnmarshallingVisitor method visit.
private List<Node> visit(final FieldConstraint fc, final GuidedDecisionTree model, final PackageDataModelOracle dmo, final List<ParserMessage> messages) {
final List<Node> nodes = new ArrayList<Node>();
if (fc instanceof CompositeFieldConstraint) {
messages.add(new UnsupportedFieldConstraintParserMessage());
return nodes;
} else if (fc instanceof SingleFieldConstraintEBLeftSide) {
messages.add(new UnsupportedFieldConstraintParserMessage());
return nodes;
}
if (!(fc instanceof SingleFieldConstraint)) {
messages.add(new UnsupportedFieldConstraintParserMessage());
return nodes;
}
final SingleFieldConstraint sfc = (SingleFieldConstraint) fc;
if (sfc.getConnectives() != null) {
messages.add(new UnsupportedFieldConstraintParserMessage());
return nodes;
}
ConstraintNode node = null;
final String className = sfc.getFactType();
final String fieldName = sfc.getFieldName();
if (sfc.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_LITERAL) {
final String operator = sfc.getOperator();
final boolean isValueRequired = OperatorsOracle.isValueRequired(operator);
if (isValueRequired) {
final Value value = getValue(className, fieldName, model, dmo, messages, sfc.getValue());
if (value != null) {
node = new ConstraintNodeImpl(className, fieldName, operator, value);
}
} else {
node = new ConstraintNodeImpl(className, fieldName);
}
} else if (sfc.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_ENUM) {
final String operator = sfc.getOperator();
final boolean isValueRequired = OperatorsOracle.isValueRequired(operator);
if (isValueRequired) {
final Value value = getValue(className, fieldName, model, dmo, messages, sfc.getValue());
if (value != null) {
node = new ConstraintNodeImpl(className, fieldName, operator, value);
}
} else {
node = new ConstraintNodeImpl(className, fieldName);
}
} else if (sfc.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_UNDEFINED) {
final String operator = sfc.getOperator();
final boolean isValueRequired = OperatorsOracle.isValueRequired(operator);
if (isValueRequired) {
node = new ConstraintNodeImpl(className, fieldName);
} else {
node = new ConstraintNodeImpl(className, fieldName, operator, null);
}
} else {
messages.add(new UnsupportedFieldConstraintTypeParserMessage());
return nodes;
}
if (node != null) {
if (sfc.isBound()) {
node.setBinding(sfc.getFieldBinding());
}
nodes.add(node);
}
return nodes;
}
use of org.drools.workbench.models.guided.dtree.shared.model.parser.messages.UnsupportedFieldConstraintParserMessage in project drools by kiegroup.
the class GuidedDecisionTreeDRLPersistenceUnmarshallingMessagesTest method testSingleRule_UnsupportedFieldConstraintExpression.
@Test
public void testSingleRule_UnsupportedFieldConstraintExpression() throws Exception {
final String drl = "rule \"test_0\"\n" + "when \n" + " Person( this.name == \"Michael\" )\n" + "then \n" + "end";
final GuidedDecisionTree expected = new GuidedDecisionTree();
expected.setTreeName("test");
final TypeNode type = new TypeNodeImpl("Person");
expected.setRoot(type);
addModelField("Person", "this", "Person", DataType.TYPE_THIS);
addModelField("Person", "name", String.class.getName(), DataType.TYPE_STRING);
final GuidedDecisionTree model = getAndTestUnmarshalledModel(drl, "test", 1);
assertEquals(expected.getTreeName(), model.getTreeName());
assertNull(model.getRoot());
assertEquals("test_0", model.getParserErrors().get(0).getOriginalRuleName());
assertEqualsIgnoreWhitespace(drl, model.getParserErrors().get(0).getOriginalDrl());
assertNotNull(model.getParserErrors().get(0).getMessages());
assertEquals(1, model.getParserErrors().get(0).getMessages().size());
assertTrue(model.getParserErrors().get(0).getMessages().get(0) instanceof UnsupportedFieldConstraintParserMessage);
final String drl2 = GuidedDecisionTreeDRLPersistence.getInstance().marshal(model);
assertEqualsIgnoreWhitespace(drl, drl2);
}
use of org.drools.workbench.models.guided.dtree.shared.model.parser.messages.UnsupportedFieldConstraintParserMessage in project drools-wb by kiegroup.
the class ParserMessagesPopup method getMessage.
private String getMessage(final ParserMessage msg) {
if (msg instanceof AmbiguousRootParserMessage) {
final TypeNode tn = model.getRoot();
final AmbiguousRootParserMessage m = (AmbiguousRootParserMessage) msg;
return GuidedDecisionTreeConstants.INSTANCE.parserMessageAmbiguousRootParserMessage(tn.getClassName(), m.getClassName());
} else if (msg instanceof BindingNotFoundParserMessage) {
final BindingNotFoundParserMessage m = (BindingNotFoundParserMessage) msg;
return GuidedDecisionTreeConstants.INSTANCE.parserMessageBindingNotFoundParserMessage(m.getBinding());
} else if (msg instanceof DataTypeConversionErrorParserMessage) {
final DataTypeConversionErrorParserMessage m = (DataTypeConversionErrorParserMessage) msg;
return GuidedDecisionTreeConstants.INSTANCE.parserMessageDataTypeConversionErrorParserMessage(m.getValue(), m.getDataTypeClassName());
} else if (msg instanceof DataTypeNotFoundParserMessage) {
final DataTypeNotFoundParserMessage m = (DataTypeNotFoundParserMessage) msg;
return GuidedDecisionTreeConstants.INSTANCE.parserMessageDataTypeNotFoundParserMessage(m.getClassName(), m.getFieldName());
} else if (msg instanceof DefaultParserMessage) {
final DefaultParserMessage m = (DefaultParserMessage) msg;
return GuidedDecisionTreeConstants.INSTANCE.parserMessageDefaultParserMessage(m.getMessage());
} else if (msg instanceof InvalidRootParserMessage) {
return GuidedDecisionTreeConstants.INSTANCE.parserMessageInvalidRootParserMessage();
} else if (msg instanceof UnsupportedFieldConstraintParserMessage) {
return GuidedDecisionTreeConstants.INSTANCE.parserMessageUnsupportedFieldConstraintParserMessage();
} else if (msg instanceof UnsupportedFieldConstraintTypeParserMessage) {
return GuidedDecisionTreeConstants.INSTANCE.parserMessageUnsupportedFieldConstraintTypeParserMessage();
} else if (msg instanceof UnsupportedFieldNatureTypeParserMessage) {
return GuidedDecisionTreeConstants.INSTANCE.parserMessageUnsupportedFieldNatureTypeParserMessage();
} else if (msg instanceof UnsupportedIActionParserMessage) {
return GuidedDecisionTreeConstants.INSTANCE.parserMessageUnsupportedIActionParserMessage();
} else if (msg instanceof UnsupportedIPatternParserMessage) {
return GuidedDecisionTreeConstants.INSTANCE.parserMessageUnsupportedIPatternParserMessage();
} else {
return GuidedDecisionTreeConstants.INSTANCE.parserMessageUnknownMessage();
}
}
use of org.drools.workbench.models.guided.dtree.shared.model.parser.messages.UnsupportedFieldConstraintParserMessage in project drools by kiegroup.
the class GuidedDecisionTreeDRLPersistenceUnmarshallingMessagesTest method testSingleRule_UnsupportedFieldConstraintCompositeFieldConstraint.
@Test
public void testSingleRule_UnsupportedFieldConstraintCompositeFieldConstraint() throws Exception {
final String drl = "rule \"test_0\"\n" + "when \n" + " Person( name == \"Michael\" || name == \"John\" )\n" + "then \n" + "end";
final GuidedDecisionTree expected = new GuidedDecisionTree();
expected.setTreeName("test");
final TypeNode type = new TypeNodeImpl("Person");
expected.setRoot(type);
addModelField("Person", "this", "Person", DataType.TYPE_THIS);
addModelField("Person", "name", String.class.getName(), DataType.TYPE_STRING);
final GuidedDecisionTree model = getAndTestUnmarshalledModel(drl, "test", 1);
assertEquals(expected.getTreeName(), model.getTreeName());
assertNull(model.getRoot());
assertEquals("test_0", model.getParserErrors().get(0).getOriginalRuleName());
assertEqualsIgnoreWhitespace(drl, model.getParserErrors().get(0).getOriginalDrl());
assertNotNull(model.getParserErrors().get(0).getMessages());
assertEquals(1, model.getParserErrors().get(0).getMessages().size());
assertTrue(model.getParserErrors().get(0).getMessages().get(0) instanceof UnsupportedFieldConstraintParserMessage);
final String drl2 = GuidedDecisionTreeDRLPersistence.getInstance().marshal(model);
assertEqualsIgnoreWhitespace(drl, drl2);
}
Aggregations