Search in sources :

Example 16 with ActionSetField

use of org.drools.workbench.models.datamodel.rule.ActionSetField in project drools-wb by kiegroup.

the class RuleModelCloneVisitor method visitActionFieldList.

private ActionSetField visitActionFieldList(ActionSetField afl) {
    ActionSetField clone = new ActionSetField();
    clone.setVariable(afl.getVariable());
    for (ActionFieldValue afv : afl.getFieldValues()) {
        clone.addFieldValue(cloneActionFieldValue(afv));
    }
    return clone;
}
Also used : ActionSetField(org.drools.workbench.models.datamodel.rule.ActionSetField) ActionFieldValue(org.drools.workbench.models.datamodel.rule.ActionFieldValue)

Example 17 with ActionSetField

use of org.drools.workbench.models.datamodel.rule.ActionSetField in project drools-wb by kiegroup.

the class GuidedDecisionTableGeneratorListenerTest method correctMergedConditionColumnHeaders.

@Test
public // https://issues.jboss.org/browse/RHBPMS-856
void correctMergedConditionColumnHeaders() {
    final ConversionResult result = new ConversionResult();
    final List<DataListener> listeners = new ArrayList<>();
    addModelField("org.test.Vehicle", "this", "org.test.Vehicle", DataType.TYPE_THIS);
    addModelField("org.test.Vehicle", "subRTO", String.class.getName(), DataType.TYPE_STRING);
    addModelField("org.test.Vehicle", "manufacturer", String.class.getName(), DataType.TYPE_STRING);
    addModelField("org.test.Vehicle", "model", String.class.getName(), DataType.TYPE_STRING);
    addModelField("org.test.Vehicle", "vehicleSegment", String.class.getName(), DataType.TYPE_STRING);
    addModelField("org.test.Vehicle", "vehicleAge", Integer.class.getName(), DataType.TYPE_NUMERIC_INTEGER);
    addModelField("org.test.Vehicle", "discount", Double.class.getName(), DataType.TYPE_NUMERIC_DOUBLE);
    final GuidedDecisionTableGeneratorListener listener = new GuidedDecisionTableGeneratorListener(result, dmo);
    listeners.add(listener);
    // Convert
    final ExcelParser parser = new ExcelParser(listeners);
    final InputStream is = this.getClass().getResourceAsStream("RHBPMS-856 (Merged condition columns).xls");
    try {
        parser.parseFile(is);
    } finally {
        try {
            is.close();
        } catch (IOException ioe) {
            fail(ioe.getMessage());
        }
    }
    // Check conversion results
    assertEquals(0, result.getMessages().size());
    // Check basics
    final List<GuidedDecisionTable52> dtables = listener.getGuidedDecisionTables();
    assertNotNull(dtables);
    assertEquals(1, dtables.size());
    GuidedDecisionTable52 dtable = dtables.get(0);
    assertEquals("VehiclePremiumDiscount", dtable.getTableName());
    assertEquals(GuidedDecisionTable52.TableFormat.EXTENDED_ENTRY, dtable.getTableFormat());
    // Check expanded columns
    List<BaseColumn> columns = dtable.getExpandedColumns();
    assertNotNull(columns);
    assertEquals(9, columns.size());
    assertTrue(columns.get(0) instanceof RowNumberCol52);
    assertTrue(columns.get(1) instanceof DescriptionCol52);
    assertTrue(columns.get(2) instanceof BRLConditionVariableColumn);
    assertTrue(columns.get(3) instanceof BRLConditionVariableColumn);
    assertTrue(columns.get(4) instanceof BRLConditionVariableColumn);
    assertTrue(columns.get(5) instanceof BRLConditionVariableColumn);
    assertTrue(columns.get(6) instanceof BRLConditionVariableColumn);
    assertTrue(columns.get(7) instanceof BRLConditionVariableColumn);
    assertTrue(columns.get(8) instanceof BRLActionVariableColumn);
    // Check individual condition columns
    assertEquals(1, dtable.getConditions().size());
    assertTrue(dtable.getConditions().get(0) instanceof BRLConditionColumn);
    BRLConditionColumn conditionCol0 = ((BRLConditionColumn) dtable.getConditions().get(0));
    assertEquals("Converted from ['RTO', 'Manufacturer', 'Model', 'Segment', 'Age Min', 'Age Max']", conditionCol0.getHeader());
    assertEquals(6, conditionCol0.getChildColumns().size());
    List<IPattern> conditionCol0definition = conditionCol0.getDefinition();
    assertEquals(1, conditionCol0definition.size());
    assertTrue(conditionCol0definition.get(0) instanceof FactPattern);
    FactPattern conditionCol0fp = (FactPattern) conditionCol0definition.get(0);
    assertEquals("Vehicle", conditionCol0fp.getFactType());
    assertEquals(6, conditionCol0fp.getNumberOfConstraints());
    // Field Constraint 1
    assertTrue(conditionCol0fp.getConstraint(0) instanceof SingleFieldConstraint);
    final SingleFieldConstraint conditionCol0fpsfc0 = (SingleFieldConstraint) conditionCol0fp.getConstraint(0);
    assertEquals("subRTO", conditionCol0fpsfc0.getFieldName());
    assertEquals("==", conditionCol0fpsfc0.getOperator());
    assertEquals("param1", conditionCol0fpsfc0.getValue());
    assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol0fpsfc0.getConstraintValueType());
    assertEquals(DataType.TYPE_STRING, conditionCol0fpsfc0.getFieldType());
    // Field Constraint 2
    assertTrue(conditionCol0fp.getConstraint(1) instanceof SingleFieldConstraint);
    final SingleFieldConstraint conditionCol0fpsfc1 = (SingleFieldConstraint) conditionCol0fp.getConstraint(1);
    assertEquals("manufacturer", conditionCol0fpsfc1.getFieldName());
    assertEquals("==", conditionCol0fpsfc1.getOperator());
    assertEquals("param2", conditionCol0fpsfc1.getValue());
    assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol0fpsfc1.getConstraintValueType());
    assertEquals(DataType.TYPE_STRING, conditionCol0fpsfc1.getFieldType());
    // Field Constraint 3
    assertTrue(conditionCol0fp.getConstraint(2) instanceof SingleFieldConstraint);
    final SingleFieldConstraint conditionCol0fpsfc2 = (SingleFieldConstraint) conditionCol0fp.getConstraint(2);
    assertEquals("model", conditionCol0fpsfc2.getFieldName());
    assertEquals("==", conditionCol0fpsfc2.getOperator());
    assertEquals("param3", conditionCol0fpsfc2.getValue());
    assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol0fpsfc2.getConstraintValueType());
    assertEquals(DataType.TYPE_STRING, conditionCol0fpsfc2.getFieldType());
    // Field Constraint 4
    assertTrue(conditionCol0fp.getConstraint(3) instanceof SingleFieldConstraint);
    final SingleFieldConstraint conditionCol0fpsfc3 = (SingleFieldConstraint) conditionCol0fp.getConstraint(3);
    assertEquals("vehicleSegment", conditionCol0fpsfc3.getFieldName());
    assertEquals("==", conditionCol0fpsfc3.getOperator());
    assertEquals("param4", conditionCol0fpsfc3.getValue());
    assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol0fpsfc3.getConstraintValueType());
    assertEquals(DataType.TYPE_STRING, conditionCol0fpsfc3.getFieldType());
    // Field Constraint 5
    assertTrue(conditionCol0fp.getConstraint(4) instanceof SingleFieldConstraint);
    final SingleFieldConstraint conditionCol0fpsfc4 = (SingleFieldConstraint) conditionCol0fp.getConstraint(4);
    assertEquals("vehicleAge", conditionCol0fpsfc4.getFieldName());
    assertEquals("<=", conditionCol0fpsfc4.getOperator());
    assertEquals("param5", conditionCol0fpsfc4.getValue());
    assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol0fpsfc4.getConstraintValueType());
    assertEquals(DataType.TYPE_NUMERIC_INTEGER, conditionCol0fpsfc4.getFieldType());
    // Field Constraint 6
    assertTrue(conditionCol0fp.getConstraint(5) instanceof SingleFieldConstraint);
    final SingleFieldConstraint conditionCol0fpsfc5 = (SingleFieldConstraint) conditionCol0fp.getConstraint(5);
    assertEquals("vehicleAge", conditionCol0fpsfc5.getFieldName());
    assertEquals(">", conditionCol0fpsfc5.getOperator());
    assertEquals("param6", conditionCol0fpsfc5.getValue());
    assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol0fpsfc5.getConstraintValueType());
    assertEquals(DataType.TYPE_NUMERIC_INTEGER, conditionCol0fpsfc5.getFieldType());
    // Field Constraint 1 - Variable 1
    BRLConditionVariableColumn conditionCol0param0 = conditionCol0.getChildColumns().get(0);
    assertEquals("param1", conditionCol0param0.getVarName());
    assertEquals("RTO", conditionCol0param0.getHeader());
    assertEquals(DataType.TYPE_STRING, conditionCol0param0.getFieldType());
    assertEquals("Vehicle", conditionCol0param0.getFactType());
    assertEquals("subRTO", conditionCol0param0.getFactField());
    // Field Constraint 2 - Variable 2
    BRLConditionVariableColumn conditionCol0param1 = conditionCol0.getChildColumns().get(1);
    assertEquals("param2", conditionCol0param1.getVarName());
    assertEquals("Manufacturer", conditionCol0param1.getHeader());
    assertEquals(DataType.TYPE_STRING, conditionCol0param1.getFieldType());
    assertEquals("Vehicle", conditionCol0param1.getFactType());
    assertEquals("manufacturer", conditionCol0param1.getFactField());
    // Field Constraint 3 - Variable 3
    BRLConditionVariableColumn conditionCol0param2 = conditionCol0.getChildColumns().get(2);
    assertEquals("param3", conditionCol0param2.getVarName());
    assertEquals("Model", conditionCol0param2.getHeader());
    assertEquals(DataType.TYPE_STRING, conditionCol0param2.getFieldType());
    assertEquals("Vehicle", conditionCol0param2.getFactType());
    assertEquals("model", conditionCol0param2.getFactField());
    // Field Constraint 4 - Variable 4
    BRLConditionVariableColumn conditionCol0param3 = conditionCol0.getChildColumns().get(3);
    assertEquals("param4", conditionCol0param3.getVarName());
    assertEquals("Segment", conditionCol0param3.getHeader());
    assertEquals(DataType.TYPE_STRING, conditionCol0param3.getFieldType());
    assertEquals("Vehicle", conditionCol0param3.getFactType());
    assertEquals("vehicleSegment", conditionCol0param3.getFactField());
    // Field Constraint 5 - Variable 5
    BRLConditionVariableColumn conditionCol0param4 = conditionCol0.getChildColumns().get(4);
    assertEquals("param5", conditionCol0param4.getVarName());
    assertEquals("Age Min", conditionCol0param4.getHeader());
    assertEquals(DataType.TYPE_NUMERIC_INTEGER, conditionCol0param4.getFieldType());
    assertEquals("Vehicle", conditionCol0param4.getFactType());
    assertEquals("vehicleAge", conditionCol0param4.getFactField());
    // Field Constraint 6 - Variable 6
    BRLConditionVariableColumn conditionCol0param5 = conditionCol0.getChildColumns().get(5);
    assertEquals("param6", conditionCol0param5.getVarName());
    assertEquals("Age Max", conditionCol0param5.getHeader());
    assertEquals(DataType.TYPE_NUMERIC_INTEGER, conditionCol0param5.getFieldType());
    assertEquals("Vehicle", conditionCol0param5.getFactType());
    assertEquals("vehicleAge", conditionCol0param5.getFactField());
    // Check individual action columns
    assertEquals(1, dtable.getActionCols().size());
    assertTrue(dtable.getActionCols().get(0) instanceof BRLActionColumn);
    BRLActionColumn actionCol0 = ((BRLActionColumn) dtable.getActionCols().get(0));
    assertEquals("Converted from ['Discount(%)']", actionCol0.getHeader());
    assertEquals(1, actionCol0.getChildColumns().size());
    List<IAction> actionCol0definition = actionCol0.getDefinition();
    assertEquals(1, actionCol0definition.size());
    assertTrue(actionCol0definition.get(0) instanceof ActionSetField);
    ActionSetField actionCol0asf0 = (ActionSetField) actionCol0definition.get(0);
    assertEquals("v", actionCol0asf0.getVariable());
    ActionFieldValue[] actionCol0asf0afvs = actionCol0asf0.getFieldValues();
    assertEquals(1, actionCol0asf0afvs.length);
    ActionFieldValue actionCol0asf0afv0 = actionCol0asf0afvs[0];
    assertEquals("discount", actionCol0asf0afv0.getField());
    assertEquals("param7", actionCol0asf0afv0.getValue());
    assertEquals(FieldNatureType.TYPE_TEMPLATE, actionCol0asf0afv0.getNature());
    assertEquals(DataType.TYPE_NUMERIC_DOUBLE, actionCol0asf0afv0.getType());
    // Action 1 - Variable 1
    BRLActionVariableColumn actionCol0param0 = actionCol0.getChildColumns().get(0);
    assertEquals("param7", actionCol0param0.getVarName());
    assertEquals("Discount(%)", actionCol0param0.getHeader());
    assertEquals(DataType.TYPE_NUMERIC_DOUBLE, actionCol0param0.getFieldType());
    assertEquals("Vehicle", actionCol0param0.getFactType());
    assertEquals("discount", actionCol0param0.getFactField());
    // Check data
    assertEquals(4, dtable.getData().size());
    assertTrue(isRowEquivalent(new Object[] { 1, "1", "ALL", "XYZ", "EL", "HighEnd", 1, 0, 1.75d }, dtable.getData().get(0)));
    assertTrue(isRowEquivalent(new Object[] { 2, "2", "ALL", "XYZ", "EL", "HighEnd", 5, 1, 2.00d }, dtable.getData().get(1)));
    assertTrue(isRowEquivalent(new Object[] { 3, "3", "ALL", "XYZ", "EL", "HighEnd", 7, 5, 2.00d }, dtable.getData().get(2)));
    assertTrue(isRowEquivalent(new Object[] { 4, "4", "ALL", "XYZ", "EL", "HighEnd", 10, 7, 1.00d }, dtable.getData().get(3)));
}
Also used : BRLConditionColumn(org.drools.workbench.models.guided.dtable.shared.model.BRLConditionColumn) IPattern(org.drools.workbench.models.datamodel.rule.IPattern) GuidedDecisionTable52(org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52) ArrayList(java.util.ArrayList) CompositeFactPattern(org.drools.workbench.models.datamodel.rule.CompositeFactPattern) FactPattern(org.drools.workbench.models.datamodel.rule.FactPattern) BRLConditionVariableColumn(org.drools.workbench.models.guided.dtable.shared.model.BRLConditionVariableColumn) SingleFieldConstraint(org.drools.workbench.models.datamodel.rule.SingleFieldConstraint) BRLActionColumn(org.drools.workbench.models.guided.dtable.shared.model.BRLActionColumn) DescriptionCol52(org.drools.workbench.models.guided.dtable.shared.model.DescriptionCol52) ActionFieldValue(org.drools.workbench.models.datamodel.rule.ActionFieldValue) ExcelParser(org.drools.decisiontable.parser.xls.ExcelParser) BaseColumn(org.drools.workbench.models.guided.dtable.shared.model.BaseColumn) IAction(org.drools.workbench.models.datamodel.rule.IAction) InputStream(java.io.InputStream) IOException(java.io.IOException) BigInteger(java.math.BigInteger) ConversionResult(org.drools.workbench.models.guided.dtable.shared.conversion.ConversionResult) ActionSetField(org.drools.workbench.models.datamodel.rule.ActionSetField) DataListener(org.drools.template.parser.DataListener) BRLActionVariableColumn(org.drools.workbench.models.guided.dtable.shared.model.BRLActionVariableColumn) RowNumberCol52(org.drools.workbench.models.guided.dtable.shared.model.RowNumberCol52) Test(org.junit.Test)

