@Test public void testMultipleRuleTables() { final ConversionResult result = new ConversionResult(); final List<DataListener> listeners = new ArrayList<DataListener>(); final GuidedDecisionTableGeneratorListener listener = new GuidedDecisionTableGeneratorListener(result, dmo); listeners.add(listener); final ExcelParser parser = new ExcelParser(listeners); final InputStream is = this.getClass().getResourceAsStream("MultipleRuleTables.xls"); try { parser.parseFile(is); } finally { try { is.close(); } catch (IOException ioe) { fail(ioe.getMessage()); } } assertEquals(0, result.getMessages().size()); List<GuidedDecisionTable52> dtables = listener.getGuidedDecisionTables(); assertNotNull(dtables); assertEquals(2, dtables.size()); GuidedDecisionTable52 dtable0 = dtables.get(0); assertEquals("Table1", dtable0.getTableName()); assertEquals(GuidedDecisionTable52.TableFormat.EXTENDED_ENTRY, dtable0.getTableFormat()); GuidedDecisionTable52 dtable1 = dtables.get(1); assertEquals("Table2", dtable1.getTableName()); assertEquals(GuidedDecisionTable52.TableFormat.EXTENDED_ENTRY, dtable1.getTableFormat()); List<BaseColumn> columns0 = dtable0.getExpandedColumns(); assertNotNull(columns0); assertEquals(6, columns0.size()); assertTrue(columns0.get(0) instanceof RowNumberCol52); assertTrue(columns0.get(1) instanceof RuleNameColumn); assertTrue(columns0.get(2) instanceof DescriptionCol52); assertTrue(columns0.get(3) instanceof AttributeCol52); assertTrue(columns0.get(4) instanceof BRLConditionVariableColumn); assertTrue(columns0.get(5) instanceof BRLActionVariableColumn); AttributeCol52 attrCol0_2 = ((AttributeCol52) columns0.get(3)); assertEquals(Attribute.AGENDA_GROUP.getAttributeName(), attrCol0_2.getAttribute()); assertEquals(1, dtable0.getConditions().size()); assertTrue(dtable0.getConditions().get(0) instanceof BRLConditionColumn); BRLConditionColumn conditionCol0_0 = ((BRLConditionColumn) dtable0.getConditions().get(0)); assertEquals("Converted from ['Person's name']", conditionCol0_0.getHeader()); assertEquals(1, conditionCol0_0.getChildColumns().size()); List<IPattern> conditionCol0_0definition = conditionCol0_0.getDefinition(); assertEquals(1, conditionCol0_0definition.size()); assertTrue(conditionCol0_0definition.get(0) instanceof FactPattern); FactPattern conditionCol0_0fp = (FactPattern) conditionCol0_0definition.get(0); assertEquals("Person", conditionCol0_0fp.getFactType()); assertEquals(1, conditionCol0_0fp.getNumberOfConstraints()); assertTrue(conditionCol0_0fp.getConstraint(0) instanceof SingleFieldConstraint); final SingleFieldConstraint conditionCol0_0fpsfc0 = (SingleFieldConstraint) conditionCol0_0fp.getConstraint(0); assertEquals("name", conditionCol0_0fpsfc0.getFieldName()); assertEquals("==", conditionCol0_0fpsfc0.getOperator()); assertEquals("param1", conditionCol0_0fpsfc0.getValue()); assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol0_0fpsfc0.getConstraintValueType()); BRLConditionVariableColumn conditionCol0_0param0 = conditionCol0_0.getChildColumns().get(0); assertEquals("param1", conditionCol0_0param0.getVarName()); assertEquals("Person's name", conditionCol0_0param0.getHeader()); assertEquals(DataType.TYPE_STRING, conditionCol0_0param0.getFieldType()); assertEquals("Person", conditionCol0_0param0.getFactType()); assertEquals("name", conditionCol0_0param0.getFactField()); BRLActionColumn actionCol0_0 = ((BRLActionColumn) dtable0.getActionCols().get(0)); assertEquals("Converted from ['Salutation']", actionCol0_0.getHeader()); assertEquals(1, actionCol0_0.getChildColumns().size()); List<IAction> actionCol0_0definition = actionCol0_0.getDefinition(); assertEquals(1, actionCol0_0definition.size()); assertTrue(actionCol0_0definition.get(0) instanceof FreeFormLine); FreeFormLine actionCol0_0ffl = (FreeFormLine) actionCol0_0definition.get(0); assertEquals("System.out.println(\"@{param2}\");", actionCol0_0ffl.getText()); BRLActionVariableColumn actionCol0_0param0 = actionCol0_0.getChildColumns().get(0); assertEquals("param2", actionCol0_0param0.getVarName()); assertEquals("Salutation", actionCol0_0param0.getHeader()); assertEquals(DataType.TYPE_OBJECT, actionCol0_0param0.getFieldType()); assertNull(actionCol0_0param0.getFactType()); assertNull(actionCol0_0param0.getFactField()); assertEquals(2, dtable0.getData().size()); assertTrue(isRowEquivalent(new Object[]{1, "", "Created from row 7", "AG1", "John", "Hello Sir"}, dtable0.getData().get(0))); assertTrue(isRowEquivalent(new Object[]{2, "", "Row 2", "AG2", "Jane", "Hello Madam"}, dtable0.getData().get(1))); List<BaseColumn> columns1 = dtable1.getExpandedColumns(); assertNotNull(columns1); assertEquals(5, columns1.size()); assertTrue(columns1.get(0) instanceof RowNumberCol52); assertTrue(columns1.get(1) instanceof RuleNameColumn); assertTrue(columns1.get(2) instanceof DescriptionCol52); assertTrue(columns1.get(3) instanceof BRLConditionVariableColumn); assertTrue(columns1.get(4) instanceof BRLConditionVariableColumn); assertEquals(1, dtable0.getConditions().size()); assertTrue(dtable0.getConditions().get(0) instanceof BRLConditionColumn); BRLConditionColumn conditionCol1_0 = ((BRLConditionColumn) dtable1.getConditions().get(0)); assertEquals("Converted from ['Person’s name', 'Person’s age']", conditionCol1_0.getHeader()); assertEquals(2, conditionCol1_0.getChildColumns().size()); List<IPattern> conditionCol1_0definition = conditionCol1_0.getDefinition(); assertEquals(1, conditionCol1_0definition.size()); assertTrue(conditionCol1_0definition.get(0) instanceof FactPattern); FactPattern conditionCol1_0fp = (FactPattern) conditionCol1_0definition.get(0); assertEquals("Person", conditionCol1_0fp.getFactType()); assertEquals(2, conditionCol1_0fp.getNumberOfConstraints()); assertTrue(conditionCol1_0fp.getConstraint(0) instanceof SingleFieldConstraint); final SingleFieldConstraint conditionCol1_0fpsfc0 = (SingleFieldConstraint) conditionCol1_0fp.getConstraint(0); assertEquals("name", conditionCol1_0fpsfc0.getFieldName()); assertEquals("==", conditionCol1_0fpsfc0.getOperator()); assertEquals("param1", conditionCol1_0fpsfc0.getValue()); assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol1_0fpsfc0.getConstraintValueType()); assertTrue(conditionCol1_0fp.getConstraint(1) instanceof SingleFieldConstraint); final SingleFieldConstraint conditionCol1_0fpsfc1 = (SingleFieldConstraint) conditionCol1_0fp.getConstraint(1); assertEquals("age", conditionCol1_0fpsfc1.getFieldName()); assertEquals("==", conditionCol1_0fpsfc1.getOperator()); assertEquals("param2", conditionCol1_0fpsfc1.getValue()); assertEquals(SingleFieldConstraint.TYPE_TEMPLATE, conditionCol1_0fpsfc1.getConstraintValueType()); BRLConditionVariableColumn conditionCol1_0param0 = conditionCol1_0.getChildColumns().get(0); assertEquals("param1", conditionCol1_0param0.getVarName()); assertEquals("Person’s name", conditionCol1_0param0.getHeader()); assertEquals(DataType.TYPE_STRING, conditionCol1_0param0.getFieldType()); assertEquals("Person", conditionCol1_0param0.getFactType()); assertEquals("name", conditionCol1_0param0.getFactField()); BRLConditionVariableColumn conditionCol1_0param1 = conditionCol1_0.getChildColumns().get(1); assertEquals("param2", conditionCol1_0param1.getVarName()); assertEquals("Person’s age", conditionCol1_0param1.getHeader()); assertEquals(DataType.TYPE_STRING, conditionCol1_0param1.getFieldType()); assertEquals("Person", conditionCol1_0param1.getFactType()); assertEquals("age", conditionCol1_0param1.getFactField()); assertEquals(2, dtable1.getData().size()); assertTrue(isRowEquivalent(new Object[]{1, "", "Row 1", "John", "25"}, dtable1.getData().get(0))); assertTrue(isRowEquivalent(new Object[]{2, "", "Created from row 16", "Jane", "29"}, dtable1.getData().get(1))); }
public List<GuidedDecisionTable52> getGuidedDecisionTables() { return _dtables; }
GuidedDecisionTableGeneratorListener implements
        RuleSheetListener { public List<GuidedDecisionTable52> getGuidedDecisionTables() { return _dtables; } }
