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; } }
cc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc1.setFieldType( DataType.TYPE_STRING ); cc1.setFactField( "name" ); cc1.setOperator( "== null" ); p1.getChildColumns().add( cc1 ); cc2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc2.setFieldType( DataType.TYPE_NUMERIC_INTEGER ); cc2.setFactField( "age" ); cc2.setOperator( "== null" ); p1.getChildColumns().add( cc2 ); cc3.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc3.setFieldType( DataType.TYPE_DATE ); cc3.setFactField( "dateOfBirth" ); cc3.setOperator( "== null" ); p1.getChildColumns().add( cc3 );
cc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc1.setFieldType( DataType.TYPE_STRING ); cc1.setFactField( "name" ); cc1.setOperator( "!= null" ); p1.getChildColumns().add( cc1 ); cc2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc2.setFieldType( DataType.TYPE_NUMERIC_INTEGER ); cc2.setFactField( "age" ); cc2.setOperator( "!= null" ); p1.getChildColumns().add( cc2 ); cc3.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc3.setFieldType( DataType.TYPE_DATE ); cc3.setFactField( "dateOfBirth" ); cc3.setOperator( "!= null" ); p1.getChildColumns().add( cc3 );
cc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc1.setFieldType( DataType.TYPE_STRING ); cc1.setFactField( "name" ); cc1.setOperator( "== null" ); p1.getChildColumns().add( cc1 ); cc2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc2.setFieldType( DataType.TYPE_NUMERIC_INTEGER ); cc2.setFactField( "age" ); cc2.setOperator( "== null" ); p1.getChildColumns().add( cc2 ); cc3.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc3.setFieldType( DataType.TYPE_DATE ); cc3.setFactField( "dateOfBirth" ); cc3.setOperator( "== null" ); p1.getChildColumns().add( cc3 );
cc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc1.setFieldType( DataType.TYPE_STRING ); cc1.setFactField( "name" ); cc1.setOperator( "!= null" ); p1.getChildColumns().add( cc1 ); cc2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc2.setFieldType( DataType.TYPE_NUMERIC_INTEGER ); cc2.setFactField( "age" ); cc2.setOperator( "!= null" ); p1.getChildColumns().add( cc2 ); cc3.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc3.setFieldType( DataType.TYPE_DATE ); cc3.setFactField( "dateOfBirth" ); cc3.setOperator( "!= null" ); p1.getChildColumns().add( cc3 );
cc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc1.setFieldType( DataType.TYPE_STRING ); cc1.setFactField( "name" ); cc1.setOperator( "==" ); cc1.setValue( new DTCellValue52( "Pupa" ) ); cc2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc2.setFieldType( DataType.TYPE_STRING ); cc2.setFactField( "name" ); cc2.setOperator( "==" ); cc2.setValue( new DTCellValue52( "Smurfette" ) ); cc3.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc3.setFieldType( DataType.TYPE_STRING ); cc3.setFactField( "colour" ); cc3.setOperator( "==" ); cc3.setValue( new DTCellValue52( "Blue" ) );
cc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc1.setFieldType( DataType.TYPE_STRING ); cc1.setFactField( "name" ); cc1.setOperator( "in" ); cc1.setValue( new DTCellValue52( "Pupa, Brains" ) ); cc2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc2.setFieldType( DataType.TYPE_NUMERIC_INTEGER ); cc2.setFactField( "age" ); cc2.setOperator( "in" ); cc2.setValue( new DTCellValue52( "55, 66" ) );
cc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc1.setFieldType( DataType.TYPE_STRING ); cc1.setFactField( "name" ); cc1.setOperator( "not in" ); cc1.setValue( new DTCellValue52( "Pupa, Brains" ) ); cc2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc2.setFieldType( DataType.TYPE_NUMERIC_INTEGER ); cc2.setFactField( "age" ); cc2.setOperator( "not in" ); cc2.setValue( new DTCellValue52( "55, 66" ) );
cc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL ); cc1.setFieldType( DataType.TYPE_BOOLEAN ); cc1.setFactField( "isSmurf" ); cc1.setOperator( "==" ); cc1.setValue( new DTCellValue52( "true" ) );
@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 ); }