Example 18 with ActionSetField

use of org.drools.workbench.models.datamodel.rule.ActionSetField in project drools-wb by kiegroup.

the class GuidedDecisionTableGeneratorListenerTest method testMissingTemplateKeyValues_RHSInsertThenUpdate.

@Test
public // https://issues.jboss.org/browse/GUVNOR-2030
void testMissingTemplateKeyValues_RHSInsertThenUpdate() {
    final ConversionResult result = new ConversionResult();
    final List<DataListener> listeners = new ArrayList<DataListener>();
    addModelField("org.test.Transaction", "this", "org.test.Transaction", DataType.TYPE_THIS);
    addModelField("org.test.Transaction", "enabled", Boolean.class.getName(), DataType.TYPE_BOOLEAN);
    final GuidedDecisionTableGeneratorListener listener = new GuidedDecisionTableGeneratorListener(result, dmo);
    listeners.add(listener);
    // Convert
    final ExcelParser parser = new ExcelParser(listeners);
    final InputStream is = this.getClass().getResourceAsStream("GUVNOR-2030 (RHS insert then update).xls");
    try {
        parser.parseFile(is);
    } finally {
        try {
            is.close();
        } catch (IOException ioe) {
            fail(ioe.getMessage());
        }
    }
    // Check conversion results
    assertEquals(0, result.getMessages().size());
    // Check basics
    final List<GuidedDecisionTable52> dtables = listener.getGuidedDecisionTables();
    assertNotNull(dtables);
    assertEquals(1, dtables.size());
    GuidedDecisionTable52 dtable = dtables.get(0);
    assertEquals("asd", dtable.getTableName());
    assertEquals(GuidedDecisionTable52.TableFormat.EXTENDED_ENTRY, dtable.getTableFormat());
    // Check expanded columns
    List<BaseColumn> columns = dtable.getExpandedColumns();
    assertNotNull(columns);
    assertEquals(6, columns.size());
    assertTrue(columns.get(0) instanceof RowNumberCol52);
    assertTrue(columns.get(1) instanceof DescriptionCol52);
    assertTrue(columns.get(2) instanceof BRLConditionVariableColumn);
    assertTrue(columns.get(3) instanceof BRLActionVariableColumn);
    assertTrue(columns.get(4) instanceof BRLActionVariableColumn);
    assertTrue(columns.get(5) instanceof BRLActionVariableColumn);
    // Check individual condition columns
    assertEquals(1, dtable.getConditions().size());
    assertTrue(dtable.getConditions().get(0) instanceof BRLConditionColumn);
    // Column 1
    BRLConditionColumn conditionCol0 = ((BRLConditionColumn) dtable.getConditions().get(0));
    assertEquals("Converted from ['Disabled']", conditionCol0.getHeader());
    assertEquals(1, conditionCol0.getChildColumns().size());
    List<IPattern> conditionCol0definition = conditionCol0.getDefinition();
    assertEquals(1, conditionCol0definition.size());
    assertTrue(conditionCol0definition.get(0) instanceof FactPattern);
    FactPattern conditionCol0fp = (FactPattern) conditionCol0definition.get(0);
    assertEquals("Transaction", conditionCol0fp.getFactType());
    assertEquals(1, conditionCol0fp.getNumberOfConstraints());
    assertTrue(conditionCol0fp.getConstraint(0) instanceof SingleFieldConstraint);
    final SingleFieldConstraint conditionCol0fpsfc0 = (SingleFieldConstraint) conditionCol0fp.getConstraint(0);
    assertEquals("enabled", conditionCol0fpsfc0.getFieldName());
    assertEquals("==", conditionCol0fpsfc0.getOperator());
    assertEquals("param1", conditionCol0fpsfc0.getValue());
    assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol0fpsfc0.getConstraintValueType());
    assertEquals(DataType.TYPE_BOOLEAN, conditionCol0fpsfc0.getFieldType());
    // Column 1 - Variable 1
    BRLConditionVariableColumn conditionCol0param0 = conditionCol0.getChildColumns().get(0);
    assertEquals("param1", conditionCol0param0.getVarName());
    assertEquals("Disabled", conditionCol0param0.getHeader());
    assertEquals(DataType.TYPE_BOOLEAN, conditionCol0param0.getFieldType());
    assertEquals("Transaction", conditionCol0param0.getFactType());
    assertEquals("enabled", conditionCol0param0.getFactField());
    // Check individual action columns
    assertEquals(3, dtable.getActionCols().size());
    assertTrue(dtable.getActionCols().get(0) instanceof BRLActionColumn);
    // Column 2
    BRLActionColumn actionCol0 = ((BRLActionColumn) dtable.getActionCols().get(0));
    assertEquals("Converted from ['Enable']", actionCol0.getHeader());
    assertEquals(1, actionCol0.getChildColumns().size());
    List<IAction> actionCol0definition = actionCol0.getDefinition();
    assertEquals(1, actionCol0definition.size());
    assertTrue(actionCol0definition.get(0) instanceof ActionSetField);
    ActionSetField actionCol0asf0 = (ActionSetField) actionCol0definition.get(0);
    assertEquals("$t", actionCol0asf0.getVariable());
    ActionFieldValue[] actionCol0asf0afvs = actionCol0asf0.getFieldValues();
    assertEquals(1, actionCol0asf0afvs.length);
    ActionFieldValue actionCol0asf0afv0 = actionCol0asf0afvs[0];
    assertEquals("enabled", actionCol0asf0afv0.getField());
    assertEquals("param2", actionCol0asf0afv0.getValue());
    assertEquals(FieldNatureType.TYPE_TEMPLATE, actionCol0asf0afv0.getNature());
    assertEquals(DataType.TYPE_BOOLEAN, actionCol0asf0afv0.getType());
    // Column 3
    BRLActionColumn actionCol1 = ((BRLActionColumn) dtable.getActionCols().get(1));
    assertEquals("Converted from ['New']", actionCol1.getHeader());
    assertEquals(1, actionCol1.getChildColumns().size());
    List<IAction> actionCol1definition = actionCol1.getDefinition();
    assertEquals(1, actionCol1definition.size());
    assertTrue(actionCol1definition.get(0) instanceof ActionInsertFact);
    ActionInsertFact actionCol1aif0 = (ActionInsertFact) actionCol1definition.get(0);
    assertEquals("$t2", actionCol1aif0.getBoundName());
    assertEquals("Transaction", actionCol1aif0.getFactType());
    ActionFieldValue[] actionCol1aif0afvs = actionCol1aif0.getFieldValues();
    assertEquals(0, actionCol1aif0afvs.length);
    // Column 4
    BRLActionColumn actionCol2 = ((BRLActionColumn) dtable.getActionCols().get(2));
    assertEquals("Converted from ['Disable']", actionCol2.getHeader());
    assertEquals(1, actionCol2.getChildColumns().size());
    List<IAction> actionCol2definition = actionCol2.getDefinition();
    assertEquals(1, actionCol2definition.size());
    assertTrue(actionCol2definition.get(0) instanceof ActionSetField);
    ActionSetField actionCol2asf0 = (ActionSetField) actionCol2definition.get(0);
    assertEquals("$t2", actionCol2asf0.getVariable());
    ActionFieldValue[] actionCol2asf0afvs = actionCol2asf0.getFieldValues();
    assertEquals(1, actionCol2asf0afvs.length);
    ActionFieldValue actionCol2asf0afv0 = actionCol2asf0afvs[0];
    assertEquals("enabled", actionCol2asf0afv0.getField());
    assertEquals("param3", actionCol2asf0afv0.getValue());
    assertEquals(FieldNatureType.TYPE_TEMPLATE, actionCol2asf0afv0.getNature());
    assertEquals(DataType.TYPE_BOOLEAN, actionCol2asf0afv0.getType());
    // Check data
    assertEquals(1, dtable.getData().size());
    assertTrue(isRowEquivalent(new Object[] { 1, "asd", false, true, false, false }, dtable.getData().get(0)));
}
Also used : BRLConditionColumn(org.drools.workbench.models.guided.dtable.shared.model.BRLConditionColumn) IPattern(org.drools.workbench.models.datamodel.rule.IPattern) GuidedDecisionTable52(org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52) ArrayList(java.util.ArrayList) CompositeFactPattern(org.drools.workbench.models.datamodel.rule.CompositeFactPattern) FactPattern(org.drools.workbench.models.datamodel.rule.FactPattern) BRLConditionVariableColumn(org.drools.workbench.models.guided.dtable.shared.model.BRLConditionVariableColumn) SingleFieldConstraint(org.drools.workbench.models.datamodel.rule.SingleFieldConstraint) BRLActionColumn(org.drools.workbench.models.guided.dtable.shared.model.BRLActionColumn) DescriptionCol52(org.drools.workbench.models.guided.dtable.shared.model.DescriptionCol52) ActionFieldValue(org.drools.workbench.models.datamodel.rule.ActionFieldValue) ExcelParser(org.drools.decisiontable.parser.xls.ExcelParser) BaseColumn(org.drools.workbench.models.guided.dtable.shared.model.BaseColumn) IAction(org.drools.workbench.models.datamodel.rule.IAction) InputStream(java.io.InputStream) IOException(java.io.IOException) ConversionResult(org.drools.workbench.models.guided.dtable.shared.conversion.ConversionResult) ActionSetField(org.drools.workbench.models.datamodel.rule.ActionSetField) ActionInsertFact(org.drools.workbench.models.datamodel.rule.ActionInsertFact) DataListener(org.drools.template.parser.DataListener) BRLActionVariableColumn(org.drools.workbench.models.guided.dtable.shared.model.BRLActionVariableColumn) RowNumberCol52(org.drools.workbench.models.guided.dtable.shared.model.RowNumberCol52) Test(org.junit.Test)

