Set<String> identifiers = new HashSet<String>();
identifiers.add( "providedId" );
Set<Class<?>> targetedClasses = new HashSet<Class<?>>();
targetedClasses.add( ProvidedIdPerson.class );
targetedClasses.add( ProvidedIdPersonSub.class );
DocumentExtractor extractor = new DocumentExtractorImpl(
queryHits, sf, new String[] { "name" },
identifiers, false,
lowLevelSearcher,
luceneQuery,
0, 0, //not used in this case
targetedClasses
);
HashSet<String> titles = new HashSet<String>( 3 );
for ( int id = 0; id < hits.totalHits; id++ ) {
Long documentId = (Long) extractor.extract( id ).getId();
String projectedTitle = (String) extractor.extract( id ).getProjection()[0];
assertNotNull( projectedTitle );
titles.add( projectedTitle );
}
assertTrue( titles.contains( "Regular goat" ) );
assertTrue( titles.contains( "Mini Goat" ) );