final CompositeObjectSinkAdapter ad = new CompositeObjectSinkAdapter();
InternalReadAccessor extractor = store.getReader( Cheese.class,
"charType",
this.getClass().getClassLoader() );
final LiteralConstraint lit = new LiteralConstraint( extractor,
equals.getEvaluator( extractor.getValueType(),
Operator.EQUAL ),
new LongFieldImpl( 65 ) ); // chars are handled as integers
final AlphaNode al = new AlphaNode( buildContext.getNextId(),
lit,
new MockObjectSource( buildContext.getNextId() ),
buildContext );
ad.addObjectSink( al );
assertNull( ad.otherSinks );
assertNotNull( ad.hashedFieldIndexes );
assertEquals( 1,
ad.hashableSinks.size() );
assertEquals( al,
ad.getSinks()[0] );
final LiteralConstraint lit2 = new LiteralConstraint( extractor,
equals.getEvaluator( extractor.getValueType(),
Operator.EQUAL ),
new LongFieldImpl( 66 ) );
final AlphaNode al2 = new AlphaNode( buildContext.getNextId(),
lit2,
new MockObjectSource( buildContext.getNextId() ),
buildContext );
ad.addObjectSink( al2 );
assertNull( ad.hashedSinkMap );
assertEquals( 2,
ad.hashableSinks.size() );
final LiteralConstraint lit3 = new LiteralConstraint( extractor,
equals.getEvaluator( extractor.getValueType(),
Operator.EQUAL ),
new LongFieldImpl( 67 ) );
final AlphaNode al3 = new AlphaNode( buildContext.getNextId(),
lit3,