Example 19 with ActionSetField

use of org.drools.workbench.models.datamodel.rule.ActionSetField in project drools-wb by kiegroup.

the class RuleModelCloneVisitorTest method testRuleModelCloning.

@Test
public void testRuleModelCloning() {
    RuleModel model = new RuleModel();
    // --------------------------------------------------------------------------------------------------------------
    // LHS
    // --------------------------------------------------------------------------------------------------------------
    // 
    RuleAttribute attribute = new RuleAttribute("att1_name", "att1_val");
    model.addAttribute(attribute);
    RuleMetadata metadata = new RuleMetadata("meta1_name", "meta1_val");
    model.addMetadata(metadata);
    FactPattern f1 = buildFactPattern();
    FactPattern f2 = new FactPattern();
    f2.setBoundName("$f2");
    f2.setFactType("Fact2");
    f2.addConstraint(buildCompositeFieldConstraint());
    CompositeFactPattern composite = new CompositeFactPattern();
    composite.setType(CompositeFactPattern.COMPOSITE_TYPE_EXISTS);
    composite.addFactPattern(f1);
    composite.addFactPattern(f2);
    model.addLhsItem(composite);
    model.addLhsItem(buildFromAccumulateCompositeFactPattern());
    model.addLhsItem(buildFromCollectCompositeFactPattern());
    model.addLhsItem(buildFromCompositeFactPattern());
    model.addLhsItem(buildFreeFormLine());
    model.addLhsItem(buildDslSentence());
    ActionGlobalCollectionAdd addGlobal = new ActionGlobalCollectionAdd();
    addGlobal.setFactName("MyFact");
    addGlobal.setGlobalName("glist");
    model.addRhsItem(addGlobal);
    // --------------------------------------------------------------------------------------------------------------
    // RHS
    // --------------------------------------------------------------------------------------------------------------
    // 
    ActionInsertFact aif = new ActionInsertFact();
    aif.setBoundName("$f");
    aif.setFactType("FactType");
    aif.addFieldValue(buildActionFieldValue());
    aif.addFieldValue(buildActionFieldValue());
    model.addRhsItem(aif);
    ActionUpdateField auf = new ActionUpdateField();
    auf.setVariable("$var");
    auf.addFieldValue(buildActionFieldValue());
    auf.addFieldValue(buildActionFieldValue());
    model.addRhsItem(auf);
    ActionSetField asf = new ActionSetField();
    asf.setVariable("$var");
    asf.addFieldValue(buildActionFieldValue());
    asf.addFieldValue(buildActionFieldValue());
    model.addRhsItem(asf);
    ActionRetractFact arf = new ActionRetractFact();
    arf.setVariableName("$f");
    model.addRhsItem(arf);
    ActionCallMethod callMethod1 = new ActionCallMethod();
    callMethod1.setVariable("var1");
    callMethod1.setMethodName("testMethod1 ");
    callMethod1.setState(ActionCallMethod.TYPE_DEFINED);
    callMethod1.addFieldValue(new ActionFieldFunction("field1", "value1", "type1"));
    model.addRhsItem(callMethod1);
    ActionCallMethod callMethod2 = new ActionCallMethod();
    callMethod2.setVariable("var2");
    callMethod2.setMethodName("testMethod2 ");
    callMethod2.setState(ActionCallMethod.TYPE_UNDEFINED);
    callMethod2.addFieldValue(new ActionFieldFunction("field2", "value2", "type2"));
    model.addRhsItem(callMethod2);
    model.addRhsItem(buildFreeFormLine());
    // --------------------------------------------------------------------------------------------------------------
    // Clone and verify
    // --------------------------------------------------------------------------------------------------------------
    // 
    RuleModel clone = new RuleModelCloneVisitor().visitRuleModel(model);
    assertArrayEquals(model.attributes, clone.attributes);
    int attIndex = 0;
    for (RuleAttribute att : model.attributes) {
        assertNotSame(att, clone.attributes[attIndex++]);
    }
    assertArrayEquals(model.metadataList, clone.metadataList);
    int metIndex = 0;
    for (RuleMetadata met : model.metadataList) {
        assertNotSame(met, clone.metadataList[metIndex++]);
    }
    assertArrayEquals(model.lhs, clone.lhs);
    int lhsIndex = 0;
    for (IPattern pattern : model.lhs) {
        assertNotSame(pattern, clone.lhs[lhsIndex++]);
    }
    assertArrayEquals(model.rhs, clone.rhs);
    int rhsIndex = 0;
    for (IAction action : model.rhs) {
        assertNotSame(action, clone.rhs[rhsIndex++]);
    }
}
Also used : IPattern(org.drools.workbench.models.datamodel.rule.IPattern) IAction(org.drools.workbench.models.datamodel.rule.IAction) ActionCallMethod(org.drools.workbench.models.datamodel.rule.ActionCallMethod) IFactPattern(org.drools.workbench.models.datamodel.rule.IFactPattern) FactPattern(org.drools.workbench.models.datamodel.rule.FactPattern) FromAccumulateCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromAccumulateCompositeFactPattern) CompositeFactPattern(org.drools.workbench.models.datamodel.rule.CompositeFactPattern) FromCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromCompositeFactPattern) FromCollectCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromCollectCompositeFactPattern) FromAccumulateCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromAccumulateCompositeFactPattern) CompositeFactPattern(org.drools.workbench.models.datamodel.rule.CompositeFactPattern) FromCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromCompositeFactPattern) FromCollectCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromCollectCompositeFactPattern) ActionFieldFunction(org.drools.workbench.models.datamodel.rule.ActionFieldFunction) RuleModel(org.drools.workbench.models.datamodel.rule.RuleModel) CompositeFieldConstraint(org.drools.workbench.models.datamodel.rule.CompositeFieldConstraint) SingleFieldConstraint(org.drools.workbench.models.datamodel.rule.SingleFieldConstraint) BaseSingleFieldConstraint(org.drools.workbench.models.datamodel.rule.BaseSingleFieldConstraint) ActionRetractFact(org.drools.workbench.models.datamodel.rule.ActionRetractFact) ActionUpdateField(org.drools.workbench.models.datamodel.rule.ActionUpdateField) ActionSetField(org.drools.workbench.models.datamodel.rule.ActionSetField) ActionInsertFact(org.drools.workbench.models.datamodel.rule.ActionInsertFact) RuleAttribute(org.drools.workbench.models.datamodel.rule.RuleAttribute) RuleMetadata(org.drools.workbench.models.datamodel.rule.RuleMetadata) ActionGlobalCollectionAdd(org.drools.workbench.models.datamodel.rule.ActionGlobalCollectionAdd) Test(org.junit.Test)

