--- old/src/share/classes/javax/imageio/spi/DigraphNode.java 2014-02-20 19:52:15.094975235 -0800 +++ new/src/share/classes/javax/imageio/spi/DigraphNode.java 2014-02-20 19:52:14.941641896 -0800 @@ -39,17 +39,17 @@ * the current node) may be queried. * */ -class DigraphNode implements Cloneable, Serializable { +class DigraphNode implements Cloneable, Serializable { private static final long serialVersionUID = 5308261378582246841L; /** The data associated with this node. */ - protected Object data; + protected E data; /** * A Set of neighboring nodes pointed to by this * node. */ - protected Set outNodes = new HashSet(); + protected Set> outNodes = new HashSet<>(); /** The in-degree of the node. */ protected int inDegree = 0; @@ -58,14 +58,14 @@ * A Set of neighboring nodes that point to this * node. */ - private Set inNodes = new HashSet(); + private Set> inNodes = new HashSet<>(); - public DigraphNode(Object data) { + public DigraphNode(E data) { this.data = data; } /** Returns the Object referenced by this node. */ - public Object getData() { + public E getData() { return data; } @@ -73,7 +73,7 @@ * Returns an Iterator containing the nodes pointed * to by this node. */ - public Iterator getOutNodes() { + public Iterator> getOutNodes() { return outNodes.iterator(); } @@ -86,7 +86,7 @@ * @return true if the node was not previously the * target of an edge. */ - public boolean addEdge(DigraphNode node) { + public boolean addEdge(DigraphNode node) { if (outNodes.contains(node)) { return false; } @@ -105,7 +105,7 @@ * * @return true if the node is the target of an edge. */ - public boolean hasEdge(DigraphNode node) { + public boolean hasEdge(DigraphNode node) { return outNodes.contains(node); } @@ -116,7 +116,7 @@ * @return true if the node was previously the target * of an edge. */ - public boolean removeEdge(DigraphNode node) { + public boolean removeEdge(DigraphNode node) { if (!outNodes.contains(node)) { return false; } @@ -132,15 +132,17 @@ * appropriately. */ public void dispose() { - Object[] inNodesArray = inNodes.toArray(); + @SuppressWarnings("unchecked") + DigraphNode[] inNodesArray = (DigraphNode[])inNodes.toArray(); for(int i=0; i node = inNodesArray[i]; node.removeEdge(this); } - Object[] outNodesArray = outNodes.toArray(); + @SuppressWarnings("unchecked") + DigraphNode[] outNodesArray = (DigraphNode[])outNodes.toArray(); for(int i=0; i node = outNodesArray[i]; removeEdge(node); } }