    001    package cpw.mods.fml.common.toposort;
    002
    003    import java.util.Set;
    004
    005    public class ModSortingException extends RuntimeException
    006    {
    007        public class SortingExceptionData<T>
    008        {
    009            public SortingExceptionData(T node, Set<T> visitedNodes)
    010            {
    011                this.firstBadNode = node;
    012                this.visitedNodes = visitedNodes;
    013            }
    014
    015            private T firstBadNode;
    016            private Set<T> visitedNodes;
    017
    018            public T getFirstBadNode()
    019            {
    020                return firstBadNode;
    021            }
    022            public Set<T> getVisitedNodes()
    023            {
    024                return visitedNodes;
    025            }
    026        }
    027
    028        private SortingExceptionData sortingExceptionData;
    029
    030        public <T> ModSortingException(String string, T node, Set<T> visitedNodes)
    031        {
    032            super(string);
    033            this.sortingExceptionData = new SortingExceptionData(node, visitedNodes);
    034        }
    035
    036        public <T> SortingExceptionData<T> getExceptionData()
    037        {
    038            return sortingExceptionData;
    039        }
    040
    041    }