private void makeLimitedValueWidget() { if (!(chosenConditionsSelection instanceof LimitedEntryConditionCol52)) { return; } final LimitedEntryConditionCol52 lec = (LimitedEntryConditionCol52) chosenConditionsSelection; boolean doesOperatorNeedValue = validator.doesOperatorNeedValue(chosenConditionsSelection); if (!doesOperatorNeedValue) { limitedEntryValueContainer.setVisible(false); lec.setValue(null); return; } limitedEntryValueContainer.setVisible(true); if (lec.getValue() == null) { lec.setValue(factory.makeNewValue(chosenConditionsSelection)); } limitedEntryValueWidgetContainer.setWidget(factory.getWidget(availablePatternsSelection, chosenConditionsSelection, lec.getValue())); } });
private void makeLimitedValueWidget() { if (!(chosenConditionsSelection instanceof LimitedEntryConditionCol52)) { return; } final LimitedEntryConditionCol52 lec = (LimitedEntryConditionCol52) chosenConditionsSelection; boolean doesOperatorNeedValue = validator.doesOperatorNeedValue(chosenConditionsSelection); if (!doesOperatorNeedValue) { limitedEntryValueContainer.setVisible(false); lec.setValue(null); return; } limitedEntryValueContainer.setVisible(true); if (lec.getValue() == null) { lec.setValue(factory.makeNewValue(chosenConditionsSelection)); } limitedEntryValueWidgetContainer.setWidget(factory.getWidget(availablePatternsSelection, chosenConditionsSelection, lec.getValue())); } });
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); } }
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; }
c1.setOperator("=="); c1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); c1.setValue(new DTCellValue52("Mike")); p1.getChildColumns().add(c1); model.getConditions().add(p1); c2.setOperator("=="); c2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); c1.setValue(new DTCellValue52(25)); p2.getChildColumns().add(c2); model.getConditions().add(p2);
@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); }
cc1.setFactField("name"); cc1.setOperator("=="); cc1.setValue(new DTCellValue52("Pupa")); p1.getChildColumns().add(cc1); cc2.setFactField("name"); cc2.setOperator("=="); cc2.setValue(new DTCellValue52("Smurfette")); p1.getChildColumns().add(cc2); cc3.setFactField("colour"); cc3.setOperator("=="); cc3.setValue(new DTCellValue52("Blue")); p1.getChildColumns().add(cc3);
cc1.setFactField("isSmurf"); cc1.setOperator("=="); cc1.setValue(new DTCellValue52("true")); p1.getChildColumns().add(cc1);
@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); }