//BRL Column definition
List<IPattern> brl1Definition = new ArrayList<IPattern>();
FactPattern brl1DefinitionFactPattern1 = new FactPattern( "Smurf" );
SingleFieldConstraint brl1DefinitionFactPattern1Constraint1 = new SingleFieldConstraint();
brl1DefinitionFactPattern1Constraint1.setFieldType( DataType.TYPE_STRING );
brl1DefinitionFactPattern1Constraint1.setConstraintValueType( SingleFieldConstraint.TYPE_TEMPLATE );
brl1DefinitionFactPattern1Constraint1.setFieldName( "name" );
brl1DefinitionFactPattern1Constraint1.setOperator( "==" );
brl1DefinitionFactPattern1Constraint1.setValue( "$name" );
brl1DefinitionFactPattern1.addConstraint( brl1DefinitionFactPattern1Constraint1 );
SingleFieldConstraint brl1DefinitionFactPattern1Constraint2 = new SingleFieldConstraint();
brl1DefinitionFactPattern1Constraint2.setFieldType( DataType.TYPE_NUMERIC_INTEGER );
brl1DefinitionFactPattern1Constraint2.setConstraintValueType( SingleFieldConstraint.TYPE_TEMPLATE );
brl1DefinitionFactPattern1Constraint2.setFieldName( "age" );
brl1DefinitionFactPattern1Constraint2.setOperator( "==" );
brl1DefinitionFactPattern1Constraint2.setValue( "$age" );
brl1DefinitionFactPattern1.addConstraint( brl1DefinitionFactPattern1Constraint2 );
brl1Definition.add( brl1DefinitionFactPattern1 );
brl1.setDefinition( brl1Definition );
//Setup BRL column bindings
BRLConditionVariableColumn brl1Variable1 = new BRLConditionVariableColumn( "$name",
DataType.TYPE_STRING,
"Person",
"name" );
brl1.getChildColumns().add( brl1Variable1 );
BRLConditionVariableColumn brl1Variable2 = new BRLConditionVariableColumn( "$age",
DataType.TYPE_NUMERIC_INTEGER,
"Person",
"age" );
brl1.getChildColumns().add( brl1Variable2 );
dtable.getConditions().add( brl1 );
//Now to test conversion
RuleModel rm = new RuleModel();
List<BaseColumn> allColumns = dtable.getExpandedColumns();
List<CompositeColumn<? extends BaseColumn>> allPatterns = dtable.getConditions();
List<List<DTCellValue52>> dtData = DataUtilities.makeDataLists( data );
//Row 0
List<DTCellValue52> dtRowData0 = DataUtilities.makeDataRowList( data[ 0 ] );
TemplateDataProvider rowDataProvider0 = new GuidedDTTemplateDataProvider( allColumns,
dtRowData0 );
p.doConditions( allColumns,
allPatterns,
rowDataProvider0,
dtRowData0,
dtData,
rm );
assertEquals( 2,
rm.lhs.length );
assertEquals( "Baddie",
( (FactPattern) rm.lhs[ 0 ] ).getFactType() );
assertEquals( "Smurf",
( (FactPattern) rm.lhs[ 1 ] ).getFactType() );
// examine the first pattern
FactPattern result0Fp1 = (FactPattern) rm.lhs[ 0 ];
assertEquals( 1,
result0Fp1.getConstraintList().getConstraints().length );
SingleFieldConstraint result0Fp1Con1 = (SingleFieldConstraint) result0Fp1.getConstraint( 0 );
assertEquals( BaseSingleFieldConstraint.TYPE_LITERAL,
result0Fp1Con1.getConstraintValueType() );
assertEquals( "name",
result0Fp1Con1.getFieldName() );
assertEquals( "==",
result0Fp1Con1.getOperator() );
assertEquals( "Gargamel",
result0Fp1Con1.getValue() );
// examine the second pattern
FactPattern result0Fp2 = (FactPattern) rm.lhs[ 1 ];
assertEquals( 2,
result0Fp2.getConstraintList().getConstraints().length );
SingleFieldConstraint result0Fp2Con1 = (SingleFieldConstraint) result0Fp2.getConstraint( 0 );
assertEquals( BaseSingleFieldConstraint.TYPE_TEMPLATE,
result0Fp2Con1.getConstraintValueType() );
assertEquals( "name",
result0Fp2Con1.getFieldName() );
assertEquals( "==",
result0Fp2Con1.getOperator() );
assertEquals( "$name",
result0Fp2Con1.getValue() );
SingleFieldConstraint result0Fp2Con2 = (SingleFieldConstraint) result0Fp2.getConstraint( 1 );
assertEquals( BaseSingleFieldConstraint.TYPE_TEMPLATE,
result0Fp2Con2.getConstraintValueType() );
assertEquals( "age",
result0Fp2Con2.getFieldName() );
assertEquals( "==",
result0Fp2Con2.getOperator() );
assertEquals( "$age",
result0Fp2Con2.getValue() );
//Row 1
List<DTCellValue52> dtRowData1 = DataUtilities.makeDataRowList( data[ 1 ] );
TemplateDataProvider rowDataProvider1 = new GuidedDTTemplateDataProvider( allColumns,
dtRowData1 );
p.doConditions( allColumns,
allPatterns,
rowDataProvider1,
dtRowData1,
dtData,
rm );
assertEquals( 1,
rm.lhs.length );
assertEquals( "Baddie",
( (FactPattern) rm.lhs[ 0 ] ).getFactType() );
// examine the first pattern
FactPattern result1Fp1 = (FactPattern) rm.lhs[ 0 ];
assertEquals( 1,
result1Fp1.getConstraintList().getConstraints().length );
SingleFieldConstraint result1Fp1Con1 = (SingleFieldConstraint) result1Fp1.getConstraint( 0 );
assertEquals( BaseSingleFieldConstraint.TYPE_LITERAL,
result1Fp1Con1.getConstraintValueType() );
assertEquals( "name",
result1Fp1Con1.getFieldName() );
assertEquals( "==",
result1Fp1Con1.getOperator() );
assertEquals( "Gargamel",
result1Fp1Con1.getValue() );
//Row 2
List<DTCellValue52> dtRowData2 = DataUtilities.makeDataRowList( data[ 2 ] );
TemplateDataProvider rowDataProvider2 = new GuidedDTTemplateDataProvider( allColumns,
dtRowData2 );
p.doConditions( allColumns,
allPatterns,
rowDataProvider2,
dtRowData2,
dtData,
rm );
assertEquals( 1,
rm.lhs.length );
assertEquals( "Baddie",
( (FactPattern) rm.lhs[ 0 ] ).getFactType() );
// examine the first pattern
FactPattern result2Fp1 = (FactPattern) rm.lhs[ 0 ];
assertEquals( 1,
result2Fp1.getConstraintList().getConstraints().length );
SingleFieldConstraint result2Fp1Con1 = (SingleFieldConstraint) result2Fp1.getConstraint( 0 );
assertEquals( BaseSingleFieldConstraint.TYPE_LITERAL,
result2Fp1Con1.getConstraintValueType() );
assertEquals( "name",
result2Fp1Con1.getFieldName() );
assertEquals( "==",
result2Fp1Con1.getOperator() );
assertEquals( "Gargamel",
result2Fp1Con1.getValue() );
}