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 }