ConditionCol52 newConditionColumn() { switch (tableFormat()) { case EXTENDED_ENTRY: return new ConditionCol52(); case LIMITED_ENTRY: return new LimitedEntryConditionCol52(); default: throw new UnsupportedOperationException("Unsupported table format: " + tableFormat()); } }
ConditionCol52 newConditionColumn() { switch (tableFormat()) { case EXTENDED_ENTRY: return new ConditionCol52(); case LIMITED_ENTRY: return new LimitedEntryConditionCol52(); default: throw new UnsupportedOperationException("Unsupported table format: " + tableFormat()); } }
@Test public void testCanSetupLimitedValueWhenOperatorNeedsAValue() throws Exception { when(plugin.editingCol()).thenReturn(new LimitedEntryConditionCol52()); when(plugin.doesOperatorNeedValue()).thenReturn(false); assertFalse(page.canSetupLimitedValue()); }
@Test public void testCanSetupLimitedValueWhenTableFormatIsNotLimitedEntry() throws Exception { when(plugin.editingCol()).thenReturn(new LimitedEntryConditionCol52()); when(model.getTableFormat()).thenReturn(GuidedDecisionTable52.TableFormat.EXTENDED_ENTRY); when(plugin.doesOperatorNeedValue()).thenReturn(true); assertFalse(page.canSetupLimitedValue()); }
@Test public void conditionIsNotPartOfAPattern() { final BaseColumn column = new LimitedEntryConditionCol52(); builder.generateDefinition( dtPresenter, column, ( String definition ) -> { fail( "ConditionCol52 was not part of a Pattern52 and hence should not be handled by ConditionCol52DefinitionBuilder" ); } ); }
protected void setupLimitedEntryPatternAndCondition() { final Pattern52 p = new Pattern52(); p.setFactType("Person"); p.setBoundName("$p"); final LimitedEntryConditionCol52 cc = new LimitedEntryConditionCol52(); cc.setFactField("name"); cc.setOperator("=="); cc.setFieldType(DataType.TYPE_STRING); cc.setValue(new DTCellValue52("Michael")); p.getChildColumns().add(cc); model.getConditions().add(p); when(dmo.getFieldType(eq("Person"), eq("name"))).thenReturn(DataType.TYPE_STRING); } }
private ConditionCol52 makeNewConditionColumn(final AvailableField f) { final GuidedDecisionTable52.TableFormat format = presenter.getTableFormat(); if (format == GuidedDecisionTable52.TableFormat.EXTENDED_ENTRY) { final ConditionCol52 c = new ConditionCol52(); c.setFactField(f.getName()); c.setFieldType(f.getType()); c.setConstraintValueType(f.getCalculationType()); return c; } else { final LimitedEntryConditionCol52 c = new LimitedEntryConditionCol52(); c.setFactField(f.getName()); c.setFieldType(f.getType()); c.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); return c; } }
private ConditionCol52 makeNewConditionColumn(final AvailableField f) { final GuidedDecisionTable52.TableFormat format = presenter.getTableFormat(); if (format == GuidedDecisionTable52.TableFormat.EXTENDED_ENTRY) { final ConditionCol52 c = new ConditionCol52(); c.setFactField(f.getName()); c.setFieldType(f.getType()); c.setConstraintValueType(f.getCalculationType()); return c; } else { final LimitedEntryConditionCol52 c = new LimitedEntryConditionCol52(); c.setFactField(f.getName()); c.setFieldType(f.getType()); c.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); return c; } }
public LimitedGuidedDecisionTableBuilder withIntegerColumn(final String boundName, final String factType, final String field, final String operator, final int value) { final Pattern52 pattern = findPattern(boundName, factType); final LimitedEntryConditionCol52 condition = new LimitedEntryConditionCol52(); condition.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); condition.setFieldType(DataType.TYPE_NUMERIC_INTEGER); condition.setFactField(field); condition.setHeader("Some header"); condition.setOperator(operator); condition.setValue( new DTCellValue52() { { setNumericValue(new Integer(value)); } }); pattern.getChildColumns().add(condition); addPattern(pattern); return this; }
public LimitedGuidedDecisionTableBuilder withIntegerColumn(final String boundName, final String factType, final String field, final String operator, final int value) { final Pattern52 pattern = findPattern(boundName, factType); final LimitedEntryConditionCol52 condition = new LimitedEntryConditionCol52(); condition.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); condition.setFieldType(DataType.TYPE_NUMERIC_INTEGER); condition.setFactField(field); condition.setHeader("Some header"); condition.setOperator(operator); condition.setValue( new DTCellValue52() { { setNumericValue(new Integer(value)); } }); pattern.getChildColumns().add(condition); addPattern(pattern); return this; }
dt.getConditions().add(p1); LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc1.setFieldType(DataType.TYPE_STRING); p1.getChildColumns().add(cc1); LimitedEntryConditionCol52 cc2 = new LimitedEntryConditionCol52(); cc2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc2.setFieldType(DataType.TYPE_NUMERIC_INTEGER); p1.getChildColumns().add(cc2); LimitedEntryConditionCol52 cc3 = new LimitedEntryConditionCol52(); cc3.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc3.setFieldType(DataType.TYPE_DATE);
dt.getConditions().add(p1); LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc1.setFieldType(DataType.TYPE_STRING); p1.getChildColumns().add(cc1); LimitedEntryConditionCol52 cc2 = new LimitedEntryConditionCol52(); cc2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc2.setFieldType(DataType.TYPE_NUMERIC_INTEGER); p1.getChildColumns().add(cc2); LimitedEntryConditionCol52 cc3 = new LimitedEntryConditionCol52(); cc3.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc3.setFieldType(DataType.TYPE_DATE);
dt.getConditions().add(p1); LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc1.setFieldType(DataType.TYPE_STRING); p1.getChildColumns().add(cc1); LimitedEntryConditionCol52 cc2 = new LimitedEntryConditionCol52(); cc2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc2.setFieldType(DataType.TYPE_NUMERIC_INTEGER); p1.getChildColumns().add(cc2); LimitedEntryConditionCol52 cc3 = new LimitedEntryConditionCol52(); cc3.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc3.setFieldType(DataType.TYPE_DATE);
@Test public void testLimitedEntryConditionsNoConstraints() { GuidedDecisionTable52 dt = new GuidedDecisionTable52(); dt.setTableFormat(GuidedDecisionTable52.TableFormat.LIMITED_ENTRY); dt.setTableName("limited-entry"); Pattern52 p1 = new Pattern52(); p1.setBoundName("p1"); p1.setFactType("Smurf"); dt.getConditions().add(p1); // This is a hack consistent with how the Expanded Form decision table // works. I wouldn't be too surprised if this changes at some time, but // GuidedDTDRLPersistence.marshal does not support empty patterns at // present. LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc1.setValue(new DTCellValue52("y")); p1.getChildColumns().add(cc1); dt.setData(DataUtilities.makeDataLists(new Object[][]{ new Object[]{1l, "desc", true}, new Object[]{2l, "desc", false} })); GuidedDTDRLPersistence p = GuidedDTDRLPersistence.getInstance(); String drl = p.marshal(dt); int index = -1; index = drl.indexOf("Smurf( )"); assertTrue(index > -1); index = drl.indexOf("Smurf( )", index + 1); assertFalse(index > -1); }
dt.getConditions().add(p1); LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc1.setFieldType(DataType.TYPE_STRING); p1.getChildColumns().add(cc1); LimitedEntryConditionCol52 cc2 = new LimitedEntryConditionCol52(); cc2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc2.setFieldType(DataType.TYPE_NUMERIC_INTEGER);
dt.getConditions().add(p1); LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc1.setFieldType(DataType.TYPE_STRING); p1.getChildColumns().add(cc1); LimitedEntryConditionCol52 cc2 = new LimitedEntryConditionCol52(); cc2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc2.setFieldType(DataType.TYPE_NUMERIC_INTEGER);
@Test public void testLimitedEntryConditionsConstraints1() { GuidedDecisionTable52 dt = new GuidedDecisionTable52(); dt.setTableFormat(GuidedDecisionTable52.TableFormat.LIMITED_ENTRY); dt.setTableName("limited-entry"); Pattern52 p1 = new Pattern52(); p1.setBoundName("p1"); p1.setFactType("Smurf"); dt.getConditions().add(p1); LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc1.setFieldType(DataType.TYPE_STRING); cc1.setFactField("name"); cc1.setOperator("=="); cc1.setValue(new DTCellValue52("Pupa")); p1.getChildColumns().add(cc1); dt.setData(DataUtilities.makeDataLists(new Object[][]{ new Object[]{1l, "desc", true}, new Object[]{2l, "desc", false} })); GuidedDTDRLPersistence p = GuidedDTDRLPersistence.getInstance(); String drl = p.marshal(dt); int index = -1; index = drl.indexOf("Smurf( name == \"Pupa\" )"); assertTrue(index > -1); index = drl.indexOf("Smurf( name == \"Pupa\" )", index + 1); assertFalse(index > -1); }
dt.getConditions().add(p1); LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc1.setFieldType(DataType.TYPE_BOOLEAN);
ConditionCol52 clone(final ConditionCol52 column) { final ConditionCol52 clone; if (tableFormat() == LIMITED_ENTRY) { clone = new LimitedEntryConditionCol52() {{ setValue(cloneDTCellValue(((LimitedEntryCol) column).getValue())); }}; } else { clone = new ConditionCol52(); } clone.setConstraintValueType(column.getConstraintValueType()); clone.setFactField(column.getFactField()); clone.setFieldType(column.getFieldType()); clone.setHeader(column.getHeader()); clone.setOperator(column.getOperator()); clone.setValueList(column.getValueList()); clone.setDefaultValue(cloneDTCellValue(column.getDefaultValue())); clone.setHideColumn(column.isHideColumn()); clone.setParameters(column.getParameters()); clone.setWidth(column.getWidth()); clone.setBinding(column.getBinding()); return clone; }
ConditionCol52 clone(final ConditionCol52 column) { final ConditionCol52 clone; if (tableFormat() == LIMITED_ENTRY) { clone = new LimitedEntryConditionCol52() {{ setValue(cloneDTCellValue(((LimitedEntryCol) column).getValue())); }}; } else { clone = new ConditionCol52(); } clone.setConstraintValueType(column.getConstraintValueType()); clone.setFactField(column.getFactField()); clone.setFieldType(column.getFieldType()); clone.setHeader(column.getHeader()); clone.setOperator(column.getOperator()); clone.setValueList(column.getValueList()); clone.setDefaultValue(cloneDTCellValue(column.getDefaultValue())); clone.setHideColumn(column.isHideColumn()); clone.setParameters(column.getParameters()); clone.setWidth(column.getWidth()); clone.setBinding(column.getBinding()); return clone; }