1919
2020import java .util .Iterator ;
2121import java .util .LinkedList ;
22+ import java .util .List ;
2223
2324/**
24- * Created by IntelliJ IDEA.
25- * User: db
26- * Date: 21.06.2003
27- * Time: 20:23:16
28- * To change this template use Options | File Templates.
25+ * @author db
26+ * @since 2003-06-21
2927 */
3028public class GlobalAnalyzer {
31- private static boolean stepOneEnd (MarkedNode currNode , LinkedList worklist , OneEndFunctor functor ) {
29+ @ SuppressWarnings ("unchecked" )
30+ private static <T extends MarkedNode > boolean stepOneEnd (MarkedNode currNode , List <T > worklist , OneEndFunctor functor ) {
3231 boolean result = false ;
3332
34- for (Iterator i = currNode .outIterator (); i .hasNext (); ) {
35- MarkedEdge currEdge = ( MarkedEdge ) i .next ();
33+ for (Iterator < MarkedEdge > i = currNode .outIterator (); i .hasNext (); ) {
34+ MarkedEdge currEdge = i .next ();
3635 MarkedNode nextNode = (MarkedNode )currEdge .end ();
3736 Mark theMark = functor .compute (currNode .getMark (), currEdge .getMark (), nextNode .getMark ());
3837 if (!theMark .coincidesWith (nextNode .getMark ())) {
3938 result = true ;
4039 nextNode .setMark (theMark );
41- worklist .addFirst (nextNode );
40+ worklist .addFirst (( T ) nextNode );
4241 }
4342 }
4443
4544 return result ;
4645 }
4746
48- private static boolean stepTwoEnds (final MarkedNode currNode , final LinkedList worklist , final TwoEndsFunctor functor ) {
47+ @ SuppressWarnings ("unchecked" )
48+ private static <T extends MarkedNode > boolean stepTwoEnds (MarkedNode currNode , List <T > worklist , TwoEndsFunctor functor ) {
4949 boolean result = false ;
5050
5151 for (Iterator i = currNode .outIterator (); i .hasNext (); ) {
52- final MarkedEdge currEdge = (MarkedEdge )i .next ();
53- final MarkedNode nextNode = (MarkedNode )currEdge .end ();
54- final Pair <Mark , Mark > markPair = functor .compute (currNode .getMark (), currEdge .getMark (), nextNode .getMark ());
52+ MarkedEdge currEdge = (MarkedEdge )i .next ();
53+ MarkedNode nextNode = (MarkedNode )currEdge .end ();
54+ Pair <Mark , Mark > markPair = functor .compute (currNode .getMark (), currEdge .getMark (), nextNode .getMark ());
5555
56- final Mark leftMark = markPair .getFirst ();
57- final Mark rightMark = markPair .getSecond ();
56+ Mark leftMark = markPair .getFirst ();
57+ Mark rightMark = markPair .getSecond ();
5858
5959 if (!leftMark .coincidesWith (currNode .getMark ())) {
6060 result = true ;
6161 currNode .setMark (leftMark );
62- worklist .addFirst (currNode );
62+ worklist .addFirst (( T ) currNode );
6363 }
6464
6565 if (!rightMark .coincidesWith (nextNode .getMark ())) {
6666 result = true ;
6767 nextNode .setMark (rightMark );
68- worklist .addFirst (nextNode );
68+ worklist .addFirst (( T ) nextNode );
6969 }
7070 }
7171
7272 return result ;
7373 }
7474
75- public static <T extends MarkedNode > boolean doOneEnd (final LinkedList <T > init , final OneEndFunctor functor ) {
75+ public static <T extends MarkedNode > boolean doOneEnd (List <T > init , OneEndFunctor functor ) {
7676 boolean result = false ;
7777
78- final LinkedList <T > worklist = new LinkedList <T >();
78+ List <T > worklist = new LinkedList <>();
7979
80- for (Iterator < T > i = init . iterator (); i . hasNext (); ) {
81- result = stepOneEnd (i . next () , worklist , functor ) || result ;
80+ for (T anInit : init ) {
81+ result = stepOneEnd (anInit , worklist , functor ) || result ;
8282 }
8383
8484 while (worklist .size () > 0 ) {
@@ -88,13 +88,13 @@ public static <T extends MarkedNode> boolean doOneEnd(final LinkedList<T> init,
8888 return result ;
8989 }
9090
91- public static <T extends MarkedNode > boolean doTwoEnds (final LinkedList <T > init , final TwoEndsFunctor functor ) {
91+ public static <T extends MarkedNode > boolean doTwoEnds (LinkedList <T > init , TwoEndsFunctor functor ) {
9292 boolean result = false ;
9393
94- final LinkedList <T > worklist = new LinkedList <T >();
94+ LinkedList <T > worklist = new LinkedList <>();
9595
96- for (Iterator < T > i = init . iterator (); i . hasNext (); ) {
97- result = stepTwoEnds (i . next () , worklist , functor ) || result ;
96+ for (T anInit : init ) {
97+ result = stepTwoEnds (anInit , worklist , functor ) || result ;
9898 }
9999
100100 while (worklist .size () > 0 ) {
0 commit comments