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 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())); } });
@Override public List<BaseColumnFieldDiff> diff( BaseColumn otherColumn ) { if ( otherColumn == null ) { return null; } List<BaseColumnFieldDiff> result = super.diff( otherColumn ); LimitedEntryConditionCol52 other = (LimitedEntryConditionCol52) otherColumn; // Field: default value. if ( !BaseColumnFieldDiffImpl.isEqualOrNull( this.getValue(), other.getValue() ) ) { result.add( new BaseColumnFieldDiffImpl( FIELD_VALUE, extractDefaultValue( this.getValue() ), extractDefaultValue( other.getValue() ) ) ); } return result; }
@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); }
ConditionCol52 newConditionColumn() { switch (tableFormat()) { case EXTENDED_ENTRY: return new ConditionCol52(); case LIMITED_ENTRY: return new LimitedEntryConditionCol52(); default: throw new UnsupportedOperationException("Unsupported table format: " + tableFormat()); } }
public LimitedEntryConditionColumnDetails( final LimitedEntryConditionCol52 column ) { super( column ); this.value = column.getValue(); }
ConditionCol52 newConditionColumn() { switch (tableFormat()) { case EXTENDED_ENTRY: return new ConditionCol52(); case LIMITED_ENTRY: return new LimitedEntryConditionCol52(); default: throw new UnsupportedOperationException("Unsupported table format: " + tableFormat()); } }
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; } }
@Test public void testCanSetupLimitedValueWhenOperatorNeedsAValue() throws Exception { when(plugin.editingCol()).thenReturn(new LimitedEntryConditionCol52()); when(plugin.doesOperatorNeedValue()).thenReturn(false); assertFalse(page.canSetupLimitedValue()); }
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())); } });
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; }
@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()); }
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; }
@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); } }
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; }
dt.getConditions().add(p1); LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc1.setFieldType(DataType.TYPE_STRING); cc1.setFactField("name"); cc1.setOperator("== null"); p1.getChildColumns().add(cc1); LimitedEntryConditionCol52 cc2 = new LimitedEntryConditionCol52(); cc2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc2.setFieldType(DataType.TYPE_NUMERIC_INTEGER); cc2.setFactField("age"); cc2.setOperator("== null"); p1.getChildColumns().add(cc2); LimitedEntryConditionCol52 cc3 = new LimitedEntryConditionCol52(); cc3.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL); cc3.setFieldType(DataType.TYPE_DATE); cc3.setFactField("dateOfBirth"); cc3.setOperator("== null"); p1.getChildColumns().add(cc3);
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; }