Fixed matchID

Change-Id: Ice31fae8802e95a7dbd4afe6cb08cb46220e53be
diff --git a/src/main/java/de/ids_mannheim/korap/response/match/DocIdentifier.java b/src/main/java/de/ids_mannheim/korap/response/match/DocIdentifier.java
index 2526e94..9b16727 100644
--- a/src/main/java/de/ids_mannheim/korap/response/match/DocIdentifier.java
+++ b/src/main/java/de/ids_mannheim/korap/response/match/DocIdentifier.java
@@ -4,28 +4,45 @@
 import java.util.regex.*;
 
 
+// TODO: This should only use textSigle!
+
 public class DocIdentifier {
-    protected String corpusID, docID;
+    protected String
+        textSigle,
+        corpusID, // LEGACY
+        docID;    // LEGACY
 
-
+    // Legacy
     public String getCorpusID () {
         return this.corpusID;
     };
 
 
+    // Legacy
     public void setCorpusID (String id) {
         if (id != null && !id.contains("!"))
             this.corpusID = id;
     };
 
 
+    // Legacy
     public String getDocID () {
         return this.docID;
     };
 
 
+    // Legacy
     public void setDocID (String id) {
         if (id != null && !id.contains("!"))
             this.docID = id;
     };
+
+    public String getTextSigle () {
+        return this.textSigle;
+    };
+
+    public void setTextSigle (String id) {
+        if (id != null && !id.contains("!"))
+            this.textSigle = id;
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/response/match/MatchIdentifier.java b/src/main/java/de/ids_mannheim/korap/response/match/MatchIdentifier.java
index 5f13a3b..7247d17 100644
--- a/src/main/java/de/ids_mannheim/korap/response/match/MatchIdentifier.java
+++ b/src/main/java/de/ids_mannheim/korap/response/match/MatchIdentifier.java
@@ -8,7 +8,7 @@
 
     private ArrayList<int[]> pos = new ArrayList<>(8);
 
-    Pattern idRegex = Pattern.compile("^match-(?:([^!]+?)!)?"
+    Pattern idRegex = Pattern.compile("^match-(?:([^!]+?)[!\\.])?"
             + "([^!]+)-p([0-9]+)-([0-9]+)"
             + "((?:\\(-?[0-9]+\\)-?[0-9]+--?[0-9]+)*)" + "(?:c.+?)?$");
     Pattern posRegex = Pattern.compile("\\(([0-9]+)\\)([0-9]+)-([0-9]+)");
@@ -22,6 +22,10 @@
         if (matcher.matches()) {
             this.setCorpusID(matcher.group(1));
             this.setDocID(matcher.group(2));
+            // TODO! FIXME!
+
+            this.setTextSigle(this.getCorpusID() + "." + this.getDocID());
+
             this.setStartPos(Integer.parseInt(matcher.group(3)));
             this.setEndPos(Integer.parseInt(matcher.group(4)));
 
@@ -71,19 +75,26 @@
 
 
     public String toString () {
-        if (this.docID == null)
-            return null;
-
         StringBuilder sb = new StringBuilder("match-");
 
+        if (this.docID == null) {
+            if (this.textSigle == null)
+                return null;
+
+            sb.append(this.textSigle);
+        }
+
         // Get prefix string corpus/doc
-        if (this.corpusID != null)
-            sb.append(this.corpusID).append('!');
+        // LEGACY
+        else if (this.corpusID != null) {
+            sb.append(this.corpusID).append('!').append(this.docID);
+        }
+        else {
+            sb.append(this.docID);
+        };
 
-        sb.append(this.docID);
-
-        sb.append('-');
-        sb.append(this.getPositionString());
+        sb.append('-')
+            .append(this.getPositionString());
         return sb.toString();
     };