Author: kwright
Date: Mon Mar 22 00:57:24 2021
New Revision: 1887913

URL: http://svn.apache.org/viewvc?rev=1887913&view=rev
Log:
Refactor carrydown class to clarify what it is doing

Modified:
    
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Carrydown.java

Modified: 
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Carrydown.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Carrydown.java?rev=1887913&r1=1887912&r2=1887913&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Carrydown.java
 (original)
+++ 
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Carrydown.java
 Mon Mar 22 00:57:24 2021
@@ -271,8 +271,8 @@ public class Carrydown extends org.apach
   {
 
     // Need to go into a transaction because we need to distinguish between 
update and insert.
-    HashMap duplicateRemoval = new HashMap();
-    HashMap presentMap = new HashMap();
+    Set<ValueRecord> duplicateRemoval = new HashSet<>();
+    Set<ValueRecord> presentSet = new HashSet<>();
 
     int maxClause = getMaxOrClause();
     StringBuilder sb = new StringBuilder();
@@ -311,13 +311,13 @@ public class Carrydown extends org.apach
             // Build a hash record
             ValueRecord vr = new ValueRecord(childDocumentIDHash,
               documentDataName,documentDataValueHash,documentDataValue);
-            if (duplicateRemoval.get(vr) != null)
+            if (duplicateRemoval.contains(vr))
               continue;
-            duplicateRemoval.put(vr,vr);
+            duplicateRemoval.add(vr);
             if (i == maxClause)
             {
               // Do the query and record the results
-              performExistsCheck(presentMap,sb.toString(),list);
+              performExistsCheck(presentSet,sb.toString(),list);
               i = 0;
               sb.setLength(0);
               list.clear();
@@ -341,18 +341,18 @@ public class Carrydown extends org.apach
       }
     }
     if (i > 0)
-      performExistsCheck(presentMap,sb.toString(),list);
+      performExistsCheck(presentSet,sb.toString(),list);
 
     // Go through the list again, and based on the results above, decide to do 
either an insert or
     // an update.  Keep track of this information also, so we can build the 
return array when done.
 
-    HashMap insertHappened = new HashMap();
+    Map<String, Boolean> insertHappened = new HashMap<>();
 
     int j = 0;
-    Iterator iter = duplicateRemoval.keySet().iterator();
+    Iterator<ValueRecord> iter = duplicateRemoval.iterator();
     while (iter.hasNext())
     {
-      ValueRecord childDocumentRecord = (ValueRecord)iter.next();
+      ValueRecord childDocumentRecord = iter.next();
 
       String childDocumentIDHash = childDocumentRecord.getDocumentIDHash();
 
@@ -361,7 +361,7 @@ public class Carrydown extends org.apach
       String dataValueHash = childDocumentRecord.getDataValueHash();
       Object dataValue = childDocumentRecord.getDataValue();
 
-      if (presentMap.get(childDocumentRecord) == null)
+      if (!presentSet.contains(childDocumentRecord))
       {
         map.put(jobIDField,jobID);
         map.put(parentIDHashField,parentDocumentIDHash);
@@ -392,27 +392,6 @@ public class Carrydown extends org.apach
             new NullCheckClause(dataValueHashField,true):
             new UnitaryClause(dataValueHashField,dataValueHash)}));
 
-        /*
-        sb.append(jobIDField).append("=? AND ")
-          .append(parentIDHashField).append("=? AND ")
-          .append(childIDHashField).append("=? AND ")
-          .append(dataNameField).append("=? AND ");
-
-        updateList.add(jobID);
-        updateList.add(parentDocumentIDHash);
-        updateList.add(childDocumentIDHash);
-        updateList.add(dataName);
-        if (dataValueHash != null)
-        {
-          sb.append(dataValueHashField).append("=?");
-          updateList.add(dataValueHash);
-        }
-        else
-        {
-          sb.append(dataValueHashField).append(" IS NULL");
-        }
-        */
-            
         map.put(newField,statusToString(ISNEW_EXISTING));
         map.put(processIDField,processID);
         performUpdate(map,sb.toString(),updateList,null);
@@ -432,7 +411,7 @@ public class Carrydown extends org.apach
   }
 
   /** Do the exists check, in batch. */
-  protected void performExistsCheck(Map presentMap, String query, ArrayList 
list)
+  protected void performExistsCheck(Set<ValueRecord> presentSet, String query, 
ArrayList list)
     throws ManifoldCFException
   {
     // Note well: presentMap is only checked for the *existence* of a record, 
so we do not need to populate the datavalue field!
@@ -448,7 +427,7 @@ public class Carrydown extends org.apach
       //String dataValue = (String)row.getValue(dataValueField);
       ValueRecord vr = new 
ValueRecord(documentIDHash,dataName,dataValueHash,null);
 
-      presentMap.put(vr,vr);
+      presentSet.add(vr);
     }
   }
   


Reply via email to