private ConditionCol52 makeNewConditionColumn() { switch ( model.getTableFormat() ) { case LIMITED_ENTRY: return new LimitedEntryConditionCol52(); default: return new ConditionCol52(); } }
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; } }
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 );
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_STRING ); p1.getChildColumns().add( cc2 ); LimitedEntryConditionCol52 cc3 = new LimitedEntryConditionCol52(); cc3.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc3.setFieldType( DataType.TYPE_STRING );
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 );
dt.getConditions().add( p1 ); LimitedEntryConditionCol52 cc1 = new LimitedEntryConditionCol52(); cc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc1.setFieldType( DataType.TYPE_BOOLEAN );
@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 ); }
private ConditionCol52 cloneConditionColumn( ConditionCol52 col ) { ConditionCol52 clone = null; if ( col instanceof LimitedEntryConditionCol52 ) { clone = new LimitedEntryConditionCol52(); DTCellValue52 dcv = cloneLimitedEntryValue( ( (LimitedEntryCol) col ).getValue() ); ( (LimitedEntryCol) clone ).setValue( dcv ); } else { clone = new ConditionCol52(); } clone.setConstraintValueType( col.getConstraintValueType() ); clone.setFactField( col.getFactField() ); clone.setFieldType( col.getFieldType() ); clone.setHeader( col.getHeader() ); clone.setOperator( col.getOperator() ); clone.setValueList( col.getValueList() ); clone.setDefaultValue( new DTCellValue52( col.getDefaultValue() ) ); clone.setHideColumn( col.isHideColumn() ); clone.setParameters( col.getParameters() ); clone.setWidth( col.getWidth() ); clone.setBinding( col.getBinding() ); return clone; }