package net.rrm.ehour.ui.timesheet.panel.renderer; import java.util.Collections; import java.util.Comparator; import java.util.List; public class AbstractRenderFactoryCollection<T extends PrioritizedRenderFactory> { private List<? extends T> renderFactories; AbstractRenderFactoryCollection() { } public AbstractRenderFactoryCollection(List<? extends T> renderFactories) { sortOnPriority(renderFactories); this.renderFactories = renderFactories; } private void sortOnPriority(List<? extends T> renderFactories) { Collections.sort(renderFactories, new Comparator<T>() { @Override public int compare(T o1, T o2) { if (o1.getPriority() == o2.getPriority()) { return 0; } else if (o1.getPriority() == RenderPriority.HIGH) { return -1; } else { return 1; } } }); } public List<? extends T> getRenderFactories() { return renderFactories; } }