Example 20 with ActionSetField

use of org.drools.workbench.models.datamodel.rule.ActionSetField in project drools by kiegroup.

the class RuleTemplateModelDRLPersistenceTest method testActionUpdateFactSecondValue.

@Test
public void testActionUpdateFactSecondValue() {
    TemplateModel m = new TemplateModel();
    m.name = "r1";
    FactPattern fp = new FactPattern("Person");
    fp.setBoundName("$p");
    m.addLhsItem(fp);
    ActionSetField asf = new ActionSetField("$p");
    ActionFieldValue afv0 = new ActionFieldValue();
    afv0.setNature(FieldNatureType.TYPE_TEMPLATE);
    afv0.setField("field1");
    afv0.setValue("$f1");
    asf.addFieldValue(afv0);
    ActionFieldValue afv1 = new ActionFieldValue();
    afv1.setNature(FieldNatureType.TYPE_TEMPLATE);
    afv1.setField("field2");
    afv1.setValue("$f2");
    asf.addFieldValue(afv1);
    m.addRhsItem(asf);
    String expected = "rule \"r1_0\"\n" + "dialect \"mvel\"\n" + "when\n" + "$p : Person()\n" + "then\n" + "$p.setField2(\"bar\");\n" + "end";
    m.addRow(new String[] { null, "bar" });
    checkMarshall(expected, m);
}
Also used : ActionSetField(org.drools.workbench.models.datamodel.rule.ActionSetField) ActionFieldValue(org.drools.workbench.models.datamodel.rule.ActionFieldValue) CompositeFactPattern(org.drools.workbench.models.datamodel.rule.CompositeFactPattern) FactPattern(org.drools.workbench.models.datamodel.rule.FactPattern) FromCollectCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromCollectCompositeFactPattern) TemplateModel(org.drools.workbench.models.guided.template.shared.TemplateModel) Test(org.junit.Test)

