Fixed unordered token distance spans (child spans).

Change-Id: Ied8e0a004c5c42d9d6c0bb9d864c734801fbb141
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedDistanceSpans.java
index e08db92..06227e2 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedDistanceSpans.java
@@ -126,25 +126,23 @@
             if (currentFirstSpan.getStart() < currentSecondSpan.getStart()
                     || isLastCandidateSmaller(currentFirstSpan,
                             currentSecondSpan)) {
-                // log.trace("current target: "
-                // + firstSpanList.get(0).getStart() + " "
-                // + firstSpanList.get(0).getEnd());
-                // System.out.println("candidates:");
-                // for (CandidateSpan cs: secondSpanList) {
-                // System.out.println(cs.getStart() +" "+ cs.getEnd());
-                // }
+//                log.trace("current target: " + firstSpanList.get(0).getStart()
+//                        + " " + firstSpanList.get(0).getEnd());
+//                System.out.println("candidates:");
+//                for (CandidateSpan cs : secondSpanList) {
+//                    System.out.println(cs.getStart() + " " + cs.getEnd());
+//                }
 
                 matchList = findMatches(currentFirstSpan, secondSpanList, true);
                 updateList(firstSpanList);
             }
             else {
-                // log.trace("current target: "
-                // + secondSpanList.get(0).getStart() + " "
-                // + secondSpanList.get(0).getEnd());
-                // System.out.println("candidates:");
-                // for (CandidateSpan cs: firstSpanList) {
-                // System.out.println(cs.getStart() +" "+ cs.getEnd());
-                // }
+//                log.trace("current target: " + secondSpanList.get(0).getStart()
+//                        + " " + secondSpanList.get(0).getEnd());
+//                System.out.println("candidates:");
+//                for (CandidateSpan cs : firstSpanList) {
+//                    System.out.println(cs.getStart() + " " + cs.getEnd());
+//                }
 
                 matchList = findMatches(currentSecondSpan, firstSpanList,
                         false);
@@ -264,7 +262,7 @@
      * @return a candidate span match
      */
     protected CandidateSpan createMatchCandidate (CandidateSpan target,
-            CandidateSpan cs, boolean isDistanceZero) {
+            CandidateSpan cs, boolean isDistanceZero, boolean isTargetFirstSpan) {
 
         int start = Math.min(target.getStart(), cs.getStart());
         int end = Math.max(target.getEnd(), cs.getEnd());
@@ -282,6 +280,14 @@
         }
         CandidateSpan match = new CandidateSpan(start, end, doc, cost,
                 payloads);
+        if (isTargetFirstSpan) {
+            match.setChildSpan(target);
+            match.setSecondChildSpan(cs);
+        }
+        else {
+            match.setChildSpan(cs);
+            match.setSecondChildSpan(target);
+        }
         //match.setChildSpan(cs);
         return match;
     }
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedElementDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedElementDistanceSpans.java
index 0e4b7fa..388e97b 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedElementDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedElementDistanceSpans.java
@@ -261,38 +261,6 @@
         return matches;
     }
 
-
-    /**
-     * Creates a match from the two given spans (target and candidate)
-     * 
-     * @param target
-     *            the target span
-     * @param cs
-     *            the candidate span
-     * @param isDistanceZero
-     *            true if the distance between the two spans are zero,
-     *            false otherwise
-     * @param isTargetFirstSpan
-     *            true is the target span is of the first span, false
-     *            otherwise
-     * @return a match
-     */
-    private CandidateSpan createMatchCandidate (CandidateSpan target,
-            CandidateSpan cs, boolean isDistanceZero,
-            boolean isTargetFirstSpan) {
-        CandidateSpan match = createMatchCandidate(target, cs, isDistanceZero);
-        if (isTargetFirstSpan) {
-            match.setChildSpan(target);
-            match.setSecondChildSpan(cs);
-        }
-        else {
-            match.setChildSpan(cs);
-            match.setSecondChildSpan(target);
-        }
-        return match;
-    }
-
-
     @Override
     protected void updateList (List<CandidateSpan> candidateList) {
         updateElementList(candidateList.get(0).getPosition());
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedTokenDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedTokenDistanceSpans.java
index c0ac7f1..691f978 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedTokenDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedTokenDistanceSpans.java
@@ -127,12 +127,14 @@
 
         List<CandidateSpan> matches = new ArrayList<>();
         int actualDistance;
+        CandidateSpan match;
         for (CandidateSpan cs : candidateList) {
             if (minDistance == 0 &&
             // intersection
                     target.getStart() < cs.getEnd()
                     && cs.getStart() < target.getEnd()) {
-                matches.add(createMatchCandidate(target, cs, true));
+                match = createMatchCandidate(target, cs, true, isTargetFirstSpan);
+                matches.add(match);
                 continue;
             }
 
@@ -146,7 +148,8 @@
             }
             if (minDistance <= actualDistance
                     && actualDistance <= maxDistance) {
-                matches.add(createMatchCandidate(target, cs, false));
+                match = createMatchCandidate(target, cs, false, isTargetFirstSpan);
+                matches.add(match);
             }
         }
         return matches;