package com.plugtree.solradvert.fact;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.DisjunctionMaxQuery;
import org.apache.lucene.search.Query;
public class DefaultParentChildRelationshipFactory extends ParentChildRelationshipFactory {
private Map<Class<?>, ParentChildRelationshipFactory> factories;
public DefaultParentChildRelationshipFactory() {
factories = new HashMap<Class<?>, ParentChildRelationshipFactory>();
factories.put(
BooleanQuery.class,
new BooleanParentChildRelationship.BooleanParentChildRelationshipFactory());
factories.put(
DisjunctionMaxQuery.class,
new DismaxParentChildRelationship.DismaxParentChildRelationshipFactory());
}
public Collection<ParentChildRelationship> getRelationships(Query parent) {
ParentChildRelationshipFactory factory = factories.get(parent.getClass());
if(factory!=null) {
return factory.getRelationships(parent);
}
return null;
}
}