You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2015/11/28 06:30:49 UTC

[41/47] olingo-odata4 git commit: [OLINGO-568] Minor code clean up

[OLINGO-568] Minor code clean up


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/ee3501dd
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/ee3501dd
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/ee3501dd

Branch: refs/heads/OLINGO-811_CountForExpand
Commit: ee3501dd87e6082ba8c32fb163883a7e77682bcc
Parents: ca7059c
Author: Michael Bolz <mi...@sap.com>
Authored: Thu Nov 19 07:59:08 2015 +0100
Committer: Michael Bolz <mi...@sap.com>
Committed: Thu Nov 19 07:59:08 2015 +0100

----------------------------------------------------------------------
 .../core/uri/parser/search/SearchTokenizer.java | 51 ++++++++------------
 .../uri/parser/search/SearchTokenizerTest.java  |  3 +-
 2 files changed, 21 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ee3501dd/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
index f5ee8f7..dd65852 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
@@ -54,9 +54,15 @@ public class SearchTokenizer {
     protected static final char CHAR_CLOSE = ')';
     protected static final char CHAR_OPEN = '(';
 
+    public State() {
+    }
     public State(Token t) {
       token = t;
     }
+    public State(Token t, boolean finished) {
+      this(t);
+      this.finished = finished;
+    }
 
     protected abstract State nextChar(char c) throws SearchTokenizerException;
 
@@ -91,7 +97,7 @@ public class SearchTokenizer {
       return token;
     }
 
-    public State close() {
+    public State close() throws SearchTokenizerException {
       return this;
     }
 
@@ -260,11 +266,9 @@ public class SearchTokenizer {
 
   private static abstract class LiteralState extends State {
     protected final StringBuilder literal = new StringBuilder();
-
-    public LiteralState(Token t) {
-      super(t);
+    public LiteralState() {
+      super();
     }
-
     public LiteralState(Token t, char c) throws SearchTokenizerException {
       super(t);
       init(c);
@@ -296,10 +300,6 @@ public class SearchTokenizer {
   }
 
   private class SearchExpressionState extends LiteralState {
-    public SearchExpressionState() {
-      super(null);
-    }
-
     @Override
     public State nextChar(char c) throws SearchTokenizerException {
       if (c == CHAR_OPEN) {
@@ -320,10 +320,6 @@ public class SearchTokenizer {
   }
 
   private class SearchTermState extends LiteralState {
-    public SearchTermState() {
-      super(null);
-    }
-
     @Override
     public State nextChar(char c) throws SearchTokenizerException {
       if (c == CHAR_N) {
@@ -428,7 +424,7 @@ public class SearchTokenizer {
     }
 
     @Override
-    public State close() {
+    public State close() throws SearchTokenizerException {
       if(closed) {
         return finish();
       }
@@ -438,8 +434,7 @@ public class SearchTokenizer {
 
   private class OpenState extends State {
     public OpenState() {
-      super(Token.OPEN);
-      finish();
+      super(Token.OPEN, true);
     }
 
     @Override
@@ -454,8 +449,7 @@ public class SearchTokenizer {
 
   private class CloseState extends State {
     public CloseState() {
-      super(Token.CLOSE);
-      finish();
+      super(Token.CLOSE, true);
     }
 
     @Override
@@ -484,6 +478,13 @@ public class SearchTokenizer {
       }
       return forbidden(c);
     }
+    @Override
+    public State close() throws SearchTokenizerException {
+      if(Token.NOT.name().equals(literal.toString())) {
+        return finish();
+      }
+      return super.close();
+    }
   }
 
   private class AndState extends LiteralState {
@@ -533,10 +534,6 @@ public class SearchTokenizer {
   // RWS 'OR' RWS searchExpr
   // RWS [ 'AND' RWS ] searchExpr
   private class BeforeSearchExpressionRwsState extends State {
-    public BeforeSearchExpressionRwsState() {
-      super(null);
-    }
-
     @Override
     public State nextChar(char c) throws SearchTokenizerException {
       if (isWhitespace(c)) {
@@ -548,15 +545,11 @@ public class SearchTokenizer {
   }
 
   private class BeforePhraseOrWordRwsState extends State {
-    public BeforePhraseOrWordRwsState() {
-      super(null);
-    }
-
     @Override
     public State nextChar(char c) throws SearchTokenizerException {
       if (isWhitespace(c)) {
         return allowed(c);
-      } else if (c == '"') {
+      } else if (c == QUOTATION_MARK) {
         return new SearchPhraseState(c);
       } else {
         return new SearchWordState(c);
@@ -565,10 +558,6 @@ public class SearchTokenizer {
   }
 
   private class RwsState extends State {
-    public RwsState() {
-      super(null);
-    }
-
     @Override
     public State nextChar(char c) throws SearchTokenizerException {
       if (isWhitespace(c)) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ee3501dd/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
index 2fdfe1e..c5a27f2 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
@@ -420,10 +420,9 @@ public class SearchTokenizerTest {
 
   @Test
   public void tokenizeInvalidQueryForParser() throws SearchTokenizerException {
-//    TokenizerValidator.init("NOT").validate(NOT);
-
     TokenizerValidator.init("AND").validate(AND);
     TokenizerValidator.init("OR").validate(OR);
+    TokenizerValidator.init("NOT").validate(NOT);
     TokenizerValidator.init("NOT AND").validate(NOT, AND);
     TokenizerValidator.init("NOT OR").validate(NOT, OR);
     TokenizerValidator.init("NOT NOT").validate(NOT, NOT);