//BRL Column
BRLConditionColumn brl1 = new BRLConditionColumn();
//BRL Column definition
List<IPattern> brl1Definition = new ArrayList<IPattern>();
FactPattern brl1DefinitionFactPattern1 = new FactPattern( "Smurf" );
SingleFieldConstraint brl1DefinitionFactPattern1Constraint1 = new SingleFieldConstraint();
brl1DefinitionFactPattern1Constraint1.setFieldType( SuggestionCompletionEngine.TYPE_STRING );
brl1DefinitionFactPattern1Constraint1.setConstraintValueType( SingleFieldConstraint.TYPE_TEMPLATE );
brl1DefinitionFactPattern1Constraint1.setFieldName( "name" );
brl1DefinitionFactPattern1Constraint1.setOperator( "==" );
brl1DefinitionFactPattern1Constraint1.setValue( "$name" );
brl1DefinitionFactPattern1.addConstraint( brl1DefinitionFactPattern1Constraint1 );
SingleFieldConstraint brl1DefinitionFactPattern1Constraint2 = new SingleFieldConstraint();
brl1DefinitionFactPattern1Constraint2.setFieldType( SuggestionCompletionEngine.TYPE_NUMERIC );
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",
SuggestionCompletionEngine.TYPE_STRING,
"Person",
"name" );
brl1.getChildColumns().add( brl1Variable1 );
BRLConditionVariableColumn brl1Variable2 = new BRLConditionVariableColumn( "$age",
SuggestionCompletionEngine.TYPE_NUMERIC,
"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< ? >> allPatterns = dtable.getConditions();
List<List<DTCellValue52>> dtData = upgrader.makeDataLists( data );
//Row 0
List<DTCellValue52> dtRowData0 = upgrader.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.constraintList.constraints.length );
SingleFieldConstraint result0Fp1Con1 = (SingleFieldConstraint) result0Fp1.constraintList.constraints[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.constraintList.constraints.length );
SingleFieldConstraint result0Fp2Con1 = (SingleFieldConstraint) result0Fp2.constraintList.constraints[0];
assertEquals( BaseSingleFieldConstraint.TYPE_TEMPLATE,
result0Fp2Con1.getConstraintValueType() );
assertEquals( "name",
result0Fp2Con1.getFieldName() );
assertEquals( "==",
result0Fp2Con1.getOperator() );
assertEquals( "$name",
result0Fp2Con1.getValue() );
SingleFieldConstraint result0Fp2Con2 = (SingleFieldConstraint) result0Fp2.constraintList.constraints[1];
assertEquals( BaseSingleFieldConstraint.TYPE_TEMPLATE,
result0Fp2Con2.getConstraintValueType() );
assertEquals( "age",
result0Fp2Con2.getFieldName() );
assertEquals( "==",
result0Fp2Con2.getOperator() );
assertEquals( "$age",
result0Fp2Con2.getValue() );
//Row 1
List<DTCellValue52> dtRowData1 = upgrader.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.constraintList.constraints.length );
SingleFieldConstraint result1Fp1Con1 = (SingleFieldConstraint) result1Fp1.constraintList.constraints[0];
assertEquals( BaseSingleFieldConstraint.TYPE_LITERAL,
result1Fp1Con1.getConstraintValueType() );
assertEquals( "name",
result1Fp1Con1.getFieldName() );
assertEquals( "==",
result1Fp1Con1.getOperator() );
assertEquals( "Gargamel",
result1Fp1Con1.getValue() );
//Row 2
List<DTCellValue52> dtRowData2 = upgrader.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.constraintList.constraints.length );
SingleFieldConstraint result2Fp1Con1 = (SingleFieldConstraint) result2Fp1.constraintList.constraints[0];
assertEquals( BaseSingleFieldConstraint.TYPE_LITERAL,