Fixed bug in segments with negated components

Change-Id: I520115e4c1fc2ab497c6b5d8a322c7ea54b0a97d
diff --git a/src/main/java/de/ids_mannheim/korap/KrillQuery.java b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
index f6f1c74..abfc16e 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
@@ -1070,6 +1070,7 @@
 
                         for (JsonNode operand : operands) {
                             SpanQueryWrapper part = this._segFromJson(operand);
+                           
                             if (part instanceof SpanAlterQueryWrapper) {
                                 ssegqw.with((SpanAlterQueryWrapper) part);
                             }
@@ -1347,7 +1348,7 @@
                 saqw.or(v);
             };
                 
-			if (match.equals("match:ne")) {
+			if (match.equals("match:ne")) {                
 				if (DEBUG)
 					log.trace("Term is negated");
 
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java
index 4d1c712..cbc715b 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java
@@ -119,9 +119,12 @@
 
     public SpanSegmentQueryWrapper with (SpanAlterQueryWrapper alter) {
         if (!alter.isNull()) {
-            if (alter.isNegative())
-                this.isNegative = true;
-            this.inclusive.add(alter);
+            if (alter.isNegative()) {
+                this.exclusive.add(alter);
+            }
+            else {
+                this.inclusive.add(alter);
+            };
             this.isNull = false;
         };
         return this;
@@ -167,18 +170,14 @@
 
 
     public SpanSegmentQueryWrapper without (SpanAlterQueryWrapper alter) {
-        if (!alter.isNull()) {
-            if (alter.isNegative()) {
-                this.inclusive.add(alter);
-            }
-            else {
-                this.exclusive.add(alter);
-            };
-            this.isNull = false;
-        };
-        return this;
+        if (alter.isNegative()) {
+            alter.setNegative(false);
+        } else {
+            alter.setNegative(true);
+        }
+        return this.with(alter);
     };
-
+   
 
     public SpanSegmentQueryWrapper without (SpanSegmentQueryWrapper seg) {
         if (!seg.isNull()) {