001/* 002 * Forge Mod Loader 003 * Copyright (c) 2012-2013 cpw. 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the GNU Lesser Public License v2.1 006 * which accompanies this distribution, and is available at 007 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 008 * 009 * Contributors: 010 * cpw - implementation 011 */ 012 013package cpw.mods.fml.common.toposort; 014 015import java.util.Set; 016 017public class ModSortingException extends RuntimeException 018{ 019 public class SortingExceptionData<T> 020 { 021 public SortingExceptionData(T node, Set<T> visitedNodes) 022 { 023 this.firstBadNode = node; 024 this.visitedNodes = visitedNodes; 025 } 026 027 private T firstBadNode; 028 private Set<T> visitedNodes; 029 030 public T getFirstBadNode() 031 { 032 return firstBadNode; 033 } 034 public Set<T> getVisitedNodes() 035 { 036 return visitedNodes; 037 } 038 } 039 040 private SortingExceptionData sortingExceptionData; 041 042 public <T> ModSortingException(String string, T node, Set<T> visitedNodes) 043 { 044 super(string); 045 this.sortingExceptionData = new SortingExceptionData(node, visitedNodes); 046 } 047 048 public <T> SortingExceptionData<T> getExceptionData() 049 { 050 return sortingExceptionData; 051 } 052 053}