package knorxx.framework.generator.order; import java.util.List; import java.util.Set; /** * * @author sj */ public class InheritanceOrderSorter extends OrderSorter { public InheritanceOrderSorter() { } public InheritanceOrderSorter(OrderSorter nextCollector) { super(nextCollector); } @Override protected Set<OrderConstraint> getConstraintsInternal(List<Class<?>> classes) { OrderingResult result = new OrderingResult(classes); for (Class<?> javaClass : classes) { Class<?> currentJavaClass = javaClass; while (currentJavaClass != null) { String currentClassName = currentJavaClass.getName(); for (Class<?> currentClassInterface : currentJavaClass.getInterfaces()) { result.addConstraint(currentClassInterface.getName(), currentClassName); } currentJavaClass = currentJavaClass.getSuperclass(); if (currentJavaClass != null) { String superClassName = currentJavaClass.getName(); result.addConstraint(superClassName, currentClassName); } } } return result.getConstraints(); } }