use of org.drools.workbench.models.datamodel.rule.ExpressionUnboundFact in project drools by kiegroup.
the class RuleModelDRLPersistenceTest method testLHSExpressionNestedDate.
@Test
public void testLHSExpressionNestedDate() {
RuleModel m = new RuleModel();
m.name = "test expressionsNestedDate";
FactPattern p = new FactPattern("Person");
SingleFieldConstraintEBLeftSide con = new SingleFieldConstraintEBLeftSide();
con.getExpressionLeftSide().appendPart(new ExpressionUnboundFact(p.getFactType()));
con.getExpressionLeftSide().appendPart(new ExpressionField("favouriteCheese", "Cheese", DataType.TYPE_OBJECT));
con.getExpressionLeftSide().appendPart(new ExpressionField("dateBrought", "java.util.Date", DataType.TYPE_DATE));
con.setOperator("==");
con.setValue("27-Jun-2011");
con.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
p.addConstraint(con);
m.addLhsItem(p);
String expected = "rule \"test expressionsNestedDate\"" + "\tdialect \"mvel\"\n when " + " Person( favouriteCheese.dateBrought == \"27-Jun-2011\" )" + " then " + "end";
checkMarshalling(expected, m);
}
use of org.drools.workbench.models.datamodel.rule.ExpressionUnboundFact in project drools by kiegroup.
the class RuleModelDRLPersistenceTest method testLHSExpressionNestedNumber.
@Test
public void testLHSExpressionNestedNumber() {
RuleModel m = new RuleModel();
m.name = "test expressionsNestedNumber";
FactPattern p = new FactPattern("Person");
SingleFieldConstraintEBLeftSide con = new SingleFieldConstraintEBLeftSide();
con.getExpressionLeftSide().appendPart(new ExpressionUnboundFact(p.getFactType()));
con.getExpressionLeftSide().appendPart(new ExpressionField("favouriteCheese", "Cheese", DataType.TYPE_OBJECT));
con.getExpressionLeftSide().appendPart(new ExpressionField("age", "java.lang.Integer", DataType.TYPE_NUMERIC_INTEGER));
con.setOperator("==");
con.setValue("55");
con.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
p.addConstraint(con);
m.addLhsItem(p);
String expected = "rule \"test expressionsNestedNumber\"" + "\tdialect \"mvel\"\n when " + " Person( favouriteCheese.age == 55 )" + " then " + "end";
checkMarshalling(expected, m);
}
use of org.drools.workbench.models.datamodel.rule.ExpressionUnboundFact in project drools by kiegroup.
the class RuleModelDRLPersistenceTest method testLHSExpressionNestedString.
@Test
public void testLHSExpressionNestedString() {
RuleModel m = new RuleModel();
m.name = "test expressionsNestedString";
FactPattern p = new FactPattern("Person");
SingleFieldConstraintEBLeftSide con = new SingleFieldConstraintEBLeftSide();
con.getExpressionLeftSide().appendPart(new ExpressionUnboundFact(p.getFactType()));
con.getExpressionLeftSide().appendPart(new ExpressionField("favouriteCheese", "Cheese", DataType.TYPE_OBJECT));
con.getExpressionLeftSide().appendPart(new ExpressionField("name", "java.lang.String", DataType.TYPE_STRING));
con.setOperator("==");
con.setValue("Cheedar");
con.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
p.addConstraint(con);
m.addLhsItem(p);
String expected = "rule \"test expressionsNestedString\"" + "\tdialect \"mvel\"\n when " + " Person( favouriteCheese.name == \"Cheedar\" )" + " then " + "end";
checkMarshalling(expected, m);
}
use of org.drools.workbench.models.datamodel.rule.ExpressionUnboundFact in project drools-wb by kiegroup.
the class ExpressionBuilder method createWidgetForExpression.
// Render Widgets for the Expression. ExpressionMethodParameter and ExpressionText parts
// are represented by a TextBox to allow the User to edit the values, Updates are
// reflected in the model.
private Widget createWidgetForExpression() {
final HorizontalPanel container = new HorizontalPanel();
container.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
container.setStylePrimaryName(GuidedRuleEditorResources.INSTANCE.css().container());
for (ExpressionPart expressionPart : expression.getParts()) {
if (expressionPart instanceof ExpressionUnboundFact) {
continue;
} else if (this.readOnly) {
container.add(new Label(expressionPart.getName()));
} else if (expressionPart instanceof ExpressionMethod) {
container.add(new Label(expressionPart.getName()));
container.add(new Label("("));
final ExpressionMethod em = (ExpressionMethod) expressionPart;
final List<ExpressionFormLine> emParams = em.getOrderedParams();
for (int index = 0; index < emParams.size(); index++) {
final ExpressionFormLine paramValueHolder = emParams.get(index);
final String paramDataType = em.getParameterDataType(paramValueHolder);
final ExpressionMethodParameter paramValue = ((ExpressionMethodParameter) paramValueHolder.getRootExpression());
final TextBox paramValueEditor = TextBoxFactory.getTextBox(paramDataType);
paramValueEditor.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
paramValue.setText(event.getValue());
}
});
paramValueEditor.setText(paramValue.getName());
container.add(paramValueEditor);
if (index < emParams.size() - 1) {
container.add(new Label(", "));
}
}
container.add(new Label(")"));
} else if (!(expressionPart instanceof ExpressionText)) {
container.add(new Label(expressionPart.getName()));
} else {
final TextBox tb = new TextBox();
final ExpressionText expressionTextPart = (ExpressionText) expressionPart;
tb.setText(expressionTextPart.getName());
tb.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(final ChangeEvent changeEvent) {
expressionTextPart.setText(tb.getText());
}
});
container.add(tb);
}
container.add(new Label("."));
}
return container;
}
use of org.drools.workbench.models.datamodel.rule.ExpressionUnboundFact in project drools by kiegroup.
the class RuleModelDRLPersistenceTest method testLHSExpressionDate.
@Test
public void testLHSExpressionDate() {
RuleModel m = new RuleModel();
m.name = "test expressionsDate";
FactPattern p = new FactPattern("Person");
SingleFieldConstraintEBLeftSide con = new SingleFieldConstraintEBLeftSide();
con.getExpressionLeftSide().appendPart(new ExpressionUnboundFact(p.getFactType()));
con.getExpressionLeftSide().appendPart(new ExpressionField("field1", "java.util.Date", DataType.TYPE_DATE));
con.setOperator("==");
con.setValue("27-Jun-2011");
con.setConstraintValueType(SingleFieldConstraint.TYPE_LITERAL);
p.addConstraint(con);
m.addLhsItem(p);
String expected = "rule \"test expressionsDate\"" + "\tdialect \"mvel\"\n when " + " Person( field1 == \"27-Jun-2011\" )" + " then " + "end";
checkMarshalling(expected, m);
}
Aggregations