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    }