GuidedDecisionTableGeneratorListener implements
        RuleSheetListener { public List<GuidedDecisionTable52> getGuidedDecisionTables() { return _dtables; } GuidedDecisionTableGeneratorListener(final ConversionResult conversionResult,
                                                final PackageDataModelOracle _dmo); }
GuidedDecisionTableGeneratorListener implements
        RuleSheetListener { public List<GuidedDecisionTable52> getGuidedDecisionTables() { return _dtables; } GuidedDecisionTableGeneratorListener(final ConversionResult conversionResult,
                                                final PackageDataModelOracle _dmo); CaseInsensitiveMap getProperties(); Package getRuleSet(); List<Import> getImports(); List<Global> getGlobals(); List<String> getFunctions(); List<String> getQueries(); List<String> getTypeDeclarations(); List<GuidedDecisionTable52> getGuidedDecisionTables(); void startSheet(final String name); void finishSheet(); void newRow(final int rowNumber,
                       final int columns); void newCell(final int row,
                        final int column,
                        final String value,
                        int mergedColStart); }
GuidedDecisionTableGeneratorListener implements
        RuleSheetListener { public List<GuidedDecisionTable52> getGuidedDecisionTables() { return _dtables; } GuidedDecisionTableGeneratorListener(final ConversionResult conversionResult,
                                                final PackageDataModelOracle _dmo); CaseInsensitiveMap getProperties(); Package getRuleSet(); List<Import> getImports(); List<Global> getGlobals(); List<String> getFunctions(); List<String> getQueries(); List<String> getTypeDeclarations(); List<GuidedDecisionTable52> getGuidedDecisionTables(); void startSheet(final String name); void finishSheet(); void newRow(final int rowNumber,
                       final int columns); void newCell(final int row,
                        final int column,
                        final String value,
                        int mergedColStart);  }