return false;
}
public BetaMemory createBetaMemory(RuleBaseConfiguration conf) {
BetaMemory memory;
final List list = new ArrayList( 2 );
if ( this.indexed0 ) {
final VariableConstraint variableConstraint = (VariableConstraint) this.constraint0;
final FieldIndex index = new FieldIndex( variableConstraint.getFieldExtractor(),
variableConstraint.getRequiredDeclarations()[0],
variableConstraint.getEvaluator() );
list.add( index );
}
if ( this.indexed1 ) {
final VariableConstraint variableConstraint = (VariableConstraint) this.constraint1;
final FieldIndex index = new FieldIndex( variableConstraint.getFieldExtractor(),
variableConstraint.getRequiredDeclarations()[0],
variableConstraint.getEvaluator() );
list.add( index );
}
if ( this.indexed2 ) {
final VariableConstraint variableConstraint = (VariableConstraint) this.constraint2;
final FieldIndex index = new FieldIndex( variableConstraint.getFieldExtractor(),
variableConstraint.getRequiredDeclarations()[0],
variableConstraint.getEvaluator() );
list.add( index );
}
if ( this.indexed3 ) {
final VariableConstraint variableConstraint = (VariableConstraint) this.constraint3;
final FieldIndex index = new FieldIndex( variableConstraint.getFieldExtractor(),
variableConstraint.getRequiredDeclarations()[0],
variableConstraint.getEvaluator() );
list.add( index );
}
if ( !list.isEmpty() ) {
final FieldIndex[] indexes = (FieldIndex[]) list.toArray( new FieldIndex[list.size()] );
LeftTupleMemory tupleMemory;
if ( conf.isIndexLeftBetaMemory() ) {
tupleMemory = new LeftTupleIndexHashTable( indexes );
} else {
tupleMemory = new LeftTupleList();
}
RightTupleMemory factHandleMemory;
if ( conf.isIndexRightBetaMemory() ) {
factHandleMemory = new RightTupleIndexHashTable( indexes );
} else {
factHandleMemory = new RightTupleList();
}
memory = new BetaMemory( conf.isSequential() ? null : tupleMemory,
factHandleMemory,
this.createContext() );
} else {
memory = new BetaMemory( conf.isSequential() ? null : new LeftTupleList(),
new RightTupleList(),
this.createContext() );
}
return memory;