You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2013/05/24 10:12:49 UTC

svn commit: r1485961 - /db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/

Author: kahatlen
Date: Fri May 24 08:12:49 2013
New Revision: 1485961

URL: http://svn.apache.org/r1485961
Log:
DERBY-5840: Clean up compiler warnings introduced by using Java 5 language features

Generify CollectNodesVisitor so that the SuppressWarnings annotation
on its visit() method can be removed.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CollectNodesVisitor.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GenerationClauseNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/OrderByColumn.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/PredicateList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SelectNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SetOperatorNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CollectNodesVisitor.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CollectNodesVisitor.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CollectNodesVisitor.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CollectNodesVisitor.java Fri May 24 08:12:49 2013
@@ -38,8 +38,8 @@ import org.apache.derby.iapi.sql.compile
 public class CollectNodesVisitor<T extends Visitable> implements Visitor
 {
     private final List<T> nodeList;
-    private final Class nodeClass;
-    private final Class skipOverClass;
+    private final Class<T> nodeClass;
+    private final Class<? extends Visitable> skipOverClass;
 
 	/**
 	 * Construct a visitor
@@ -47,7 +47,7 @@ public class CollectNodesVisitor<T exten
 	 * @param nodeClass the class of the node that 
 	 * 	we are looking for.
 	 */
-	public CollectNodesVisitor(Class nodeClass)
+    public CollectNodesVisitor(Class<T> nodeClass)
 	{
         this(nodeClass, null);
 	}
@@ -60,7 +60,8 @@ public class CollectNodesVisitor<T exten
 	 * @param skipOverClass do not go below this
 	 * node when searching for nodeClass.
 	 */
-	public CollectNodesVisitor(Class nodeClass, Class skipOverClass)
+    public CollectNodesVisitor(Class<T> nodeClass,
+                               Class<? extends Visitable> skipOverClass)
 	{
         this.nodeList = new ArrayList<T>();
         this.nodeClass = nodeClass;
@@ -89,12 +90,11 @@ public class CollectNodesVisitor<T exten
 	 *
 	 * @return me
 	 */
-    @SuppressWarnings("unchecked")
 	public Visitable visit(Visitable node)
 	{
 		if (nodeClass.isInstance(node))
 		{
-			nodeList.add( (T) node);
+            nodeList.add(nodeClass.cast(node));
 		}
 		return node;
 	}

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java Fri May 24 08:12:49 2013
@@ -719,16 +719,13 @@ public class CreateTriggerNode extends D
 
         if ( genColCount == 0 ) { return; }
 
-        CollectNodesVisitor     visitor = new CollectNodesVisitor( ColumnReference.class );
+        CollectNodesVisitor<ColumnReference> visitor =
+            new CollectNodesVisitor<ColumnReference>(ColumnReference.class);
 
         actionNode.accept( visitor );
 
-        List columnRefs = visitor.getList();
-        int                             colRefCount = columnRefs.size();
-
-        for ( int crf_idx = 0; crf_idx < colRefCount; crf_idx++ )
+        for (ColumnReference cr : visitor.getList())
         {
-            ColumnReference     cr = (ColumnReference) columnRefs.get( crf_idx );
             String  colRefName = cr.getColumnName();
             String  tabRefName = cr.getTableName();
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java Fri May 24 08:12:49 2013
@@ -66,7 +66,6 @@ import org.apache.derby.iapi.sql.diction
 import org.apache.derby.iapi.sql.dictionary.ViewDescriptor;
 
 import org.apache.derby.iapi.sql.execute.ExecRow;
-import org.apache.derby.iapi.sql.execute.ExecutionContext;
 
 import org.apache.derby.iapi.sql.LanguageProperties;
 
@@ -2368,13 +2367,13 @@ public class FromBaseTable extends FromT
 				//Following call is marking the query to run with definer 
 				//privileges. This marking will make sure that we do not collect
 				//any privilege requirement for it.
-                CollectNodesVisitor cnv =
-                    new CollectNodesVisitor(QueryTreeNode.class, null);
+                CollectNodesVisitor<QueryTreeNode> cnv =
+                    new CollectNodesVisitor<QueryTreeNode>(QueryTreeNode.class);
 
                 fsq.accept(cnv);
 
-                for (Iterator it = cnv.getList().iterator(); it.hasNext(); ) {
-                    ((QueryTreeNode)it.next()).disablePrivilegeCollection();
+                for (QueryTreeNode node : cnv.getList()) {
+                    node.disablePrivilegeCollection();
                 }
 
 				fsq.setOrigTableName(this.getOrigTableName());

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java Fri May 24 08:12:49 2013
@@ -21,8 +21,6 @@
 
 package	org.apache.derby.impl.sql.compile;
 
-import java.util.Iterator;
-import java.util.List;
 
 import org.apache.derby.iapi.error.StandardException;
 import org.apache.derby.iapi.sql.compile.C_NodeTypes;
@@ -265,12 +263,11 @@ public class FromSubquery extends FromTa
         // Nested VTI/tableFunctions will want to know whether their arguments
         // reference tables in the FROM list which contains this subquery. Those
         // references are illegal. See DERBY-5554 and DERBY-5779.
-		CollectNodesVisitor nestedVTIs = new CollectNodesVisitor( FromVTI.class );
+        CollectNodesVisitor<FromVTI> nestedVTIs =
+                new CollectNodesVisitor<FromVTI>(FromVTI.class);
 		subquery.accept( nestedVTIs );
-		List vtiRefs = nestedVTIs.getList();
-		for (Iterator it = vtiRefs.iterator(); it.hasNext(); )
+        for (FromVTI ref : nestedVTIs.getList())
 		{
-			FromVTI ref = (FromVTI) it.next();
             ref.addOuterFromList( fromListParam );
 		}
         

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java Fri May 24 08:12:49 2013
@@ -31,7 +31,6 @@ import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import org.apache.derby.catalog.TypeDescriptor;
 import org.apache.derby.catalog.DefaultInfo;
@@ -54,6 +53,7 @@ import org.apache.derby.iapi.sql.compile
 import org.apache.derby.iapi.sql.compile.OptimizablePredicateList;
 import org.apache.derby.iapi.sql.compile.Optimizer;
 import org.apache.derby.iapi.sql.compile.RowOrdering;
+import org.apache.derby.iapi.sql.compile.Visitable;
 import org.apache.derby.iapi.sql.compile.Visitor;
 import org.apache.derby.iapi.sql.conn.LanguageConnectionContext;
 import org.apache.derby.iapi.sql.dictionary.ColumnDescriptor;
@@ -61,7 +61,6 @@ import org.apache.derby.iapi.sql.diction
 import org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor;
 import org.apache.derby.iapi.sql.dictionary.DataDictionary;
 import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
-import org.apache.derby.iapi.sql.execute.ExecutionContext;
 import org.apache.derby.iapi.transaction.TransactionControl;
 import org.apache.derby.iapi.types.DataTypeDescriptor;
 import org.apache.derby.iapi.types.DataValueDescriptor;
@@ -901,12 +900,9 @@ public class FromVTI extends FromTable i
 		 * from other VTIs that appear after this one in the FROM list.
 		 * These CRs will have uninitialized column and table numbers.
 		 */
-		List colRefs = getNodesFromParameters(ColumnReference.class);
         ArrayList<AggregateNode> aggregates = null;
-		for (Iterator it = colRefs.iterator(); it.hasNext(); )
+        for (ColumnReference ref : getNodesFromParameters(ColumnReference.class))
 		{
-			ColumnReference ref = (ColumnReference) it.next();
-
             //
             // Table Function parameters may not reference columns from other tables in the
             // FROM list of the current query block. See DERBY-5579. We also do not allow
@@ -1010,10 +1006,10 @@ public class FromVTI extends FromTable i
 	 *
 	 * @exception StandardException		Thrown on error
 	 */
-	List getNodesFromParameters(Class nodeClass)
+    <T extends Visitable> List<T> getNodesFromParameters(Class<T> nodeClass)
 		throws StandardException
 	{
-		CollectNodesVisitor getCRs = new CollectNodesVisitor(nodeClass);
+        CollectNodesVisitor<T> getCRs = new CollectNodesVisitor<T>(nodeClass);
 		methodCall.accept(getCRs);
 		return getCRs.getList();
 	}
@@ -1609,10 +1605,8 @@ public class FromVTI extends FromTable i
      */
     private void remapBaseTableColumns() throws StandardException
     {
-		List colRefs = getNodesFromParameters(ColumnReference.class);
-		for (Iterator it = colRefs.iterator(); it.hasNext(); )
+        for (ColumnReference ref : getNodesFromParameters(ColumnReference.class))
 		{
-			ColumnReference ref = (ColumnReference) it.next();
             FromTable   fromTable = argSources.get( new Integer( ref.getTableNumber() ) );
 
             if ( fromTable != null )

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GenerationClauseNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GenerationClauseNode.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GenerationClauseNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GenerationClauseNode.java Fri May 24 08:12:49 2013
@@ -132,10 +132,11 @@ public class GenerationClauseNode extend
 	 *
 	 * @exception StandardException		Thrown on error
 	 */
-    public List findReferencedColumns()
+    public List<ColumnReference> findReferencedColumns()
         throws StandardException
     {
-        CollectNodesVisitor visitor = new CollectNodesVisitor( ColumnReference.class );
+        CollectNodesVisitor<ColumnReference> visitor =
+            new CollectNodesVisitor<ColumnReference>(ColumnReference.class);
 
         _generationExpression.accept( visitor );
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java Fri May 24 08:12:49 2013
@@ -21,7 +21,6 @@
 
 package	org.apache.derby.impl.sql.compile;
 
-import java.util.Iterator;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.Collections;
@@ -576,15 +575,13 @@ public class GroupByNode extends SingleC
 			// it is allright to have columns from parent or child subqueries;
 			//   select * from p where p.p1 in 
 			//      (select c.c1 from c group by c.c1 having count(*) = p.p2
-			CollectNodesVisitor collectNodesVisitor = 
-				new CollectNodesVisitor(ColumnReference.class, AggregateNode.class);
+            CollectNodesVisitor<ColumnReference> collectNodesVisitor =
+                new CollectNodesVisitor<ColumnReference>(
+                    ColumnReference.class, AggregateNode.class);
 			havingClause.accept(collectNodesVisitor);
 
-			for (Iterator it = collectNodesVisitor.getList().iterator();
-			     it.hasNext(); ) 
+            for (ColumnReference cr: collectNodesVisitor.getList())
 			{
-				ColumnReference cr = (ColumnReference)it.next();
-
 				if ( ! (cr.getGeneratedToReplaceAggregate() ||
 						cr.getGeneratedToReplaceWindowFunctionCall()) &&
 					 cr.getSourceLevel() == level) {
@@ -1362,11 +1359,13 @@ public class GroupByNode extends SingleC
 				ValueNode v1 = o1.getSource();
 				ValueNode v2 = o2.getSource();
 				int refCount1, refCount2;
-				CollectNodesVisitor vis = new CollectNodesVisitor(
-				ColumnReference.class);
+                CollectNodesVisitor<ColumnReference> vis =
+                    new CollectNodesVisitor<ColumnReference>(
+                        ColumnReference.class);
 				v1.accept(vis);
 				refCount1 = vis.getList().size();
-				vis = new CollectNodesVisitor(ColumnReference.class);
+                vis = new CollectNodesVisitor<ColumnReference>(
+                        ColumnReference.class);
 				v2.accept(vis);
 				refCount2 = vis.getList().size();
 				// The ValueNode with the larger number of refs

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java Fri May 24 08:12:49 2013
@@ -235,11 +235,11 @@ abstract class MethodCallNode extends Ja
 	void getCorrelationTables(JBitSet correlationMap)
 		throws StandardException
 	{
-		CollectNodesVisitor getCRs = new CollectNodesVisitor(ColumnReference.class);
+        CollectNodesVisitor<ColumnReference> getCRs =
+            new CollectNodesVisitor<ColumnReference>(ColumnReference.class);
 		accept(getCRs);
-		for (Iterator it = getCRs.getList().iterator(); it.hasNext(); )
+        for (ColumnReference ref : getCRs.getList())
 		{
-			ColumnReference ref = (ColumnReference) it.next();
 			if (ref.getCorrelated())
 			{
 				correlationMap.set(ref.getTableNumber());

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/OrderByColumn.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/OrderByColumn.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/OrderByColumn.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/OrderByColumn.java Fri May 24 08:12:49 2013
@@ -21,8 +21,6 @@
 
 package	org.apache.derby.impl.sql.compile;
 
-import java.util.Iterator;
-
 import org.apache.derby.iapi.error.StandardException;
 import org.apache.derby.iapi.reference.SQLState;
 import org.apache.derby.iapi.services.sanity.SanityManager;
@@ -249,14 +247,13 @@ public class OrderByColumn extends Order
 				String col=null;
 				boolean match=false;
 
-				CollectNodesVisitor collectNodesVisitor =
-					new CollectNodesVisitor(ColumnReference.class);
+                CollectNodesVisitor<ColumnReference> collectNodesVisitor =
+                    new CollectNodesVisitor<ColumnReference>(
+                        ColumnReference.class);
 				expression.accept(collectNodesVisitor);
 
-				for (Iterator it = collectNodesVisitor.getList().iterator();
-				it.hasNext(); )
+                for (ColumnReference cr1 : collectNodesVisitor.getList())
 				{//visits through the columns in this OrderByColumn
-					ColumnReference cr1=(ColumnReference)it.next();
 					col=cr1.getColumnName();
 					match = columnMatchFound(target,cr1);
 					/* breaks if a match not found, this is needed

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/PredicateList.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/PredicateList.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/PredicateList.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/PredicateList.java Fri May 24 08:12:49 2013
@@ -58,7 +58,6 @@ import java.lang.reflect.Modifier;
 
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -1463,11 +1462,11 @@ public class PredicateList extends Query
 			Predicate	predicate;
 			predicate = (Predicate) elementAt(index);
 
-			CollectNodesVisitor getCRs = 
-                new CollectNodesVisitor(ColumnReference.class);
+            CollectNodesVisitor<ColumnReference> getCRs =
+                new CollectNodesVisitor<ColumnReference>(ColumnReference.class);
 
 			predicate.getAndNode().accept(getCRs);
-			List colRefs = getCRs.getList();
+            List<ColumnReference> colRefs = getCRs.getList();
 
 			/* state doesn't become true until we find the 1st
 			 * ColumnReference.  (We probably will always find
@@ -1476,9 +1475,8 @@ public class PredicateList extends Query
 			boolean state = colRefs.size() > 0;
 			if (state)
 			{
-				for (Iterator it = colRefs.iterator(); it.hasNext(); )
+                for (ColumnReference ref : colRefs)
 				{
-					ColumnReference ref = (ColumnReference) it.next();
 					if (!ref.pointsToColumnReference())
 					{
 						state = false;
@@ -1640,8 +1638,8 @@ public class PredicateList extends Query
 	void markReferencedColumns()
 		throws StandardException
 	{
-		CollectNodesVisitor collectCRs = 
-            new CollectNodesVisitor(ColumnReference.class);
+        CollectNodesVisitor<ColumnReference> collectCRs =
+            new CollectNodesVisitor<ColumnReference>(ColumnReference.class);
 
 		int size = size();
 		for (int index = 0; index < size; index++)
@@ -1650,10 +1648,8 @@ public class PredicateList extends Query
 			predicate.getAndNode().accept(collectCRs);
 		}
 
-		List colRefs = collectCRs.getList();
-		for (Iterator it = colRefs.iterator(); it.hasNext(); )
+        for (ColumnReference ref : collectCRs.getList())
 		{
-			ColumnReference ref = (ColumnReference) it.next();
 			ResultColumn source = ref.getSource();
 
             // DERBY-4391: Don't try to call markAllRCsInChainReferenced() if

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SelectNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SelectNode.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SelectNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SelectNode.java Fri May 24 08:12:49 2013
@@ -174,8 +174,9 @@ public class SelectNode extends ResultSe
 		
 		this.originalWhereClauseHadSubqueries = false;
 		if (this.whereClause != null){
-			CollectNodesVisitor cnv = 
-				new CollectNodesVisitor(SubqueryNode.class, SubqueryNode.class);
+            CollectNodesVisitor<SubqueryNode> cnv =
+                new CollectNodesVisitor<SubqueryNode>(
+                    SubqueryNode.class, SubqueryNode.class);
 			this.whereClause.accept(cnv);
 			if (!cnv.getList().isEmpty()){
 				this.originalWhereClauseHadSubqueries = true;
@@ -756,8 +757,9 @@ public class SelectNode extends ResultSe
 		 * With a FromSubquery in the FromList we cannot bind target expressions 
 		 * at this level (DERBY-3321)
 		 */
-		CollectNodesVisitor cnv = new CollectNodesVisitor(FromSubquery.class, 
-														  FromSubquery.class);
+        CollectNodesVisitor<FromSubquery> cnv =
+            new CollectNodesVisitor<FromSubquery>(
+                FromSubquery.class, FromSubquery.class);
 		fromList.accept(cnv);
 		if (!cnv.getList().isEmpty()){		
 			bindTargetListOnly = false;
@@ -1312,14 +1314,12 @@ public class SelectNode extends ResultSe
 			// Collect window function calls and in-lined window definitions
 			// contained in them from the orderByList.
 
-			CollectNodesVisitor cnvw =
-				new CollectNodesVisitor(WindowFunctionNode.class);
+            CollectNodesVisitor<WindowFunctionNode> cnvw =
+                new CollectNodesVisitor<WindowFunctionNode>(
+                    WindowFunctionNode.class);
             orderByLists[0].accept(cnvw);
-			List wfcInOrderBy = cnvw.getList();
 
-			for (int i=0; i < wfcInOrderBy.size(); i++) {
-				WindowFunctionNode wfn =
-					(WindowFunctionNode) wfcInOrderBy.get(i);
+            for (WindowFunctionNode wfn : cnvw.getList()) {
 				windowFuncCalls.add(wfn);
 
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SetOperatorNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SetOperatorNode.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SetOperatorNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SetOperatorNode.java Fri May 24 08:12:49 2013
@@ -39,7 +39,6 @@ import org.apache.derby.iapi.types.DataT
 import org.apache.derby.iapi.util.JBitSet;
 
 import java.util.HashMap;
-import java.util.List;
 
 /**
  * A SetOperatorNode represents a UNION, INTERSECT, or EXCEPT in a DML statement. Binding and optimization
@@ -219,15 +218,15 @@ abstract class SetOperatorNode extends T
 		 */
 
 		// Find all UnionNodes in the subtree.
-		CollectNodesVisitor cnv = new CollectNodesVisitor(UnionNode.class);
+        CollectNodesVisitor<UnionNode> cnv =
+                new CollectNodesVisitor<UnionNode>(UnionNode.class);
 		this.accept(cnv);
-		List unions = cnv.getList();
 
 		// Now see if any of them have unpushed predicates.
 		boolean genPRN = false;
-		for (int i = unions.size() - 1; i >= 0; i--)
+        for (UnionNode node : cnv.getList())
 		{
-			if (((UnionNode)unions.get(i)).hasUnPushedPredicates())
+            if (node.hasUnPushedPredicates())
 			{
 				genPRN = true;
 				break;

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java Fri May 24 08:12:49 2013
@@ -147,20 +147,17 @@ public class WindowResultSetNode extends
         // Add all referenced columns in select list to windowing node's RCL
         // and substitute references in original node to point to the Windowing
         // result set. (modelled on GroupByNode's action for addUnAggColumns)
-        CollectNodesVisitor getCRVisitor =
-            new CollectNodesVisitor(ColumnReference.class);
+        CollectNodesVisitor<ColumnReference> getCRVisitor =
+            new CollectNodesVisitor<ColumnReference>(ColumnReference.class);
 
         ResultColumnList prcl = parent.getResultColumns();
 
         parent.getResultColumns().accept(getCRVisitor);
 
-        List colRefs = getCRVisitor.getList();
-
         // Find all unique columns referenced and add those to windowing result
         // set.
         ArrayList<ValueNode> uniqueCols = new ArrayList<ValueNode>();
-        for (int i= 0; i< colRefs.size(); i++) {
-            ColumnReference cr = (ColumnReference) colRefs.get(i);
+        for (ColumnReference cr : getCRVisitor.getList()) {
             if (!colRefAlreadySeen(uniqueCols, cr)) {
                 uniqueCols.add(cr);
             }
@@ -174,12 +171,9 @@ public class WindowResultSetNode extends
             new CollectNodesVisitor<VirtualColumnNode>(VirtualColumnNode.class);
 
         parent.getResultColumns().accept(getVCVisitor);
-        List<VirtualColumnNode> vcs = getVCVisitor.getList();
 
         // Add any virtual columns to windowing result.
-        for (int i= 0; i< vcs.size(); i++) {
-            uniqueCols.add(vcs.get(i));
-        }
+        uniqueCols.addAll(getVCVisitor.getList());
 
         ResultColumnList bottomRCL  = childResult.getResultColumns();
         ResultColumnList windowingRCL = resultColumns;

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?rev=1485961&r1=1485960&r2=1485961&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Fri May 24 08:12:49 2013
@@ -10063,12 +10063,12 @@ groupingColumnReference(GroupByList grou
         // inside the expression and mark them so that at bind() time
         // we can reject them if they turn out to be user-defined aggregates
         // rather than ordinary function calls.
-        CollectNodesVisitor  functionSniffer = new CollectNodesVisitor( StaticMethodCallNode.class );
+        CollectNodesVisitor<StaticMethodCallNode> functionSniffer =
+            new CollectNodesVisitor<StaticMethodCallNode>(StaticMethodCallNode.class);
         columnExpression.accept( functionSniffer );
-        List functionNodes = functionSniffer.getList();
-        for ( int i = 0; i < functionNodes.size(); i++ )
+        for (StaticMethodCallNode node : functionSniffer.getList())
         {
-            ((StaticMethodCallNode) functionNodes.get(i)).setAppearsInGroupBy();
+            node.setAppearsInGroupBy();
         }
 
 		if (columnExpression.isParameterNode())