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);