You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by st...@apache.org on 2013/07/18 04:38:26 UTC

svn commit: r1504347 - /ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/CompareFeatureStructures.java

Author: stevenbethard
Date: Thu Jul 18 02:38:25 2013
New Revision: 1504347

URL: http://svn.apache.org/r1504347
Log:
CTAKES-217: Fixes bug where printing of deltas was repeating some of the inserted/deleted lines

Modified:
    ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/CompareFeatureStructures.java

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/CompareFeatureStructures.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/CompareFeatureStructures.java?rev=1504347&r1=1504346&r2=1504347&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/CompareFeatureStructures.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/CompareFeatureStructures.java Thu Jul 18 02:38:25 2013
@@ -4,6 +4,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
 import javax.annotation.Nullable;
 
@@ -26,6 +27,7 @@ import com.google.common.collect.Iterato
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Ordering;
+import com.google.common.collect.Sets;
 import com.lexicalscope.jewel.cli.CliFactory;
 import com.lexicalscope.jewel.cli.Option;
 
@@ -98,7 +100,6 @@ public class CompareFeatureStructures {
                 case DELETE:
                 case INSERT:
                   log(fsDelta);
-                  log("=== fsDelta complete ===\n");
                   break;
                 case CHANGE:
                   List<String> originalLines = toLines(fsDelta.getOriginal().getLines());
@@ -106,14 +107,19 @@ public class CompareFeatureStructures {
                   Patch<String> linesPatch = stringDiff.diff(originalLines, revisedLines);
                   ListMultimap<Integer, String> deletes = ArrayListMultimap.create();
                   ListMultimap<Integer, String> inserts = ArrayListMultimap.create();
+                  Set<Integer> skips = Sets.newHashSet();
                   for (Delta<String> linesDelta : linesPatch.getDeltas()) {
                     Chunk<String> originalChunk = linesDelta.getOriginal();
                     Chunk<String> revisedChunk = linesDelta.getRevised();
-                    deletes.putAll(originalChunk.getPosition(), originalChunk.getLines());
-                    inserts.putAll(originalChunk.getPosition(), revisedChunk.getLines());
+                    int start = originalChunk.getPosition();
+                    deletes.putAll(start, originalChunk.getLines());
+                    inserts.putAll(start, revisedChunk.getLines());
+                    for (int i = start; i < start + originalChunk.size(); ++i) {
+                      skips.add(i);
+                    }
                   }
                   for (int i = 0; i < originalLines.size(); ++i) {
-                    if (!deletes.containsKey(i) && !inserts.containsKey(i)) {
+                    if (!skips.contains(i)) {
                       log(" %s\n", originalLines.get(i));
                     }
                     for (String line : deletes.get(i)) {