import java.util.List; public interface PartitionedFinder

> extends Finder { // public List bestLanguageMatch(List list, List languageOrder); public > List bestPartitionMatch(List list, List partitionOrder); } aspect PartitionedFinderAspect { public Class PartitionedFinder

.getPartitionedType(){ return ClassUtils.guessGenericType(getClass()); } public List PartitionedFinder

.getPartitionOrder(){ return H2Deployment.instance().getPartitionOrder(getPartitionedType()); } public > List PartitionedFinder

.bestPartitionMatch(List list, List partitionOrder){ return new OrderComparator(partitionOrder){ @Override public String getOrdering(T partitioned){ return partitioned.getPartitionId(); } }.bestMatch(list); } } class OrderComparator { OrderComparator(List ls) {} public String getOrdering(A a) {return "";} List bestMatch(List l) {return null;} }