@Test public void testLHSWithBRLColumn_ParseToRuleModel() { GuidedDecisionTable52 dtable = new GuidedDecisionTable52(); GuidedDTDRLPersistence p = new GuidedDTDRLPersistence(); String[][] data = new String[][]{ new String[]{"1", "", "desc", "Gargamel", "Pupa", "50"}, new String[]{"2", "", "desc", "Gargamel", "", "50"}, new String[]{"3", "", "desc", "Gargamel", "Pupa", ""} }; dtable.setRowNumberCol(new RowNumberCol52()); dtable.setDescriptionCol(new DescriptionCol52()); Pattern52 p1 = new Pattern52(); p1.setFactType("Baddie"); ConditionCol52 con = new ConditionCol52(); con.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); con.setFactField("name"); con.setOperator("=="); p1.getChildColumns().add(con); dtable.getConditions().add(p1); BRLConditionColumn brl1 = new BRLConditionColumn(); List<IPattern> brl1Definition = new ArrayList<IPattern>(); FactPattern brl1DefinitionFactPattern1 = new FactPattern("Smurf"); SingleFieldConstraint brl1DefinitionFactPattern1Constraint1 = new SingleFieldConstraint(); brl1DefinitionFactPattern1Constraint1.setFieldType(DataType.TYPE_STRING); brl1DefinitionFactPattern1Constraint1.setConstraintValueType(SingleFieldConstraint.TYPE_TEMPLATE); brl1DefinitionFactPattern1Constraint1.setFieldName("name"); brl1DefinitionFactPattern1Constraint1.setOperator("=="); brl1DefinitionFactPattern1Constraint1.setValue("$name"); brl1DefinitionFactPattern1.addConstraint(brl1DefinitionFactPattern1Constraint1); SingleFieldConstraint brl1DefinitionFactPattern1Constraint2 = new SingleFieldConstraint(); brl1DefinitionFactPattern1Constraint2.setFieldType(DataType.TYPE_NUMERIC_INTEGER); brl1DefinitionFactPattern1Constraint2.setConstraintValueType(SingleFieldConstraint.TYPE_TEMPLATE); brl1DefinitionFactPattern1Constraint2.setFieldName("age"); brl1DefinitionFactPattern1Constraint2.setOperator("=="); brl1DefinitionFactPattern1Constraint2.setValue("$age"); brl1DefinitionFactPattern1.addConstraint(brl1DefinitionFactPattern1Constraint2); brl1Definition.add(brl1DefinitionFactPattern1); brl1.setDefinition(brl1Definition); BRLConditionVariableColumn brl1Variable1 = new BRLConditionVariableColumn("$name", DataType.TYPE_STRING, "Person", "name"); brl1.getChildColumns().add(brl1Variable1); BRLConditionVariableColumn brl1Variable2 = new BRLConditionVariableColumn("$age", DataType.TYPE_NUMERIC_INTEGER, "Person", "age"); brl1.getChildColumns().add(brl1Variable2); dtable.getConditions().add(brl1); RuleModel rm = new RuleModel(); List<BaseColumn> allColumns = dtable.getExpandedColumns(); List<CompositeColumn<? extends BaseColumn>> allPatterns = dtable.getConditions(); List<List<DTCellValue52>> dtData = DataUtilities.makeDataLists(data); List<DTCellValue52> dtRowData0 = DataUtilities.makeDataRowList(data[0]); TemplateDataProvider rowDataProvider0 = new GuidedDTTemplateDataProvider(allColumns, dtRowData0); p.doConditions(allColumns, allPatterns, rowDataProvider0, dtRowData0, dtData, rm); assertEquals(2, rm.lhs.length); assertEquals("Baddie", ((FactPattern) rm.lhs[0]).getFactType()); assertEquals("Smurf", ((FactPattern) rm.lhs[1]).getFactType()); FactPattern result0Fp1 = (FactPattern) rm.lhs[0]; assertEquals(1, result0Fp1.getConstraintList().getConstraints().length); SingleFieldConstraint result0Fp1Con1 = (SingleFieldConstraint) result0Fp1.getConstraint(0); assertEquals(BaseSingleFieldConstraint.TYPE_LITERAL, result0Fp1Con1.getConstraintValueType()); assertEquals("name", result0Fp1Con1.getFieldName()); assertEquals("==", result0Fp1Con1.getOperator()); assertEquals("Gargamel", result0Fp1Con1.getValue()); FactPattern result0Fp2 = (FactPattern) rm.lhs[1]; assertEquals(2, result0Fp2.getConstraintList().getConstraints().length); SingleFieldConstraint result0Fp2Con1 = (SingleFieldConstraint) result0Fp2.getConstraint(0); assertEquals(BaseSingleFieldConstraint.TYPE_TEMPLATE, result0Fp2Con1.getConstraintValueType()); assertEquals("name", result0Fp2Con1.getFieldName()); assertEquals("==", result0Fp2Con1.getOperator()); assertEquals("$name", result0Fp2Con1.getValue()); SingleFieldConstraint result0Fp2Con2 = (SingleFieldConstraint) result0Fp2.getConstraint(1); assertEquals(BaseSingleFieldConstraint.TYPE_TEMPLATE, result0Fp2Con2.getConstraintValueType()); assertEquals("age", result0Fp2Con2.getFieldName()); assertEquals("==", result0Fp2Con2.getOperator()); assertEquals("$age", result0Fp2Con2.getValue()); List<DTCellValue52> dtRowData1 = DataUtilities.makeDataRowList(data[1]); TemplateDataProvider rowDataProvider1 = new GuidedDTTemplateDataProvider(allColumns, dtRowData1); p.doConditions(allColumns, allPatterns, rowDataProvider1, dtRowData1, dtData, rm); assertEquals(2, rm.lhs.length); assertEquals("Baddie", ((FactPattern) rm.lhs[0]).getFactType()); FactPattern result1Fp1 = (FactPattern) rm.lhs[0]; assertEquals(1, result1Fp1.getConstraintList().getConstraints().length); SingleFieldConstraint result1Fp1Con1 = (SingleFieldConstraint) result1Fp1.getConstraint(0); assertEquals(BaseSingleFieldConstraint.TYPE_LITERAL, result1Fp1Con1.getConstraintValueType()); assertEquals("name", result1Fp1Con1.getFieldName()); assertEquals("==", result1Fp1Con1.getOperator()); assertEquals("Gargamel", result1Fp1Con1.getValue()); FactPattern result1Fp2 = (FactPattern) rm.lhs[1]; assertEquals(2, result1Fp2.getConstraintList().getConstraints().length); SingleFieldConstraint result1Fp2Con1 = (SingleFieldConstraint) result1Fp2.getConstraint(0); assertEquals(BaseSingleFieldConstraint.TYPE_TEMPLATE, result1Fp2Con1.getConstraintValueType()); assertEquals("name", result1Fp2Con1.getFieldName()); assertEquals("==", result1Fp2Con1.getOperator()); assertEquals("$name", result1Fp2Con1.getValue()); SingleFieldConstraint result1Fp2Con2 = (SingleFieldConstraint) result1Fp2.getConstraint(1); assertEquals(BaseSingleFieldConstraint.TYPE_TEMPLATE, result1Fp2Con2.getConstraintValueType()); assertEquals("age", result1Fp2Con2.getFieldName()); assertEquals("==", result1Fp2Con2.getOperator()); assertEquals("$age", result1Fp2Con2.getValue()); List<DTCellValue52> dtRowData2 = DataUtilities.makeDataRowList(data[2]); TemplateDataProvider rowDataProvider2 = new GuidedDTTemplateDataProvider(allColumns, dtRowData2); p.doConditions(allColumns, allPatterns, rowDataProvider2, dtRowData2, dtData, rm); assertEquals(2, rm.lhs.length); assertEquals("Baddie", ((FactPattern) rm.lhs[0]).getFactType()); FactPattern result2Fp1 = (FactPattern) rm.lhs[0]; assertEquals(1, result2Fp1.getConstraintList().getConstraints().length); SingleFieldConstraint result2Fp1Con1 = (SingleFieldConstraint) result2Fp1.getConstraint(0); assertEquals(BaseSingleFieldConstraint.TYPE_LITERAL, result2Fp1Con1.getConstraintValueType()); assertEquals("name", result2Fp1Con1.getFieldName()); assertEquals("==", result2Fp1Con1.getOperator()); assertEquals("Gargamel", result2Fp1Con1.getValue()); FactPattern result2Fp2 = (FactPattern) rm.lhs[1]; assertEquals(2, result2Fp2.getConstraintList().getConstraints().length); SingleFieldConstraint result2Fp2Con1 = (SingleFieldConstraint) result2Fp2.getConstraint(0); assertEquals(BaseSingleFieldConstraint.TYPE_TEMPLATE, result2Fp2Con1.getConstraintValueType()); assertEquals("name", result2Fp2Con1.getFieldName()); assertEquals("==", result2Fp2Con1.getOperator()); assertEquals("$name", result2Fp2Con1.getValue()); SingleFieldConstraint result2Fp2Con2 = (SingleFieldConstraint) result2Fp2.getConstraint(1); assertEquals(BaseSingleFieldConstraint.TYPE_TEMPLATE, result2Fp2Con2.getConstraintValueType()); assertEquals("age", result2Fp2Con2.getFieldName()); assertEquals("==", result2Fp2Con2.getOperator()); assertEquals("$age", result2Fp2Con2.getValue()); }
void doConditions(List<BaseColumn> allColumns, List<CompositeColumn<? extends BaseColumn>> conditionPatterns, TemplateDataProvider rowDataProvider, List<DTCellValue52> row, List<List<DTCellValue52>> data, RuleModel rm) { List<IPattern> patterns = new ArrayList<IPattern>(); for (CompositeColumn<?> cc : conditionPatterns) { if (cc instanceof LimitedEntryBRLConditionColumn) { doCondition(allColumns, (LimitedEntryBRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof BRLConditionColumn) { doCondition(allColumns, (BRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof Pattern52) { doCondition(allColumns, (Pattern52) cc, patterns, row, data, rm); } } rm.lhs = patterns.toArray(new IPattern[patterns.size()]); }
GuidedDTDRLPersistence { void doConditions(List<BaseColumn> allColumns, List<CompositeColumn<? extends BaseColumn>> conditionPatterns, TemplateDataProvider rowDataProvider, List<DTCellValue52> row, List<List<DTCellValue52>> data, RuleModel rm) { List<IPattern> patterns = new ArrayList<IPattern>(); for (CompositeColumn<?> cc : conditionPatterns) { if (cc instanceof LimitedEntryBRLConditionColumn) { doCondition(allColumns, (LimitedEntryBRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof BRLConditionColumn) { doCondition(allColumns, (BRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof Pattern52) { doCondition(allColumns, (Pattern52) cc, patterns, row, data, rm); } } rm.lhs = patterns.toArray(new IPattern[patterns.size()]); } }
GuidedDTDRLPersistence { void doConditions(List<BaseColumn> allColumns, List<CompositeColumn<? extends BaseColumn>> conditionPatterns, TemplateDataProvider rowDataProvider, List<DTCellValue52> row, List<List<DTCellValue52>> data, RuleModel rm) { List<IPattern> patterns = new ArrayList<IPattern>(); for (CompositeColumn<?> cc : conditionPatterns) { if (cc instanceof LimitedEntryBRLConditionColumn) { doCondition(allColumns, (LimitedEntryBRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof BRLConditionColumn) { doCondition(allColumns, (BRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof Pattern52) { doCondition(allColumns, (Pattern52) cc, patterns, row, data, rm); } } rm.lhs = patterns.toArray(new IPattern[patterns.size()]); }  }
GuidedDTDRLPersistence { void doConditions(List<BaseColumn> allColumns, List<CompositeColumn<? extends BaseColumn>> conditionPatterns, TemplateDataProvider rowDataProvider, List<DTCellValue52> row, List<List<DTCellValue52>> data, RuleModel rm) { List<IPattern> patterns = new ArrayList<IPattern>(); for (CompositeColumn<?> cc : conditionPatterns) { if (cc instanceof LimitedEntryBRLConditionColumn) { doCondition(allColumns, (LimitedEntryBRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof BRLConditionColumn) { doCondition(allColumns, (BRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof Pattern52) { doCondition(allColumns, (Pattern52) cc, patterns, row, data, rm); } } rm.lhs = patterns.toArray(new IPattern[patterns.size()]); }  static GuidedDTDRLPersistence getInstance(); String marshal(final GuidedDecisionTable52 originalDTable); }
GuidedDTDRLPersistence { void doConditions(List<BaseColumn> allColumns, List<CompositeColumn<? extends BaseColumn>> conditionPatterns, TemplateDataProvider rowDataProvider, List<DTCellValue52> row, List<List<DTCellValue52>> data, RuleModel rm) { List<IPattern> patterns = new ArrayList<IPattern>(); for (CompositeColumn<?> cc : conditionPatterns) { if (cc instanceof LimitedEntryBRLConditionColumn) { doCondition(allColumns, (LimitedEntryBRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof BRLConditionColumn) { doCondition(allColumns, (BRLConditionColumn) cc, patterns, rowDataProvider, row, rm); } else if (cc instanceof Pattern52) { doCondition(allColumns, (Pattern52) cc, patterns, row, data, rm); } } rm.lhs = patterns.toArray(new IPattern[patterns.size()]); }  static GuidedDTDRLPersistence getInstance(); String marshal(final GuidedDecisionTable52 originalDTable);  }