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:16 UTC
[08/47] olingo-odata4 git commit: [OLINGO-568] Removed not necessary
code and enums
[OLINGO-568] Removed not necessary code and enums
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/96483ae5
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/96483ae5
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/96483ae5
Branch: refs/heads/OLINGO-811_CountForExpand
Commit: 96483ae559ea8d9dc0624b68876a4045102ba659
Parents: 43bc49f
Author: mibo <mi...@apache.org>
Authored: Mon Nov 9 20:33:05 2015 +0100
Committer: mibo <mi...@apache.org>
Committed: Mon Nov 9 20:33:05 2015 +0100
----------------------------------------------------------------------
.../uri/parser/search/SearchQueryToken.java | 2 +-
.../core/uri/parser/search/SearchTokenizer.java | 61 +++++++-------------
.../uri/parser/search/SearchTokenizerTest.java | 21 ++++---
3 files changed, 36 insertions(+), 48 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/96483ae5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchQueryToken.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchQueryToken.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchQueryToken.java
index a08c1a2..eb1a009 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchQueryToken.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchQueryToken.java
@@ -19,7 +19,7 @@
package org.apache.olingo.server.core.uri.parser.search;
public interface SearchQueryToken {
- enum Token {OPEN, BWS, RWS, TERM, SEARCH_EXPRESSION, NOT, AND, OR, WORD, PHRASE, CLOSE}
+ enum Token {OPEN, TERM, NOT, AND, OR, WORD, PHRASE, CLOSE}
Token getToken();
String getLiteral();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/96483ae5/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 f62e0f4..12af609 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
@@ -44,7 +44,6 @@ public class SearchTokenizer {
private Token token = null;
private boolean finished = false;
- protected static final char EOF = 0x03;
protected static final char QUOTATION_MARK = '\"';
protected static final char CHAR_N = 'N';
protected static final char CHAR_O = 'O';
@@ -82,8 +81,8 @@ public class SearchTokenizer {
return token;
}
- public boolean close() {
- return nextChar(EOF).isFinished();
+ public State close() {
+ return this;
}
static boolean isAllowedChar(final char character) {
@@ -114,10 +113,6 @@ public class SearchTokenizer {
|| character == '=';
}
- static boolean isEof(final char character) {
- return character == EOF;
- }
-
//BWS = *( SP / HTAB / "%20" / "%09" ) ; "bad" whitespace
//RWS = 1*( SP / HTAB / "%20" / "%09" ) ; "required" whitespace
static boolean isWhitespace(final char character) {
@@ -138,7 +133,7 @@ public class SearchTokenizer {
}
private static abstract class LiteralState extends State {
- private final StringBuilder literal = new StringBuilder();
+ protected final StringBuilder literal = new StringBuilder();
public LiteralState(Token t) {
super(t);
}
@@ -170,7 +165,7 @@ public class SearchTokenizer {
private class SearchExpressionState extends LiteralState {
public SearchExpressionState() {
- super(Token.SEARCH_EXPRESSION);
+ super(null);
}
@Override
public State nextChar(char c) {
@@ -180,19 +175,12 @@ public class SearchTokenizer {
return new RwsImplicitAndState();
} else if(c == CHAR_CLOSE) {
return new CloseState();
- } else if(isWhitespace(c)) {
- return new AndState(c);
} else {
return new SearchTermState().init(c);
}
}
@Override
- public boolean close() {
- return true;
- }
-
- @Override
public State init(char c) {
return nextChar(c);
}
@@ -237,11 +225,14 @@ public class SearchTokenizer {
} else if (isWhitespace(c)) {
finish();
return new RwsImplicitAndState();
- } else if (isEof(c)) {
- return finish();
}
return forbidden(c);
}
+
+ @Override
+ public State close() {
+ return finish();
+ }
}
private class SearchPhraseState extends LiteralState {
@@ -254,7 +245,7 @@ public class SearchTokenizer {
@Override
public State nextChar(char c) {
- if(isFinished() && !isEof(c)) {
+ if(isFinished()) {
return new SearchExpressionState().init(c);
} else if (isAllowedPhrase(c)) {
return allowed(c);
@@ -272,8 +263,6 @@ public class SearchTokenizer {
return new CloseState();
}
return allowed(c);
- } else if (isEof(c)) {
- return finish();
}
return forbidden(c);
}
@@ -302,11 +291,7 @@ public class SearchTokenizer {
@Override
public State nextChar(char c) {
- if (isEof(c)) {
- return finish();
- } else {
- return new SearchExpressionState().init(c);
- }
+ return new SearchExpressionState().init(c);
}
}
@@ -319,9 +304,9 @@ public class SearchTokenizer {
}
@Override
public State nextChar(char c) {
- if (getLiteral().length() == 1 && (c == CHAR_O)) {
+ if (getLiteral().length() == 1 && c == CHAR_O) {
return allowed(c);
- } else if (getLiteral().length() == 2 && (c == CHAR_T)) {
+ } else if (getLiteral().length() == 2 && c == CHAR_T) {
return allowed(c);
} else if(getLiteral().length() == 3 && isWhitespace(c)) {
finish();
@@ -341,11 +326,11 @@ public class SearchTokenizer {
}
@Override
public State nextChar(char c) {
- if (getLiteral().length() == 1 && (c == CHAR_N)) {
+ if (literal.length() == 1 && c == CHAR_N) {
return allowed(c);
- } else if (getLiteral().length() == 2 && (c == CHAR_D)) {
+ } else if (literal.length() == 2 && c == CHAR_D) {
return allowed(c);
- } else if(getLiteral().length() == 3 && isWhitespace(c)) {
+ } else if(literal.length() == 3 && isWhitespace(c)) {
finish();
return new BeforeSearchExpressionRwsState();
} else {
@@ -363,9 +348,9 @@ public class SearchTokenizer {
}
@Override
public State nextChar(char c) {
- if (getLiteral().length() == 1 && (c == CHAR_R)) {
+ if (literal.length() == 1 && (c == CHAR_R)) {
return allowed(c);
- } else if(getLiteral().length() == 2 && isWhitespace(c)) {
+ } else if(literal.length() == 2 && isWhitespace(c)) {
finish();
return new BeforeSearchExpressionRwsState();
} else {
@@ -378,7 +363,7 @@ public class SearchTokenizer {
// RWS [ 'AND' RWS ] searchExpr
private class BeforeSearchExpressionRwsState extends State {
public BeforeSearchExpressionRwsState() {
- super(Token.RWS);
+ super(null);
}
@Override
public State nextChar(char c) {
@@ -424,12 +409,8 @@ public class SearchTokenizer {
state = next;
}
- if(state.close()) {
- if(state.isFinished()) {
- states.add(state);
- }
- } else {
- throw new IllegalStateException("State: " + state + " not finished and list is: " + states.toString());
+ if(state.close().isFinished()) {
+ states.add(state);
}
return states;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/96483ae5/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 e53b6b2..29287cd 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
@@ -287,15 +287,22 @@ public class SearchTokenizerTest {
Assert.assertEquals(AND, it.next().getToken());
Assert.assertEquals(WORD, it.next().getToken());
- result = tokenizer.tokenize("abc OR orsomething");
- log(result.toString());
- it = result.iterator();
- Assert.assertEquals(WORD, it.next().getToken());
- Assert.assertEquals(OR, it.next().getToken());
- Assert.assertEquals(WORD, it.next().getToken());
-
SearchValidator.init("abc AND ANDsomething")
.addExpected(WORD, AND, WORD).validate();
+
+ // FIXME (mibo): issue with implicit and
+// SearchValidator.init("abc ANDsomething").enableLogging()
+// .addExpected(WORD, AND, WORD).validate();
+
+// SearchValidator.init("abc ORsomething")
+// .addExpected(WORD, AND, WORD).validate();
+
+ SearchValidator.init("abc OR orsomething")
+ .addExpected(WORD, OR, WORD).validate();
+
+ SearchValidator.init("abc OR ORsomething")
+ .addExpected(WORD, OR, WORD).validate();
+
}
@Test