You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2011/05/31 00:00:06 UTC

svn commit: r1129397 [1/2] - in /incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core: database/ interfaces/

Author: kwright
Date: Mon May 30 22:00:05 2011
New Revision: 1129397

URL: http://svn.apache.org/viewvc?rev=1129397&view=rev
Log:
Refactor classes to be Java 1.5 compliant, using best practices where feasible.

Modified:
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/BaseTable.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceDerby.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceHSQLDB.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/QueryDescription.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RRow.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RSet.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ConfigParams.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/Configuration.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ConfigurationNode.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/IDBInterface.java
    incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/IResultRow.java

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/BaseTable.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/BaseTable.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/BaseTable.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/BaseTable.java Mon May 30 22:00:05 2011
@@ -82,7 +82,7 @@ public class BaseTable
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  protected void performUpdate(Map parameterMap, String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  protected void performUpdate(Map parameterMap, String whereClause, List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     dbInterface.performUpdate(tableName,parameterMap,whereClause,whereParameters,invalidateKeys);
@@ -93,7 +93,7 @@ public class BaseTable
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  protected void performDelete(String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  protected void performDelete(String whereClause, List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     dbInterface.performDelete(tableName,whereClause,whereParameters,invalidateKeys);
@@ -119,7 +119,7 @@ public class BaseTable
   *@param columnDeleteList is the list of column names to delete.
   *@param invalidateKeys are the cache keys that should be invalidated, if any.
   */
-  public void performAlter(Map columnMap, Map columnModifyMap, ArrayList columnDeleteList,
+  public void performAlter(Map columnMap, Map columnModifyMap, List<String> columnDeleteList,
     StringSet invalidateKeys)
     throws ManifoldCFException
   {
@@ -131,7 +131,7 @@ public class BaseTable
   *@param columnList is the list of columns that need to be included
   * in the index, in order.
   */
-  protected void addTableIndex(boolean unique, ArrayList columnList)
+  protected void addTableIndex(boolean unique, List<String> columnList)
     throws ManifoldCFException
   {
     dbInterface.addTableIndex(tableName,unique,columnList);
@@ -209,7 +209,7 @@ public class BaseTable
   *@param params are the parameterized values, if needed.
   *@param invalidateKeys are the cache keys to invalidate.
   */
-  protected void performModification(String query, ArrayList params, StringSet invalidateKeys)
+  protected void performModification(String query, List params, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     dbInterface.performModification(query,params,invalidateKeys);
@@ -223,7 +223,7 @@ public class BaseTable
   * or null if no LRU behavior desired.
   *@return a resultset.
   */
-  protected IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass)
+  protected IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     return dbInterface.performQuery(query,params,cacheKeys,queryClass);
@@ -238,7 +238,7 @@ public class BaseTable
   *@param resultLimit is the maximum number of results desired.
   *@return a resultset.
   */
-  protected IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass, int resultLimit)
+  protected IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass, int resultLimit)
     throws ManifoldCFException
   {
     return dbInterface.performQuery(query,params,cacheKeys,queryClass,resultLimit,null);
@@ -334,15 +334,15 @@ public class BaseTable
   * This filter wraps a query and returns a new query whose results are similar to POSTGRESQL's DISTINCT-ON feature.
   * Specifically, for each combination of the specified distinct fields in the result, only the first such row is included in the final
   * result.
-  *@param outputParameters is a blank arraylist into which to put parameters.  Null may be used if the baseParameters parameter is null.
+  *@param outputParameters is a blank list into which to put parameters.  Null may be used if the baseParameters parameter is null.
   *@param baseQuery is the base query, which can either be tables and where clause, or can be another SELECT in parens,
   * e.g. "(SELECT ...) t3"
   *@param baseParameters are the parameters corresponding to the baseQuery.
   *@param distinctFields are the fields to consider to be distinct.
   *@param otherFields are the rest of the fields to return, keyed by the AS name, value being the column value, e.g. "value AS key"
-  *@return a revised query that performs the necessary DISTINCT ON operation.  The arraylist outputParameters will also be appropriately filled in.
+  *@return a revised query that performs the necessary DISTINCT ON operation.  The list outputParameters will also be appropriately filled in.
   */
-  public String constructDistinctOnClause(ArrayList outputParameters, String baseQuery, ArrayList baseParameters, String[] distinctFields, Map otherFields)
+  public String constructDistinctOnClause(List outputParameters, String baseQuery, List baseParameters, String[] distinctFields, Map otherFields)
   {
     return dbInterface.constructDistinctOnClause(outputParameters,baseQuery,baseParameters,distinctFields,otherFields);
   }

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceDerby.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceDerby.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceDerby.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceDerby.java Mon May 30 22:00:05 2011
@@ -53,22 +53,22 @@ public class DBInterfaceDerby extends Da
   boolean inTransaction = false;
   
   // This is where we keep track of tables that we need to analyze on transaction exit
-  protected ArrayList tablesToAnalyze = new ArrayList();
+  protected List<String> tablesToAnalyze = new ArrayList<String>();
 
   // Keep track of tables to reindex on transaction exit
-  protected ArrayList tablesToReindex = new ArrayList();
+  protected List<String> tablesToReindex = new ArrayList<String>();
 
   // This is where we keep temporary table statistics, which accumulate until they reach a threshold, and then are added into shared memory.
   
   /** Accumulated reindex statistics.  This map is keyed by the table name, and contains TableStatistics values. */
-  protected static Map currentReindexStatistics = new HashMap();
+  protected static Map<String,TableStatistics> currentReindexStatistics = new HashMap<String,TableStatistics>();
   /** Table reindex thresholds, as read from configuration information.  Keyed by table name, contains Integer values. */
-  protected static Map reindexThresholds = new HashMap();
+  protected static Map<String,Integer> reindexThresholds = new HashMap<String,Integer>();
   
   /** Accumulated analyze statistics.  This map is keyed by the table name, and contains TableStatistics values. */
-  protected static Map currentAnalyzeStatistics = new HashMap();
+  protected static Map<String,TableStatistics> currentAnalyzeStatistics = new HashMap<String,TableStatistics>();
   /** Table analyze thresholds, as read from configuration information.  Keyed by table name, contains Integer values. */
-  protected static Map analyzeThresholds = new HashMap();
+  protected static Map<String,Integer> analyzeThresholds = new HashMap<String,Integer>();
   
   /** The number of inserts, deletes, etc. before we update the shared area. */
   protected static final int commitThreshold = 100;
@@ -176,10 +176,10 @@ public class DBInterfaceDerby extends Da
   * invalidated.
   *@param parameterMap is the map of column name/values to write.
   */
-  public void performInsert(String tableName, Map parameterMap, StringSet invalidateKeys)
+  public void performInsert(String tableName, Map<String,Object> parameterMap, StringSet invalidateKeys)
     throws ManifoldCFException
   {
-    ArrayList paramArray = new ArrayList();
+    List paramArray = new ArrayList();
 
     StringBuilder bf = new StringBuilder();
     bf.append("INSERT INTO ");
@@ -189,12 +189,12 @@ public class DBInterfaceDerby extends Da
     StringBuilder values = new StringBuilder(" VALUES (");
 
     // loop for cols
-    Iterator it = parameterMap.entrySet().iterator();
+    Iterator<Map.Entry<String,Object>> it = parameterMap.entrySet().iterator();
     boolean first = true;
     while (it.hasNext())
     {
-      Map.Entry e = (Map.Entry)it.next();
-      String key = (String)e.getKey();
+      Map.Entry<String,Object> e = it.next();
+      String key = e.getKey();
 
       Object o = e.getValue();
       if (o != null)
@@ -229,10 +229,11 @@ public class DBInterfaceDerby extends Da
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  public void performUpdate(String tableName, Map parameterMap, String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  public void performUpdate(String tableName, Map<String,Object> parameterMap, String whereClause,
+    List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
-    ArrayList paramArray = new ArrayList();
+    List paramArray = new ArrayList();
 
     StringBuilder bf = new StringBuilder();
     bf.append("UPDATE ");
@@ -240,12 +241,12 @@ public class DBInterfaceDerby extends Da
     bf.append(" SET ") ;
 
     // loop for parameters
-    Iterator it = parameterMap.entrySet().iterator();
+    Iterator<Map.Entry<String,Object>> it = parameterMap.entrySet().iterator();
     boolean first = true;
     while (it.hasNext())
     {
-      Map.Entry e = (Map.Entry)it.next();
-      String key = (String)e.getKey();
+      Map.Entry<String,Object> e = it.next();
+      String key = e.getKey();
 
       Object o = e.getValue();
 
@@ -294,7 +295,7 @@ public class DBInterfaceDerby extends Da
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  public void performDelete(String tableName, String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  public void performDelete(String tableName, String whereClause, List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     StringBuilder bf = new StringBuilder();
@@ -320,19 +321,19 @@ public class DBInterfaceDerby extends Da
   * layer.
   *@param invalidateKeys are the cache keys that should be invalidated, if any.
   */
-  public void performCreate(String tableName, Map columnMap, StringSet invalidateKeys)
+  public void performCreate(String tableName, Map<String,ColumnDescription> columnMap, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     int constraintNumber = 0;
     StringBuilder queryBuffer = new StringBuilder("CREATE TABLE ");
     queryBuffer.append(tableName);
     queryBuffer.append('(');
-    Iterator iter = columnMap.keySet().iterator();
+    Iterator<String> iter = columnMap.keySet().iterator();
     boolean first = true;
     while (iter.hasNext())
     {
-      String columnName = (String)iter.next();
-      ColumnDescription cd = (ColumnDescription)columnMap.get(columnName);
+      String columnName = iter.next();
+      ColumnDescription cd = columnMap.get(columnName);
       if (!first)
         queryBuffer.append(',');
       else
@@ -383,7 +384,8 @@ public class DBInterfaceDerby extends Da
   *@param columnDeleteList is the list of column names to delete.
   *@param invalidateKeys are the cache keys that should be invalidated, if any.
   */
-  public void performAlter(String tableName, Map columnMap, Map columnModifyMap, ArrayList columnDeleteList,
+  public void performAlter(String tableName, Map<String,ColumnDescription> columnMap,
+    Map<String,ColumnDescription> columnModifyMap, List<String> columnDeleteList,
     StringSet invalidateKeys)
     throws ManifoldCFException
   {
@@ -395,7 +397,7 @@ public class DBInterfaceDerby extends Da
         int i = 0;
         while (i < columnDeleteList.size())
         {
-          String columnName = (String)columnDeleteList.get(i++);
+          String columnName = columnDeleteList.get(i++);
           performModification("ALTER TABLE ONLY "+tableName+" DROP "+columnName,null,invalidateKeys);
         }
       }
@@ -403,11 +405,11 @@ public class DBInterfaceDerby extends Da
       // Do the modifies.  This involves renaming each column to a temp column, then creating a new one, then copying
       if (columnModifyMap != null)
       {
-        Iterator iter = columnModifyMap.keySet().iterator();
+        Iterator<String> iter = columnModifyMap.keySet().iterator();
         while (iter.hasNext())
         {
-          String columnName = (String)iter.next();
-          ColumnDescription cd = (ColumnDescription)columnModifyMap.get(columnName);
+          String columnName = iter.next();
+          ColumnDescription cd = columnModifyMap.get(columnName);
           String renameColumn = "__temp__";
           // Create a new column we can copy the data into.
           performModification("RENAME COLUMN "+tableName+"."+columnName+" TO "+renameColumn,null,invalidateKeys);
@@ -428,11 +430,11 @@ public class DBInterfaceDerby extends Da
       // Now, do the adds
       if (columnMap != null)
       {
-        Iterator iter = columnMap.keySet().iterator();
+        Iterator<String> iter = columnMap.keySet().iterator();
         while (iter.hasNext())
         {
-          String columnName = (String)iter.next();
-          ColumnDescription cd = (ColumnDescription)columnMap.get(columnName);
+          String columnName = iter.next();
+          ColumnDescription cd = columnMap.get(columnName);
           StringBuilder sb = new StringBuilder();
           appendDescription(sb,columnName,cd,false);
           performModification("ALTER TABLE "+tableName+" ADD "+sb.toString(),null,invalidateKeys);
@@ -474,14 +476,14 @@ public class DBInterfaceDerby extends Da
   *@param columnList is the list of columns that need to be included
   * in the index, in order.
   */
-  public void addTableIndex(String tableName, boolean unique, ArrayList columnList)
+  public void addTableIndex(String tableName, boolean unique, List<String> columnList)
     throws ManifoldCFException
   {
     String[] columns = new String[columnList.size()];
     int i = 0;
     while (i < columns.length)
     {
-      columns[i] = (String)columnList.get(i);
+      columns[i] = columnList.get(i);
       i++;
     }
     performAddIndex(null,tableName,new IndexDescription(unique,columns));
@@ -568,7 +570,7 @@ public class DBInterfaceDerby extends Da
     lockManager.enterWriteCriticalSection(tableStatisticsLock);
     try
     {
-      TableStatistics ts = (TableStatistics)currentAnalyzeStatistics.get(tableName);
+      TableStatistics ts = currentAnalyzeStatistics.get(tableName);
       // Lock this table's statistics files
       lockManager.enterWriteLock(tableStatisticsLock);
       try
@@ -605,7 +607,7 @@ public class DBInterfaceDerby extends Da
     lockManager.enterWriteCriticalSection(tableStatisticsLock);
     try
     {
-      TableStatistics ts = (TableStatistics)currentReindexStatistics.get(tableName);
+      TableStatistics ts = currentReindexStatistics.get(tableName);
       // Lock this table's statistics files
       lockManager.enterWriteLock(tableStatisticsLock);
       try
@@ -634,7 +636,7 @@ public class DBInterfaceDerby extends Da
   {
     if (getTransactionID() == null)
     {
-      ArrayList list = new ArrayList();
+      List list = new ArrayList();
       list.add("APP");
       list.add(tableName.toUpperCase());
       performModification("CALL SYSCS_UTIL.SYSCS_UPDATE_STATISTICS(?,?,null)",list,null);
@@ -654,12 +656,12 @@ public class DBInterfaceDerby extends Da
         try
         {
           // To reindex, we (a) get all the table's indexes, (b) drop them, (c) recreate them
-          Map x = getTableIndexes(tableName,null,null);
-          Iterator iter = x.keySet().iterator();
+          Map<String,IndexDescription> x = getTableIndexes(tableName,null,null);
+          Iterator<String> iter = x.keySet().iterator();
           while (iter.hasNext())
           {
-            String indexName = (String)iter.next();
-            IndexDescription id = (IndexDescription)x.get(indexName);
+            String indexName = iter.next();
+            IndexDescription id = x.get(indexName);
             performRemoveIndex(indexName);
             performAddIndex(indexName,tableName,id);
           }
@@ -809,7 +811,7 @@ public class DBInterfaceDerby extends Da
   *@param params are the parameterized values, if needed.
   *@param invalidateKeys are the cache keys to invalidate.
   */
-  public void performModification(String query, ArrayList params, StringSet invalidateKeys)
+  public void performModification(String query, List params, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     while (true)
@@ -858,18 +860,18 @@ public class DBInterfaceDerby extends Da
   *@return a map of column names and ColumnDescription objects, describing the schema, or null if the
   * table doesn't exist.
   */
-  public Map getTableSchema(String tableName, StringSet cacheKeys, String queryClass)
+  public Map<String,ColumnDescription> getTableSchema(String tableName, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     String query = "SELECT CAST(t0.columnname AS VARCHAR(128)) AS columnname,CAST(t0.columndatatype AS VARCHAR(128)) AS columndatatype FROM sys.syscolumns t0, sys.systables t1 WHERE t0.referenceid=t1.tableid AND CAST(t1.tablename AS VARCHAR(128))=? ORDER BY t0.columnnumber ASC";
-    ArrayList list = new ArrayList();
+    List list = new ArrayList();
     list.add(tableName.toUpperCase());
 
     IResultSet set = performQuery(query,list,cacheKeys,queryClass);
     if (set.getRowCount() == 0)
       return null;
     // Digest the result
-    HashMap rval = new HashMap();
+    Map<String,ColumnDescription> rval = new HashMap<String,ColumnDescription>();
     int i = 0;
     while (i < set.getRowCount())
     {
@@ -890,14 +892,14 @@ public class DBInterfaceDerby extends Da
   *@param queryClass is the name of the query class, or null.
   *@return a map of index names and IndexDescription objects, describing the indexes.
   */
-  public Map getTableIndexes(String tableName, StringSet cacheKeys, String queryClass)
+  public Map<String,IndexDescription> getTableIndexes(String tableName, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
-    Map rval = new HashMap();
+    Map<String,IndexDescription> rval = new HashMap<String,IndexDescription>();
 
     // This query returns all index names for the table
     String query = "SELECT t0.conglomeratename FROM sys.sysconglomerates t0,sys.systables t1 WHERE t0.tableid=t1.tableid AND t0.isindex IS NOT NULL AND CAST(t1.tablename AS VARCHAR(128))=?";
-    ArrayList list = new ArrayList();
+    List list = new ArrayList();
     list.add(tableName);
     
     // It doesn't look like there's a way to find exactly what is in the index, and what the columns are.  Since
@@ -947,7 +949,7 @@ public class DBInterfaceDerby extends Da
   * or null if no LRU behavior desired.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass)
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     try
@@ -970,7 +972,7 @@ public class DBInterfaceDerby extends Da
   *@param returnLimit is a description of how to limit the return result, or null if no limit.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass,
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass,
     int maxResults, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -995,7 +997,7 @@ public class DBInterfaceDerby extends Da
   *@param returnLimit is a description of how to limit the return result, or null if no limit.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass,
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass,
     int maxResults, ResultSpecification resultSpec, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -1077,15 +1079,16 @@ public class DBInterfaceDerby extends Da
   * This filter wraps a query and returns a new query whose results are similar to POSTGRESQL's DISTINCT-ON feature.
   * Specifically, for each combination of the specified distinct fields in the result, only the first such row is included in the final
   * result.
-  *@param outputParameters is a blank arraylist into which to put parameters.  Null may be used if the baseParameters parameter is null.
+  *@param outputParameters is a blank list into which to put parameters.  Null may be used if the baseParameters parameter is null.
   *@param baseQuery is the base query, which is another SELECT statement, without parens,
   * e.g. "SELECT ..."
   *@param baseParameters are the parameters corresponding to the baseQuery.
   *@param distinctFields are the fields to consider to be distinct.  These should all be keys in otherFields below.
   *@param otherFields are the rest of the fields to return, keyed by the AS name, value being the base query column value, e.g. "value AS key"
-  *@return a revised query that performs the necessary DISTINCT ON operation.  The arraylist outputParameters will also be appropriately filled in.
+  *@return a revised query that performs the necessary DISTINCT ON operation.  The list outputParameters will also be appropriately filled in.
   */
-  public String constructDistinctOnClause(ArrayList outputParameters, String baseQuery, ArrayList baseParameters, String[] distinctFields, Map otherFields)
+  public String constructDistinctOnClause(List outputParameters, String baseQuery, List baseParameters, String[] distinctFields,
+    Map<String,String> otherFields)
   {
     // Derby does not really support this functionality.
     // We could hack a workaround, along the following lines:
@@ -1110,11 +1113,11 @@ public class DBInterfaceDerby extends Da
 
     StringBuilder sb = new StringBuilder("SELECT ");
     boolean needComma = false;
-    Iterator iter = otherFields.keySet().iterator();
+    Iterator<String> iter = otherFields.keySet().iterator();
     while (iter.hasNext())
     {
-      String fieldName = (String)iter.next();
-      String columnValue = (String)otherFields.get(fieldName);
+      String fieldName = iter.next();
+      String columnValue = otherFields.get(fieldName);
       if (needComma)
         sb.append(",");
       needComma = true;
@@ -1163,7 +1166,7 @@ public class DBInterfaceDerby extends Da
     lockManager.enterWriteCriticalSection(tableStatisticsLock);
     try
     {
-      Integer threshold = (Integer)reindexThresholds.get(tableName);
+      Integer threshold = reindexThresholds.get(tableName);
       int reindexThreshold;
       if (threshold == null)
       {
@@ -1174,7 +1177,7 @@ public class DBInterfaceDerby extends Da
       else
         reindexThreshold = threshold.intValue();
       
-      TableStatistics ts = (TableStatistics)currentReindexStatistics.get(tableName);
+      TableStatistics ts = currentReindexStatistics.get(tableName);
       if (ts == null)
       {
         ts = new TableStatistics();
@@ -1220,7 +1223,7 @@ public class DBInterfaceDerby extends Da
     lockManager.enterWriteCriticalSection(tableStatisticsLock);
     try
     {
-      Integer threshold = (Integer)analyzeThresholds.get(tableName);
+      Integer threshold = analyzeThresholds.get(tableName);
       int analyzeThreshold;
       if (threshold == null)
       {
@@ -1231,7 +1234,7 @@ public class DBInterfaceDerby extends Da
       else
         analyzeThreshold = threshold.intValue();
       
-      TableStatistics ts = (TableStatistics)currentAnalyzeStatistics.get(tableName);
+      TableStatistics ts = currentAnalyzeStatistics.get(tableName);
       if (ts == null)
       {
         ts = new TableStatistics();
@@ -1381,13 +1384,13 @@ public class DBInterfaceDerby extends Da
       int i = 0;
       while (i < tablesToAnalyze.size())
       {
-        analyzeTableInternal((String)tablesToAnalyze.get(i++));
+        analyzeTableInternal(tablesToAnalyze.get(i++));
       }
       tablesToAnalyze.clear();
       i = 0;
       while (i < tablesToReindex.size())
       {
-        reindexTableInternal((String)tablesToReindex.get(i++));
+        reindexTableInternal(tablesToReindex.get(i++));
       }
       tablesToReindex.clear();
     }

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceHSQLDB.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceHSQLDB.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceHSQLDB.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceHSQLDB.java Mon May 30 22:00:05 2011
@@ -130,10 +130,10 @@ public class DBInterfaceHSQLDB extends D
   * invalidated.
   *@param parameterMap is the map of column name/values to write.
   */
-  public void performInsert(String tableName, Map parameterMap, StringSet invalidateKeys)
+  public void performInsert(String tableName, Map<String,Object> parameterMap, StringSet invalidateKeys)
     throws ManifoldCFException
   {
-    ArrayList paramArray = new ArrayList();
+    List paramArray = new ArrayList();
 
     StringBuilder bf = new StringBuilder();
     bf.append("INSERT INTO ");
@@ -143,12 +143,12 @@ public class DBInterfaceHSQLDB extends D
     StringBuilder values = new StringBuilder(" VALUES (");
 
     // loop for cols
-    Iterator it = parameterMap.entrySet().iterator();
+    Iterator<Map.Entry<String,Object>> it = parameterMap.entrySet().iterator();
     boolean first = true;
     while (it.hasNext())
     {
-      Map.Entry e = (Map.Entry)it.next();
-      String key = (String)e.getKey();
+      Map.Entry<String,Object> e = it.next();
+      String key = e.getKey();
 
       Object o = e.getValue();
       if (o != null)
@@ -183,10 +183,11 @@ public class DBInterfaceHSQLDB extends D
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  public void performUpdate(String tableName, Map parameterMap, String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  public void performUpdate(String tableName, Map<String,Object> parameterMap, String whereClause,
+    List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
-    ArrayList paramArray = new ArrayList();
+    List paramArray = new ArrayList();
 
     StringBuilder bf = new StringBuilder();
     bf.append("UPDATE ");
@@ -194,12 +195,12 @@ public class DBInterfaceHSQLDB extends D
     bf.append(" SET ") ;
 
     // loop for parameters
-    Iterator it = parameterMap.entrySet().iterator();
+    Iterator<Map.Entry<String,Object>> it = parameterMap.entrySet().iterator();
     boolean first = true;
     while (it.hasNext())
     {
-      Map.Entry e = (Map.Entry)it.next();
-      String key = (String)e.getKey();
+      Map.Entry<String,Object> e = it.next();
+      String key = e.getKey();
 
       Object o = e.getValue();
 
@@ -248,7 +249,7 @@ public class DBInterfaceHSQLDB extends D
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  public void performDelete(String tableName, String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  public void performDelete(String tableName, String whereClause, List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     StringBuilder bf = new StringBuilder();
@@ -274,18 +275,18 @@ public class DBInterfaceHSQLDB extends D
   * layer.
   *@param invalidateKeys are the cache keys that should be invalidated, if any.
   */
-  public void performCreate(String tableName, Map columnMap, StringSet invalidateKeys)
+  public void performCreate(String tableName, Map<String,ColumnDescription> columnMap, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     StringBuilder queryBuffer = new StringBuilder("CREATE TABLE ");
     queryBuffer.append(tableName);
     queryBuffer.append('(');
-    Iterator iter = columnMap.keySet().iterator();
+    Iterator<String> iter = columnMap.keySet().iterator();
     boolean first = true;
     while (iter.hasNext())
     {
-      String columnName = (String)iter.next();
-      ColumnDescription cd = (ColumnDescription)columnMap.get(columnName);
+      String columnName = iter.next();
+      ColumnDescription cd = columnMap.get(columnName);
       if (!first)
         queryBuffer.append(',');
       else
@@ -333,7 +334,8 @@ public class DBInterfaceHSQLDB extends D
   *@param columnDeleteList is the list of column names to delete.
   *@param invalidateKeys are the cache keys that should be invalidated, if any.
   */
-  public void performAlter(String tableName, Map columnMap, Map columnModifyMap, ArrayList columnDeleteList,
+  public void performAlter(String tableName, Map<String,ColumnDescription> columnMap,
+    Map<String,ColumnDescription> columnModifyMap, List<String> columnDeleteList,
     StringSet invalidateKeys)
     throws ManifoldCFException
   {
@@ -345,7 +347,7 @@ public class DBInterfaceHSQLDB extends D
         int i = 0;
         while (i < columnDeleteList.size())
         {
-          String columnName = (String)columnDeleteList.get(i++);
+          String columnName = columnDeleteList.get(i++);
           performModification("ALTER TABLE "+tableName+" DROP "+columnName+" RESTRICT",null,invalidateKeys);
         }
       }
@@ -353,12 +355,12 @@ public class DBInterfaceHSQLDB extends D
       // Do the modifies.  This involves renaming each column to a temp column, then creating a new one, then copying
       if (columnModifyMap != null)
       {
-        Iterator iter = columnModifyMap.keySet().iterator();
+        Iterator<String> iter = columnModifyMap.keySet().iterator();
         while (iter.hasNext())
         {
           StringBuilder sb;
-          String columnName = (String)iter.next();
-          ColumnDescription cd = (ColumnDescription)columnModifyMap.get(columnName);
+          String columnName = iter.next();
+          ColumnDescription cd = columnModifyMap.get(columnName);
           String renameColumn = "__temp__";
           sb = new StringBuilder();
           appendDescription(sb,renameColumn,cd,true);
@@ -383,11 +385,11 @@ public class DBInterfaceHSQLDB extends D
       // Now, do the adds
       if (columnMap != null)
       {
-        Iterator iter = columnMap.keySet().iterator();
+        Iterator<String> iter = columnMap.keySet().iterator();
         while (iter.hasNext())
         {
-          String columnName = (String)iter.next();
-          ColumnDescription cd = (ColumnDescription)columnMap.get(columnName);
+          String columnName = iter.next();
+          ColumnDescription cd = columnMap.get(columnName);
           StringBuilder sb = new StringBuilder();
           appendDescription(sb,columnName,cd,false);
           performModification("ALTER TABLE "+tableName+" ADD "+sb.toString(),null,invalidateKeys);
@@ -429,14 +431,14 @@ public class DBInterfaceHSQLDB extends D
   *@param columnList is the list of columns that need to be included
   * in the index, in order.
   */
-  public void addTableIndex(String tableName, boolean unique, ArrayList columnList)
+  public void addTableIndex(String tableName, boolean unique, List<String> columnList)
     throws ManifoldCFException
   {
     String[] columns = new String[columnList.size()];
     int i = 0;
     while (i < columns.length)
     {
-      columns[i] = (String)columnList.get(i);
+      columns[i] = columnList.get(i);
       i++;
     }
     performAddIndex(null,tableName,new IndexDescription(unique,columns));
@@ -605,7 +607,7 @@ public class DBInterfaceHSQLDB extends D
   *@param params are the parameterized values, if needed.
   *@param invalidateKeys are the cache keys to invalidate.
   */
-  public void performModification(String query, ArrayList params, StringSet invalidateKeys)
+  public void performModification(String query, List params, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     try
@@ -625,11 +627,11 @@ public class DBInterfaceHSQLDB extends D
   *@return a map of column names and ColumnDescription objects, describing the schema, or null if the
   * table doesn't exist.
   */
-  public Map getTableSchema(String tableName, StringSet cacheKeys, String queryClass)
+  public Map<String,ColumnDescription> getTableSchema(String tableName, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     StringBuilder query = new StringBuilder();
-    ArrayList list = new ArrayList();
+    List list = new ArrayList();
     list.add(tableName.toUpperCase());
     query.append("SELECT column_name, is_nullable, data_type, character_maximum_length ")
       .append("FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema='PUBLIC' AND table_name=?");
@@ -648,7 +650,7 @@ public class DBInterfaceHSQLDB extends D
       primaryKey = "";
     
     // Digest the result
-    HashMap rval = new HashMap();
+    Map<String,ColumnDescription> rval = new HashMap<String,ColumnDescription>();
     int i = 0;
     while (i < set.getRowCount())
     {
@@ -678,18 +680,18 @@ public class DBInterfaceHSQLDB extends D
   *@param queryClass is the name of the query class, or null.
   *@return a map of index names and IndexDescription objects, describing the indexes.
   */
-  public Map getTableIndexes(String tableName, StringSet cacheKeys, String queryClass)
+  public Map<String,IndexDescription> getTableIndexes(String tableName, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
-    Map rval = new HashMap();
+    Map<String,IndexDescription> rval = new HashMap<String,IndexDescription>();
 
     String query = "SELECT index_name,column_name,non_unique,ordinal_position FROM INFORMATION_SCHEMA.SYSTEM_INDEXINFO "+
       "WHERE table_schem='PUBLIC' AND TABLE_NAME=? ORDER BY index_name,ordinal_position ASC";
-    ArrayList list = new ArrayList();
+    List list = new ArrayList();
     list.add(tableName.toUpperCase());
     IResultSet result = performQuery(query,list,cacheKeys,queryClass);
     String lastIndexName = null;
-    ArrayList indexColumns = null;
+    List<String> indexColumns = null;
     boolean isUnique = false;
     int i = 0;
     while (i < result.getRowCount())
@@ -710,7 +712,7 @@ public class DBInterfaceHSQLDB extends D
       if (lastIndexName == null)
       {
         lastIndexName = indexName;
-        indexColumns = new ArrayList();
+        indexColumns = new ArrayList<String>();
         isUnique = false;
       }
       indexColumns.add(columnName);
@@ -723,7 +725,7 @@ public class DBInterfaceHSQLDB extends D
     return rval;
   }
 
-  protected void addIndex(Map rval, String indexName, boolean isUnique, ArrayList indexColumns)
+  protected void addIndex(Map rval, String indexName, boolean isUnique, List<String> indexColumns)
   {
     if (indexName.indexOf("sys_idx") != -1)
       return;
@@ -731,7 +733,7 @@ public class DBInterfaceHSQLDB extends D
     int i = 0;
     while (i < columnNames.length)
     {
-      columnNames[i] = (String)indexColumns.get(i);
+      columnNames[i] = indexColumns.get(i);
       i++;
     }
     rval.put(indexName,new IndexDescription(isUnique,columnNames));
@@ -767,7 +769,7 @@ public class DBInterfaceHSQLDB extends D
   * or null if no LRU behavior desired.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass)
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     try
@@ -790,7 +792,7 @@ public class DBInterfaceHSQLDB extends D
   *@param returnLimit is a description of how to limit the return result, or null if no limit.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass,
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass,
     int maxResults, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -815,7 +817,7 @@ public class DBInterfaceHSQLDB extends D
   *@param returnLimit is a description of how to limit the return result, or null if no limit.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass,
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass,
     int maxResults, ResultSpecification resultSpec, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -879,15 +881,16 @@ public class DBInterfaceHSQLDB extends D
   * This filter wraps a query and returns a new query whose results are similar to POSTGRESQL's DISTINCT-ON feature.
   * Specifically, for each combination of the specified distinct fields in the result, only the first such row is included in the final
   * result.
-  *@param outputParameters is a blank arraylist into which to put parameters.  Null may be used if the baseParameters parameter is null.
+  *@param outputParameters is a blank list into which to put parameters.  Null may be used if the baseParameters parameter is null.
   *@param baseQuery is the base query, which is another SELECT statement, without parens,
   * e.g. "SELECT ..."
   *@param baseParameters are the parameters corresponding to the baseQuery.
   *@param distinctFields are the fields to consider to be distinct.  These should all be keys in otherFields below.
   *@param otherFields are the rest of the fields to return, keyed by the AS name, value being the base query column value, e.g. "value AS key"
-  *@return a revised query that performs the necessary DISTINCT ON operation.  The arraylist outputParameters will also be appropriately filled in.
+  *@return a revised query that performs the necessary DISTINCT ON operation.  The list outputParameters will also be appropriately filled in.
   */
-  public String constructDistinctOnClause(ArrayList outputParameters, String baseQuery, ArrayList baseParameters, String[] distinctFields, Map otherFields)
+  public String constructDistinctOnClause(List outputParameters, String baseQuery, List baseParameters,
+    String[] distinctFields, Map<String,String> otherFields)
   {
     // HSQLDB does not really support this functionality.
     // We could hack a workaround, along the following lines:
@@ -912,11 +915,11 @@ public class DBInterfaceHSQLDB extends D
 
     StringBuilder sb = new StringBuilder("SELECT ");
     boolean needComma = false;
-    Iterator iter = otherFields.keySet().iterator();
+    Iterator<String> iter = otherFields.keySet().iterator();
     while (iter.hasNext())
     {
-      String fieldName = (String)iter.next();
-      String columnValue = (String)otherFields.get(fieldName);
+      String fieldName = iter.next();
+      String columnValue = otherFields.get(fieldName);
       if (needComma)
         sb.append(",");
       needComma = true;

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfaceMySQL.java Mon May 30 22:00:05 2011
@@ -79,10 +79,10 @@ public class DBInterfaceMySQL extends Da
   * invalidated.
   *@param parameterMap is the map of column name/values to write.
   */
-  public void performInsert(String tableName, Map parameterMap, StringSet invalidateKeys)
+  public void performInsert(String tableName, Map<String,Object> parameterMap, StringSet invalidateKeys)
     throws ManifoldCFException
   {
-    ArrayList paramArray = new ArrayList();
+    List paramArray = new ArrayList();
 
     StringBuilder bf = new StringBuilder();
     bf.append("INSERT INTO ");
@@ -92,12 +92,12 @@ public class DBInterfaceMySQL extends Da
     StringBuilder values = new StringBuilder(" VALUES (");
 
     // loop for cols
-    Iterator it = parameterMap.entrySet().iterator();
+    Iterator<Map.Entry<String,Object>> it = parameterMap.entrySet().iterator();
     boolean first = true;
     while (it.hasNext())
     {
-      Map.Entry e = (Map.Entry)it.next();
-      String key = (String)e.getKey();
+      Map.Entry<String,Object> e = it.next();
+      String key = e.getKey();
 
       Object o = e.getValue();
       if (o != null)
@@ -132,10 +132,11 @@ public class DBInterfaceMySQL extends Da
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  public void performUpdate(String tableName, Map parameterMap, String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  public void performUpdate(String tableName, Map<String,Object> parameterMap, String whereClause,
+    List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
-    ArrayList paramArray = new ArrayList();
+    List paramArray = new ArrayList();
 
     StringBuilder bf = new StringBuilder();
     bf.append("UPDATE ");
@@ -143,12 +144,12 @@ public class DBInterfaceMySQL extends Da
     bf.append(" SET ") ;
 
     // loop for parameters
-    Iterator it = parameterMap.entrySet().iterator();
+    Iterator<Map.Entry<String,Object>> it = parameterMap.entrySet().iterator();
     boolean first = true;
     while (it.hasNext())
     {
-      Map.Entry e = (Map.Entry)it.next();
-      String key = (String)e.getKey();
+      Map.Entry<String,Object> e = it.next();
+      String key = e.getKey();
 
       Object o = e.getValue();
 
@@ -197,7 +198,7 @@ public class DBInterfaceMySQL extends Da
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  public void performDelete(String tableName, String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  public void performDelete(String tableName, String whereClause, List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     StringBuilder bf = new StringBuilder();
@@ -223,18 +224,18 @@ public class DBInterfaceMySQL extends Da
   * layer.
   *@param invalidateKeys are the cache keys that should be invalidated, if any.
   */
-  public void performCreate(String tableName, Map columnMap, StringSet invalidateKeys)
+  public void performCreate(String tableName, Map<String,ColumnDescription> columnMap, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     StringBuilder queryBuffer = new StringBuilder("CREATE TABLE ");
     queryBuffer.append(tableName);
     queryBuffer.append('(');
-    Iterator iter = columnMap.keySet().iterator();
+    Iterator<String> iter = columnMap.keySet().iterator();
     boolean first = true;
     while (iter.hasNext())
     {
-      String columnName = (String)iter.next();
-      ColumnDescription cd = (ColumnDescription)columnMap.get(columnName);
+      String columnName = iter.next();
+      ColumnDescription cd = columnMap.get(columnName);
       if (!first)
         queryBuffer.append(',');
       else
@@ -277,7 +278,8 @@ public class DBInterfaceMySQL extends Da
   *@param columnDeleteList is the list of column names to delete.
   *@param invalidateKeys are the cache keys that should be invalidated, if any.
   */
-  public void performAlter(String tableName, Map columnMap, Map columnModifyMap, ArrayList columnDeleteList,
+  public void performAlter(String tableName, Map<String,ColumnDescription> columnMap,
+    Map<String,ColumnDescription> columnModifyMap, List<String> columnDeleteList,
     StringSet invalidateKeys)
     throws ManifoldCFException
   {
@@ -290,14 +292,14 @@ public class DBInterfaceMySQL extends Da
   *@param columnList is the list of columns that need to be included
   * in the index, in order.
   */
-  public void addTableIndex(String tableName, boolean unique, ArrayList columnList)
+  public void addTableIndex(String tableName, boolean unique, List<String> columnList)
     throws ManifoldCFException
   {
     String[] columns = new String[columnList.size()];
     int i = 0;
     while (i < columns.length)
     {
-      columns[i] = (String)columnList.get(i);
+      columns[i] = columnList.get(i);
       i++;
     }
     performAddIndex(null,tableName,new IndexDescription(unique,columns));
@@ -387,7 +389,7 @@ public class DBInterfaceMySQL extends Da
   {
     // Connect to super database
     Database masterDatabase = new Database(context,_url+"mysql",_driver,"mysql",adminUserName,adminPassword);
-    ArrayList list = new ArrayList();
+    List list = new ArrayList();
     list.add("utf8");
     masterDatabase.executeQuery("CREATE DATABASE "+databaseName+" CHARACTER SET ?",list,
       null,invalidateKeys,null,false,0,null,null);
@@ -420,7 +422,7 @@ public class DBInterfaceMySQL extends Da
   *@param params are the parameterized values, if needed.
   *@param invalidateKeys are the cache keys to invalidate.
   */
-  public void performModification(String query, ArrayList params, StringSet invalidateKeys)
+  public void performModification(String query, List params, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     executeQuery(query,params,null,invalidateKeys,null,false,0,null,null);
@@ -432,12 +434,12 @@ public class DBInterfaceMySQL extends Da
   *@param queryClass is the name of the query class, or null.
   *@return a map of column names and ColumnDescription objects, describing the schema.
   */
-  public Map getTableSchema(String tableName, StringSet cacheKeys, String queryClass)
+  public Map<String,ColumnDescription> getTableSchema(String tableName, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     IResultSet set = performQuery("DESCRIBE "+tableName,null,cacheKeys,queryClass);
     // Digest the result
-    HashMap rval = new HashMap();
+    Map<String,ColumnDescription> rval = new HashMap<String,ColumnDescription>();
     int i = 0;
     while (i < set.getRowCount())
     {
@@ -458,7 +460,7 @@ public class DBInterfaceMySQL extends Da
   *@param queryClass is the name of the query class, or null.
   *@return a map of index names and IndexDescription objects, describing the indexes.
   */
-  public Map getTableIndexes(String tableName, StringSet cacheKeys, String queryClass)
+  public Map<String,IndexDescription> getTableIndexes(String tableName, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     // MHL
@@ -499,7 +501,7 @@ public class DBInterfaceMySQL extends Da
   * or null if no LRU behavior desired.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass)
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     return executeQuery(query,params,cacheKeys,null,queryClass,true,-1,null,null);
@@ -515,7 +517,7 @@ public class DBInterfaceMySQL extends Da
   *@param returnLimit is a description of how to limit the return result, or null if no limit.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass,
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass,
     int maxResults, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -533,7 +535,7 @@ public class DBInterfaceMySQL extends Da
   *@param returnLimit is a description of how to limit the return result, or null if no limit.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass,
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass,
     int maxResults, ResultSpecification resultSpec, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -591,15 +593,16 @@ public class DBInterfaceMySQL extends Da
   * This filter wraps a query and returns a new query whose results are similar to POSTGRESQL's DISTINCT-ON feature.
   * Specifically, for each combination of the specified distinct fields in the result, only the first such row is included in the final
   * result.
-  *@param outputParameters is a blank arraylist into which to put parameters.  Null may be used if the baseParameters parameter is null.
+  *@param outputParameters is a blank list into which to put parameters.  Null may be used if the baseParameters parameter is null.
   *@param baseQuery is the base query, which is another SELECT statement, without parens,
   * e.g. "SELECT ..."
   *@param baseParameters are the parameters corresponding to the baseQuery.
   *@param distinctFields are the fields to consider to be distinct.  These should all be keys in otherFields below.
   *@param otherFields are the rest of the fields to return, keyed by the AS name, value being the base query column value, e.g. "value AS key"
-  *@return a revised query that performs the necessary DISTINCT ON operation.  The arraylist outputParameters will also be appropriately filled in.
+  *@return a revised query that performs the necessary DISTINCT ON operation.  The list outputParameters will also be appropriately filled in.
   */
-  public String constructDistinctOnClause(ArrayList outputParameters, String baseQuery, ArrayList baseParameters, String[] distinctFields, Map otherFields)
+  public String constructDistinctOnClause(List outputParameters, String baseQuery, List baseParameters,
+    String[] distinctFields, Map<String,String> otherFields)
   {
     // I don't know whether MySql supports this functionality or not.
     // MHL
@@ -609,11 +612,11 @@ public class DBInterfaceMySQL extends Da
 
     StringBuilder sb = new StringBuilder("SELECT ");
     boolean needComma = false;
-    Iterator iter = otherFields.keySet().iterator();
+    Iterator<String> iter = otherFields.keySet().iterator();
     while (iter.hasNext())
     {
-      String fieldName = (String)iter.next();
-      String columnValue = (String)otherFields.get(fieldName);
+      String fieldName = iter.next();
+      String columnValue = otherFields.get(fieldName);
       if (needComma)
         sb.append(",");
       needComma = true;

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java Mon May 30 22:00:05 2011
@@ -48,22 +48,22 @@ public class DBInterfacePostgreSQL exten
   protected int serializableDepth = 0;
 
   // This is where we keep track of tables that we need to analyze on transaction exit
-  protected ArrayList tablesToAnalyze = new ArrayList();
+  protected List<String> tablesToAnalyze = new ArrayList<String>();
 
   // Keep track of tables to reindex on transaction exit
-  protected ArrayList tablesToReindex = new ArrayList();
+  protected List<String> tablesToReindex = new ArrayList<String>();
 
   // This is where we keep temporary table statistics, which accumulate until they reach a threshold, and then are added into shared memory.
   
   /** Accumulated reindex statistics.  This map is keyed by the table name, and contains TableStatistics values. */
-  protected static Map currentReindexStatistics = new HashMap();
+  protected static Map<String,TableStatistics> currentReindexStatistics = new HashMap<String,TableStatistics>();
   /** Table reindex thresholds, as read from configuration information.  Keyed by table name, contains Integer values. */
-  protected static Map reindexThresholds = new HashMap();
+  protected static Map<String,Integer> reindexThresholds = new HashMap<String,Integer>();
   
   /** Accumulated analyze statistics.  This map is keyed by the table name, and contains TableStatistics values. */
-  protected static Map currentAnalyzeStatistics = new HashMap();
+  protected static Map<String,TableStatistics> currentAnalyzeStatistics = new HashMap<String,TableStatistics>();
   /** Table analyze thresholds, as read from configuration information.  Keyed by table name, contains Integer values. */
-  protected static Map analyzeThresholds = new HashMap();
+  protected static Map<String,Integer> analyzeThresholds = new HashMap<String,Integer>();
   
   /** The number of inserts, deletes, etc. before we update the shared area. */
   protected static final int commitThreshold = 100;
@@ -146,10 +146,10 @@ public class DBInterfacePostgreSQL exten
   * invalidated.
   *@param parameterMap is the map of column name/values to write.
   */
-  public void performInsert(String tableName, Map parameterMap, StringSet invalidateKeys)
+  public void performInsert(String tableName, Map<String,Object> parameterMap, StringSet invalidateKeys)
     throws ManifoldCFException
   {
-    ArrayList paramArray = new ArrayList();
+    List paramArray = new ArrayList();
 
     StringBuilder bf = new StringBuilder();
     bf.append("INSERT INTO ");
@@ -159,12 +159,12 @@ public class DBInterfacePostgreSQL exten
     StringBuilder values = new StringBuilder(" VALUES (");
 
     // loop for cols
-    Iterator it = parameterMap.entrySet().iterator();
+    Iterator<Map.Entry<String,Object>> it = parameterMap.entrySet().iterator();
     boolean first = true;
     while (it.hasNext())
     {
-      Map.Entry e = (Map.Entry)it.next();
-      String key = (String)e.getKey();
+      Map.Entry<String,Object> e = it.next();
+      String key = e.getKey();
 
       Object o = e.getValue();
       if (o != null)
@@ -199,10 +199,11 @@ public class DBInterfacePostgreSQL exten
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  public void performUpdate(String tableName, Map parameterMap, String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  public void performUpdate(String tableName, Map<String,Object> parameterMap, String whereClause,
+    List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
-    ArrayList paramArray = new ArrayList();
+    List paramArray = new ArrayList();
 
     StringBuilder bf = new StringBuilder();
     bf.append("UPDATE ");
@@ -210,12 +211,12 @@ public class DBInterfacePostgreSQL exten
     bf.append(" SET ") ;
 
     // loop for parameters
-    Iterator it = parameterMap.entrySet().iterator();
+    Iterator<Map.Entry<String,Object>> it = parameterMap.entrySet().iterator();
     boolean first = true;
     while (it.hasNext())
     {
-      Map.Entry e = (Map.Entry)it.next();
-      String key = (String)e.getKey();
+      Map.Entry<String,Object> e = it.next();
+      String key = e.getKey();
 
       Object o = e.getValue();
 
@@ -264,7 +265,7 @@ public class DBInterfacePostgreSQL exten
   *@param whereClause is the where clause describing the match (including the WHERE), or null if none.
   *@param whereParameters are the parameters that come with the where clause, if any.
   */
-  public void performDelete(String tableName, String whereClause, ArrayList whereParameters, StringSet invalidateKeys)
+  public void performDelete(String tableName, String whereClause, List whereParameters, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     StringBuilder bf = new StringBuilder();
@@ -290,18 +291,18 @@ public class DBInterfacePostgreSQL exten
   * layer.
   *@param invalidateKeys are the cache keys that should be invalidated, if any.
   */
-  public void performCreate(String tableName, Map columnMap, StringSet invalidateKeys)
+  public void performCreate(String tableName, Map<String,ColumnDescription> columnMap, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     StringBuilder queryBuffer = new StringBuilder("CREATE TABLE ");
     queryBuffer.append(tableName);
     queryBuffer.append('(');
-    Iterator iter = columnMap.keySet().iterator();
+    Iterator<String> iter = columnMap.keySet().iterator();
     boolean first = true;
     while (iter.hasNext())
     {
-      String columnName = (String)iter.next();
-      ColumnDescription cd = (ColumnDescription)columnMap.get(columnName);
+      String columnName = iter.next();
+      ColumnDescription cd = columnMap.get(columnName);
       if (!first)
         queryBuffer.append(',');
       else
@@ -349,7 +350,8 @@ public class DBInterfacePostgreSQL exten
   *@param columnDeleteList is the list of column names to delete.
   *@param invalidateKeys are the cache keys that should be invalidated, if any.
   */
-  public void performAlter(String tableName, Map columnMap, Map columnModifyMap, ArrayList columnDeleteList,
+  public void performAlter(String tableName, Map<String,ColumnDescription> columnMap,
+    Map<String,ColumnDescription> columnModifyMap, List<String> columnDeleteList,
     StringSet invalidateKeys)
     throws ManifoldCFException
   {
@@ -361,7 +363,7 @@ public class DBInterfacePostgreSQL exten
         int i = 0;
         while (i < columnDeleteList.size())
         {
-          String columnName = (String)columnDeleteList.get(i++);
+          String columnName = columnDeleteList.get(i++);
           performModification("ALTER TABLE ONLY "+tableName+" DROP "+columnName,null,invalidateKeys);
         }
       }
@@ -369,11 +371,11 @@ public class DBInterfacePostgreSQL exten
       // Do the modifies.  This involves renaming each column to a temp column, then creating a new one, then copying
       if (columnModifyMap != null)
       {
-        Iterator iter = columnModifyMap.keySet().iterator();
+        Iterator<String> iter = columnModifyMap.keySet().iterator();
         while (iter.hasNext())
         {
-          String columnName = (String)iter.next();
-          ColumnDescription cd = (ColumnDescription)columnModifyMap.get(columnName);
+          String columnName = iter.next();
+          ColumnDescription cd = columnModifyMap.get(columnName);
           String renameColumn = "__temp__";
           // Rename current column
           performModification("ALTER TABLE ONLY "+tableName+" RENAME "+columnName+" TO "+renameColumn,null,invalidateKeys);
@@ -394,11 +396,11 @@ public class DBInterfacePostgreSQL exten
       // Now, do the adds
       if (columnMap != null)
       {
-        Iterator iter = columnMap.keySet().iterator();
+        Iterator<String> iter = columnMap.keySet().iterator();
         while (iter.hasNext())
         {
-          String columnName = (String)iter.next();
-          ColumnDescription cd = (ColumnDescription)columnMap.get(columnName);
+          String columnName = iter.next();
+          ColumnDescription cd = columnMap.get(columnName);
           StringBuilder sb = new StringBuilder();
           appendDescription(sb,columnName,cd,false);
           performModification("ALTER TABLE ONLY "+tableName+" ADD "+sb.toString(),null,invalidateKeys);
@@ -442,14 +444,14 @@ public class DBInterfacePostgreSQL exten
   *@param columnList is the list of columns that need to be included
   * in the index, in order.
   */
-  public void addTableIndex(String tableName, boolean unique, ArrayList columnList)
+  public void addTableIndex(String tableName, boolean unique, List<String> columnList)
     throws ManifoldCFException
   {
     String[] columns = new String[columnList.size()];
     int i = 0;
     while (i < columns.length)
     {
-      columns[i] = (String)columnList.get(i);
+      columns[i] = columnList.get(i);
       i++;
     }
     performAddIndex(null,tableName,new IndexDescription(unique,columns));
@@ -525,7 +527,7 @@ public class DBInterfacePostgreSQL exten
     try
     {
       // Create user
-      ArrayList params = new ArrayList();
+      List params = new ArrayList();
       params.add(userName);
       IResultSet set = masterDatabase.executeQuery("SELECT * FROM pg_user WHERE usename=?",params,
         null,null,null,true,-1,null,null);
@@ -629,7 +631,7 @@ public class DBInterfacePostgreSQL exten
   *@param params are the parameterized values, if needed.
   *@param invalidateKeys are the cache keys to invalidate.
   */
-  public void performModification(String query, ArrayList params, StringSet invalidateKeys)
+  public void performModification(String query, List params, StringSet invalidateKeys)
     throws ManifoldCFException
   {
     try
@@ -649,11 +651,11 @@ public class DBInterfacePostgreSQL exten
   *@return a map of column names and ColumnDescription objects, describing the schema, or null if the
   * table doesn't exist.
   */
-  public Map getTableSchema(String tableName, StringSet cacheKeys, String queryClass)
+  public Map<String,ColumnDescription> getTableSchema(String tableName, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     StringBuilder query = new StringBuilder();
-    ArrayList list = new ArrayList();
+    List list = new ArrayList();
     query.append("SELECT pg_attribute.attname AS \"Field\",");
     query.append("CASE pg_type.typname WHEN 'int2' THEN 'smallint' WHEN 'int4' THEN 'int'");
     query.append(" WHEN 'int8' THEN 'bigint' WHEN 'varchar' THEN 'varchar(' || pg_attribute.atttypmod-4 || ')'");
@@ -672,7 +674,7 @@ public class DBInterfacePostgreSQL exten
     if (set.getRowCount() == 0)
       return null;
     // Digest the result
-    HashMap rval = new HashMap();
+    Map<String,ColumnDescription> rval = new HashMap<String,ColumnDescription>();
     int i = 0;
     while (i < set.getRowCount())
     {
@@ -693,15 +695,15 @@ public class DBInterfacePostgreSQL exten
   *@param queryClass is the name of the query class, or null.
   *@return a map of index names and IndexDescription objects, describing the indexes.
   */
-  public Map getTableIndexes(String tableName, StringSet cacheKeys, String queryClass)
+  public Map<String,IndexDescription> getTableIndexes(String tableName, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
-    Map rval = new HashMap();
+    Map<String,IndexDescription> rval = new HashMap<String,IndexDescription>();
 
     String query = "SELECT pg_catalog.pg_get_indexdef(i.indexrelid, 0, true) AS indexdef "+
       "FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i "+
       "WHERE c.relname = ? AND c.oid = i.indrelid AND i.indexrelid = c2.oid";
-    ArrayList list = new ArrayList();
+    List list = new ArrayList();
     list.add(tableName);
     
     IResultSet result = performQuery(query,list,cacheKeys,queryClass);
@@ -738,7 +740,7 @@ public class DBInterfacePostgreSQL exten
       if (parenPosition == -1)
         throw new ManifoldCFException("Cannot parse index description: '"+indexdef+"'");
       parsePosition = parenPosition + 1;
-      ArrayList columns = new ArrayList();
+      List<String> columns = new ArrayList<String>();
       while (true)
       {
         int nextIndex = indexdef.indexOf(",",parsePosition);
@@ -762,7 +764,7 @@ public class DBInterfacePostgreSQL exten
       int j = 0;
       while (j < columnNames.length)
       {
-        columnNames[j] = (String)columns.get(j);
+        columnNames[j] = columns.get(j);
         j++;
       }
       rval.put(indexName,new IndexDescription(isUnique,columnNames));
@@ -801,7 +803,7 @@ public class DBInterfacePostgreSQL exten
   * or null if no LRU behavior desired.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass)
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass)
     throws ManifoldCFException
   {
     try
@@ -824,7 +826,7 @@ public class DBInterfacePostgreSQL exten
   *@param returnLimit is a description of how to limit the return result, or null if no limit.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass,
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass,
     int maxResults, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -849,7 +851,7 @@ public class DBInterfacePostgreSQL exten
   *@param returnLimit is a description of how to limit the return result, or null if no limit.
   *@return a resultset.
   */
-  public IResultSet performQuery(String query, ArrayList params, StringSet cacheKeys, String queryClass,
+  public IResultSet performQuery(String query, List params, StringSet cacheKeys, String queryClass,
     int maxResults, ResultSpecification resultSpec, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -924,15 +926,16 @@ public class DBInterfacePostgreSQL exten
   * This filter wraps a query and returns a new query whose results are similar to POSTGRESQL's DISTINCT-ON feature.
   * Specifically, for each combination of the specified distinct fields in the result, only the first such row is included in the final
   * result.
-  *@param outputParameters is a blank arraylist into which to put parameters.  Null may be used if the baseParameters parameter is null.
+  *@param outputParameters is a blank list into which to put parameters.  Null may be used if the baseParameters parameter is null.
   *@param baseQuery is the base query, which is another SELECT statement, without parens,
   * e.g. "SELECT ..."
   *@param baseParameters are the parameters corresponding to the baseQuery.
   *@param distinctFields are the fields to consider to be distinct.  These should all be keys in otherFields below.
   *@param otherFields are the rest of the fields to return, keyed by the AS name, value being the base query column value, e.g. "value AS key"
-  *@return a revised query that performs the necessary DISTINCT ON operation.  The arraylist outputParameters will also be appropriately filled in.
+  *@return a revised query that performs the necessary DISTINCT ON operation.  The list outputParameters will also be appropriately filled in.
   */
-  public String constructDistinctOnClause(ArrayList outputParameters, String baseQuery, ArrayList baseParameters, String[] distinctFields, Map otherFields)
+  public String constructDistinctOnClause(List outputParameters, String baseQuery, List baseParameters,
+    String[] distinctFields, Map<String,String> otherFields)
   {
     // Copy arguments
     if (baseParameters != null)
@@ -947,12 +950,12 @@ public class DBInterfacePostgreSQL exten
       sb.append(distinctFields[i++]);
     }
     sb.append(") ");
-    Iterator iter = otherFields.keySet().iterator();
+    Iterator<String> iter = otherFields.keySet().iterator();
     boolean needComma = false;
     while (iter.hasNext())
     {
-      String fieldName = (String)iter.next();
-      String columnValue = (String)otherFields.get(fieldName);
+      String fieldName = iter.next();
+      String columnValue = otherFields.get(fieldName);
       if (needComma)
         sb.append(",");
       needComma = true;
@@ -1075,13 +1078,13 @@ public class DBInterfacePostgreSQL exten
       int i = 0;
       while (i < tablesToAnalyze.size())
       {
-        analyzeTableInternal((String)tablesToAnalyze.get(i++));
+        analyzeTableInternal(tablesToAnalyze.get(i++));
       }
       tablesToAnalyze.clear();
       i = 0;
       while (i < tablesToReindex.size())
       {
-        reindexTableInternal((String)tablesToReindex.get(i++));
+        reindexTableInternal(tablesToReindex.get(i++));
       }
       tablesToReindex.clear();
     }
@@ -1109,7 +1112,7 @@ public class DBInterfacePostgreSQL exten
   }
   
   /** Abstract method for explaining a query */
-  protected void explainQuery(String query, ArrayList params)
+  protected void explainQuery(String query, List params)
     throws ManifoldCFException
   {
     IResultSet x = executeUncachedQuery("EXPLAIN "+query,params,true,
@@ -1118,7 +1121,7 @@ public class DBInterfacePostgreSQL exten
     while (k < x.getRowCount())
     {
       IResultRow row = x.getRow(k++);
-      Iterator iter = row.getColumns();
+      Iterator<String> iter = row.getColumns();
       String colName = (String)iter.next();
       Logging.db.warn(" Plan: "+row.getValue(colName).toString());
     }
@@ -1161,7 +1164,7 @@ public class DBInterfacePostgreSQL exten
     lockManager.enterWriteCriticalSection(tableStatisticsLock);
     try
     {
-      TableStatistics ts = (TableStatistics)currentAnalyzeStatistics.get(tableName);
+      TableStatistics ts = currentAnalyzeStatistics.get(tableName);
       // Lock this table's statistics files
       lockManager.enterWriteLock(tableStatisticsLock);
       try
@@ -1198,7 +1201,7 @@ public class DBInterfacePostgreSQL exten
     lockManager.enterWriteCriticalSection(tableStatisticsLock);
     try
     {
-      TableStatistics ts = (TableStatistics)currentReindexStatistics.get(tableName);
+      TableStatistics ts = currentReindexStatistics.get(tableName);
       // Lock this table's statistics files
       lockManager.enterWriteLock(tableStatisticsLock);
       try
@@ -1282,7 +1285,7 @@ public class DBInterfacePostgreSQL exten
     lockManager.enterWriteCriticalSection(tableStatisticsLock);
     try
     {
-      Integer threshold = (Integer)reindexThresholds.get(tableName);
+      Integer threshold = reindexThresholds.get(tableName);
       int reindexThreshold;
       if (threshold == null)
       {
@@ -1293,7 +1296,7 @@ public class DBInterfacePostgreSQL exten
       else
         reindexThreshold = threshold.intValue();
       
-      TableStatistics ts = (TableStatistics)currentReindexStatistics.get(tableName);
+      TableStatistics ts = currentReindexStatistics.get(tableName);
       if (ts == null)
       {
         ts = new TableStatistics();
@@ -1339,7 +1342,7 @@ public class DBInterfacePostgreSQL exten
     lockManager.enterWriteCriticalSection(tableStatisticsLock);
     try
     {
-      Integer threshold = (Integer)analyzeThresholds.get(tableName);
+      Integer threshold = analyzeThresholds.get(tableName);
       int analyzeThreshold;
       if (threshold == null)
       {
@@ -1350,7 +1353,7 @@ public class DBInterfacePostgreSQL exten
       else
         analyzeThreshold = threshold.intValue();
       
-      TableStatistics ts = (TableStatistics)currentAnalyzeStatistics.get(tableName);
+      TableStatistics ts = currentAnalyzeStatistics.get(tableName);
       if (ts == null)
       {
         ts = new TableStatistics();

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java Mon May 30 22:00:05 2011
@@ -100,7 +100,7 @@ public class Database
   }
   
   /** Abstract method for explaining a query */
-  protected void explainQuery(String query, ArrayList params)
+  protected void explainQuery(String query, List params)
     throws ManifoldCFException
   {
   }
@@ -137,7 +137,7 @@ public class Database
   *  Pass null if no limits are desired.
   * @return the resultset
   */
-  public IResultSet executeQuery(String query, ArrayList params, StringSet cacheKeys, StringSet invalidateKeys,
+  public IResultSet executeQuery(String query, List params, StringSet cacheKeys, StringSet invalidateKeys,
     String queryClass, boolean needResult, int maxReturn, ResultSpecification spec, ILimitChecker returnLimits)
     throws ManifoldCFException
   {
@@ -391,7 +391,7 @@ public class Database
   {
     protected Connection connection;
     protected String query;
-    protected ArrayList params;
+    protected List params;
     protected boolean bResults;
     protected int maxResults;
     protected ResultSpecification spec;
@@ -399,7 +399,7 @@ public class Database
     protected Throwable exception = null;
     protected IResultSet rval = null;
 
-    public ExecuteQueryThread(Connection connection, String query, ArrayList params, boolean bResults, int maxResults,
+    public ExecuteQueryThread(Connection connection, String query, List params, boolean bResults, int maxResults,
       ResultSpecification spec, ILimitChecker returnLimit)
     {
       super();
@@ -438,7 +438,7 @@ public class Database
   }
 
   /** Do query execution via a subthread, so the primary thread can be interrupted */
-  protected IResultSet executeViaThread(Connection connection, String query, ArrayList params, boolean bResults, int maxResults,
+  protected IResultSet executeViaThread(Connection connection, String query, List params, boolean bResults, int maxResults,
     ResultSpecification spec, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -477,7 +477,7 @@ public class Database
   /** This method does NOT appear in any interface; it is here to
   * service the cache object.
   */
-  protected IResultSet executeUncachedQuery(String query, ArrayList params, boolean bResults, int maxResults,
+  protected IResultSet executeUncachedQuery(String query, List params, boolean bResults, int maxResults,
     ResultSpecification spec, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -526,9 +526,9 @@ public class Database
   * @param query String the query string
   * @param bResults boolean whether to load the resultset or not
   * @param maxResults is the maximum number of results to load: -1 if all
-  * @param params ArrayList if params !=null, use preparedStatement
+  * @param params List if params !=null, use preparedStatement
   */
-  protected IResultSet execute(Connection connection, String query, ArrayList params, boolean bResults, int maxResults,
+  protected IResultSet execute(Connection connection, String query, List params, boolean bResults, int maxResults,
     ResultSpecification spec, ILimitChecker returnLimit)
     throws ManifoldCFException
   {
@@ -761,7 +761,7 @@ public class Database
   }
 
   // pass params to preparedStatement
-  protected static void loadPS(PreparedStatement ps, ArrayList data)
+  protected static void loadPS(PreparedStatement ps, List data)
     throws java.sql.SQLException, ManifoldCFException
   {
     if (data!=null)
@@ -820,7 +820,7 @@ public class Database
 
   /** Clean up parameters after query has been triggered.
   */
-  protected static void cleanupParameters(ArrayList data)
+  protected static void cleanupParameters(List data)
     throws ManifoldCFException
   {
     if (data != null)

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/QueryDescription.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/QueryDescription.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/QueryDescription.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/QueryDescription.java Mon May 30 22:00:05 2011
@@ -31,7 +31,7 @@ public class QueryDescription extends or
   // We don't want to hold onto the actual open database handle!
   protected String databaseName;
   protected String query;
-  protected ArrayList parameters;
+  protected List parameters;
   protected String criticalSectionName = null;
   protected String cacheClassName;
   protected StringSet keys;
@@ -39,7 +39,7 @@ public class QueryDescription extends or
   protected ResultSpecification spec;
   protected ILimitChecker returnLimit;
 
-  public QueryDescription(String databaseName, String query, ArrayList parameters,
+  public QueryDescription(String databaseName, String query, List parameters,
     String cacheClassName, StringSet cacheKeys, int maxReturn, ResultSpecification spec,
     ILimitChecker returnLimit)
   {
@@ -49,7 +49,7 @@ public class QueryDescription extends or
     this.parameters = null;
     if (parameters != null)
     {
-      this.parameters = (ArrayList)parameters.clone();
+      this.parameters = listClone(parameters);
     }
     keys = cacheKeys;
     this.maxReturn = maxReturn;
@@ -74,11 +74,11 @@ public class QueryDescription extends or
     return query;
   }
 
-  public ArrayList getParameters()
+  public List getParameters()
   {
     if (parameters == null)
       return null;
-    return (ArrayList)parameters.clone();
+    return listClone(parameters);
   }
 
   public int getMaxReturn()
@@ -216,6 +216,16 @@ public class QueryDescription extends or
     return criticalSectionName;
   }
 
+  protected static List listClone(List list)
+  {
+    List rval = new ArrayList(list.size());
+    for (Object o : list)
+    {
+      rval.add(o);
+    }
+    return rval;
+  }
+  
 }
 
 

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RRow.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RRow.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RRow.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RRow.java Mon May 30 22:00:05 2011
@@ -27,7 +27,7 @@ public class RRow implements IResultRow
 {
   public static final String _rcsid = "@(#)$Id: RRow.java 988245 2010-08-23 18:39:35Z kwright $";
 
-  protected Map rowData = new HashMap();
+  protected Map<String,Object> rowData = new HashMap<String,Object>();
 
   public RRow()
   {
@@ -49,7 +49,7 @@ public class RRow implements IResultRow
   /** Obtain the set of columns for a row.
   @return an iterator that will list all the (String) column names stored in that row.
   */
-  public Iterator getColumns()
+  public Iterator<String> getColumns()
   {
     return rowData.keySet().iterator();
   }

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RSet.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RSet.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RSet.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/database/RSet.java Mon May 30 22:00:05 2011
@@ -26,7 +26,7 @@ public class RSet implements IResultSet
   public static final String _rcsid = "@(#)$Id: RSet.java 988245 2010-08-23 18:39:35Z kwright $";
 
   // Instance of a result
-  protected ArrayList _rows = new ArrayList();
+  protected List<IResultRow> rows = new ArrayList<IResultRow>();
 
   public RSet()
   {
@@ -36,7 +36,7 @@ public class RSet implements IResultSet
   */
   public void addRow(IResultRow m)
   {
-    _rows.add(m);
+    rows.add(m);
   }
 
   /** Get a specific row in the resultset.
@@ -45,7 +45,7 @@ public class RSet implements IResultSet
   */
   public IResultRow getRow(int rowNumber)
   {
-    return (IResultRow)_rows.get(rowNumber);
+    return rows.get(rowNumber);
   }
 
   /** Get the number of rows in this resultset.
@@ -53,7 +53,7 @@ public class RSet implements IResultSet
   */
   public int getRowCount()
   {
-    return _rows.size();
+    return rows.size();
   }
 
   /** Get an array of all the rows.
@@ -63,11 +63,11 @@ public class RSet implements IResultSet
   */
   public IResultRow[] getRows()
   {
-    IResultRow[] rval = new IResultRow[_rows.size()];
+    IResultRow[] rval = new IResultRow[rows.size()];
     int i = 0;
-    while (i < _rows.size())
+    while (i < rows.size())
     {
-      rval[i] = (IResultRow)_rows.get(i);
+      rval[i] = rows.get(i);
       i++;
     }
     return rval;

Modified: incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ConfigParams.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ConfigParams.java?rev=1129397&r1=1129396&r2=1129397&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ConfigParams.java (original)
+++ incubator/lcf/branches/CONNECTORS-203/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ConfigParams.java Mon May 30 22:00:05 2011
@@ -35,7 +35,7 @@ public class ConfigParams extends Config
   protected final static String ATTR_NAME = "name";
 
   // The parameter map (which stores name/value pairs also listed in the children)
-  protected HashMap params = new HashMap();
+  protected Map<String,String> params = new HashMap<String,String>();
 
   /** Constructor.
   */
@@ -48,14 +48,14 @@ public class ConfigParams extends Config
   *@param map is the initialized (mutable) map describing the name/value configuration parameters.
   * This method of setting up a ConfigParams object will go away when the parameters are all in XML.
   */
-  public ConfigParams(Map map)
+  public ConfigParams(Map<String,String> map)
   {
     super("configuration");
-    Iterator iter = map.keySet().iterator();
+    Iterator<String> iter = map.keySet().iterator();
     while (iter.hasNext())
     {
-      String key = (String)iter.next();
-      String value = (String)map.get(key);
+      String key = iter.next();
+      String value = map.get(key);
       ConfigNode cn = new ConfigNode(PARAMETER_TYPE);
       cn.setAttribute(ATTR_NAME,key);
       cn.setValue(value);
@@ -137,7 +137,7 @@ public class ConfigParams extends Config
   */
   public String getParameter(String key)
   {
-    return (String)params.get(key);
+    return params.get(key);
   }
 
   /** Get an obfuscated parameter value.