Aggregations

ActionSetField (org.drools.workbench.models.datamodel.rule.ActionSetField)39 Test (org.junit.Test)27 ActionFieldValue (org.drools.workbench.models.datamodel.rule.ActionFieldValue)23 CompositeFactPattern (org.drools.workbench.models.datamodel.rule.CompositeFactPattern)21 FactPattern (org.drools.workbench.models.datamodel.rule.FactPattern)21 RuleModel (org.drools.workbench.models.datamodel.rule.RuleModel)17 FromCollectCompositeFactPattern (org.drools.workbench.models.datamodel.rule.FromCollectCompositeFactPattern)13 SingleFieldConstraint (org.drools.workbench.models.datamodel.rule.SingleFieldConstraint)12 FromCompositeFactPattern (org.drools.workbench.models.datamodel.rule.FromCompositeFactPattern)11 ArrayList (java.util.ArrayList)10 IAction (org.drools.workbench.models.datamodel.rule.IAction)10 ActionInsertFact (org.drools.workbench.models.datamodel.rule.ActionInsertFact)9 ActionUpdateField (org.drools.workbench.models.datamodel.rule.ActionUpdateField)9 IPattern (org.drools.workbench.models.datamodel.rule.IPattern)9 FromAccumulateCompositeFactPattern (org.drools.workbench.models.datamodel.rule.FromAccumulateCompositeFactPattern)8 BRLActionColumn (org.drools.workbench.models.guided.dtable.shared.model.BRLActionColumn)7 GuidedDecisionTable52 (org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52)7 ActionRetractFact (org.drools.workbench.models.datamodel.rule.ActionRetractFact)6 FromEntryPointFactPattern (org.drools.workbench.models.datamodel.rule.FromEntryPointFactPattern)6 BRLActionVariableColumn (org.drools.workbench.models.guided.dtable.shared.model.BRLActionVariableColumn)6