You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2016/01/12 14:08:11 UTC
[10/30] olingo-odata4 git commit: [OLINGO-834] clean-up Expression
implementations
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/BinaryImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/BinaryImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/BinaryImpl.java
index c3530c0..3f2e8f2 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/BinaryImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/BinaryImpl.java
@@ -25,21 +25,16 @@ import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitException;
import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitor;
-public class BinaryImpl extends ExpressionImpl implements Binary {
+public class BinaryImpl implements Binary {
- private BinaryOperatorKind operator;
- private ExpressionImpl left;
- private ExpressionImpl right;
+ private final Expression left;
+ private final BinaryOperatorKind operator;
+ private final Expression right;
- public BinaryImpl() {
- // TODO: Delete
- }
-
- public BinaryImpl(Expression left, BinaryOperatorKind operator, Expression right) {
- // TODO:DeleteCast
- this.left = (ExpressionImpl) left;
+ public BinaryImpl(final Expression left, final BinaryOperatorKind operator, final Expression right) {
+ this.left = left;
this.operator = operator;
- this.right = (ExpressionImpl) right;
+ this.right = right;
}
@Override
@@ -47,30 +42,16 @@ public class BinaryImpl extends ExpressionImpl implements Binary {
return operator;
}
- public Binary setOperator(final BinaryOperatorKind operator) {
- this.operator = operator;
- return this;
- }
-
@Override
public Expression getLeftOperand() {
return left;
}
- public void setLeftOperand(final ExpressionImpl operand) {
- left = operand;
- }
-
@Override
public Expression getRightOperand() {
return right;
}
- public void setRightOperand(final ExpressionImpl operand) {
- right = operand;
-
- }
-
@Override
public <T> T accept(final ExpressionVisitor<T> visitor) throws ExpressionVisitException, ODataApplicationException {
T left = this.left.accept(visitor);
@@ -82,5 +63,4 @@ public class BinaryImpl extends ExpressionImpl implements Binary {
public String toString() {
return "{" + left + " " + operator.name() + " " + right + '}';
}
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/EnumerationImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/EnumerationImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/EnumerationImpl.java
index 8f7df3a..256b8d1 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/EnumerationImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/EnumerationImpl.java
@@ -18,7 +18,7 @@
*/
package org.apache.olingo.server.core.uri.queryoption.expression;
-import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.apache.olingo.commons.api.edm.EdmEnumType;
@@ -27,19 +27,14 @@ import org.apache.olingo.server.api.uri.queryoption.expression.Enumeration;
import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitException;
import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitor;
-public class EnumerationImpl extends ExpressionImpl implements Enumeration {
+public class EnumerationImpl implements Enumeration {
- private EdmEnumType type;
- private List<String> values = new ArrayList<String>();
+ private final EdmEnumType type;
+ private final List<String> values;
- @Override
- public List<String> getValues() {
- return values;
- }
-
- public EnumerationImpl addValue(final String enumValue) {
- values.add(enumValue);
- return this;
+ public EnumerationImpl(final EdmEnumType type, final List<String> values) {
+ this.type = type;
+ this.values = values;
}
@Override
@@ -47,14 +42,15 @@ public class EnumerationImpl extends ExpressionImpl implements Enumeration {
return type;
}
- public EnumerationImpl setType(final EdmEnumType type) {
- this.type = type;
- return this;
+ @Override
+ public List<String> getValues() {
+ return values == null ?
+ Collections.<String> emptyList() :
+ Collections.unmodifiableList(values);
}
@Override
public <T> T accept(final ExpressionVisitor<T> visitor) throws ExpressionVisitException, ODataApplicationException {
return visitor.visitEnum(type, values);
}
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionImpl.java
deleted file mode 100644
index c9cc707..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.core.uri.queryoption.expression;
-
-import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
-
-public abstract class ExpressionImpl implements Expression {
- // No additional methods needed for now.
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LambdaRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LambdaRefImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LambdaRefImpl.java
index 8198204..824943a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LambdaRefImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LambdaRefImpl.java
@@ -23,23 +23,21 @@ import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitEx
import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitor;
import org.apache.olingo.server.api.uri.queryoption.expression.LambdaRef;
-public class LambdaRefImpl extends ExpressionImpl implements LambdaRef {
+public class LambdaRefImpl implements LambdaRef {
- private String variableText;
+ private final String variableText;
+
+ public LambdaRefImpl(final String text) {
+ variableText = text;
+ }
@Override
public String getVariableName() {
return variableText;
}
- public LambdaRefImpl setVariableText(final String text) {
- variableText = text;
- return this;
- }
-
@Override
public <T> T accept(final ExpressionVisitor<T> visitor) throws ExpressionVisitException, ODataApplicationException {
return visitor.visitLambdaReference(variableText);
}
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LiteralImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LiteralImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LiteralImpl.java
index e275fdd..8a3cc8a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LiteralImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LiteralImpl.java
@@ -24,16 +24,12 @@ import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitEx
import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitor;
import org.apache.olingo.server.api.uri.queryoption.expression.Literal;
-public class LiteralImpl extends ExpressionImpl implements Literal {
+public class LiteralImpl implements Literal {
- private String text;
- private EdmType type;
+ private final String text;
+ private final EdmType type;
- public LiteralImpl() {
-
- }
-
- public LiteralImpl(String text, EdmType type) {
+ public LiteralImpl(final String text, final EdmType type) {
this.text = text;
this.type = type;
}
@@ -43,21 +39,11 @@ public class LiteralImpl extends ExpressionImpl implements Literal {
return text;
}
- public LiteralImpl setText(final String text) {
- this.text = text;
- return this;
- }
-
@Override
public EdmType getType() {
return type;
}
- public LiteralImpl setType(final EdmType type) {
- this.type = type;
- return this;
- }
-
@Override
public <T> T accept(final ExpressionVisitor<T> visitor) throws ExpressionVisitException, ODataApplicationException {
return visitor.visitLiteral(this);
@@ -65,7 +51,6 @@ public class LiteralImpl extends ExpressionImpl implements Literal {
@Override
public String toString() {
- return "" + text;
+ return text == null ? "" : text;
}
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MemberImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MemberImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MemberImpl.java
index 5f6162f..a71e382 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MemberImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MemberImpl.java
@@ -30,19 +30,24 @@ import org.apache.olingo.server.core.uri.UriResourceImpl;
import org.apache.olingo.server.core.uri.UriResourceTypedImpl;
import org.apache.olingo.server.core.uri.UriResourceWithKeysImpl;
-public class MemberImpl extends ExpressionImpl implements Member {
+public class MemberImpl implements Member {
- private UriInfoResource path;
- private EdmType startTypeFilter;
+ private final UriInfoResource path;
+ private final EdmType startTypeFilter;
+
+ public MemberImpl(final UriInfoResource path, final EdmType startTypeFilter) {
+ this.path = path;
+ this.startTypeFilter = startTypeFilter;
+ }
@Override
public UriInfoResource getResourcePath() {
return path;
}
- public Member setResourcePath(final UriInfoResource pathSegments) {
- path = pathSegments;
- return this;
+ @Override
+ public EdmType getStartTypeFilter() {
+ return startTypeFilter;
}
@Override
@@ -89,15 +94,4 @@ public class MemberImpl extends ExpressionImpl implements Member {
}
return false;
}
-
- @Override
- public EdmType getStartTypeFilter() {
- return startTypeFilter;
- }
-
- public MemberImpl setTypeFilter(final EdmType startTypeFilter) {
- this.startTypeFilter = startTypeFilter;
- return this;
- }
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MethodImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MethodImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MethodImpl.java
index 8175c85..1c8ce64 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MethodImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MethodImpl.java
@@ -19,6 +19,7 @@
package org.apache.olingo.server.core.uri.queryoption.expression;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.apache.olingo.server.api.ODataApplicationException;
@@ -28,17 +29,14 @@ import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitor
import org.apache.olingo.server.api.uri.queryoption.expression.Method;
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind;
-public class MethodImpl extends ExpressionImpl implements Method {
+public class MethodImpl implements Method {
- private MethodKind method;
- private List<ExpressionImpl> parameters = new ArrayList<ExpressionImpl>();
+ private final MethodKind method;
+ private final List<Expression> parameters;
- public MethodImpl() {
- // TODO: Delete constructor
- }
-
- public MethodImpl(MethodKind method) {
+ public MethodImpl(final MethodKind method, final List<Expression> parameters) {
this.method = method;
+ this.parameters = parameters;
}
@Override
@@ -46,48 +44,26 @@ public class MethodImpl extends ExpressionImpl implements Method {
return method;
}
- public MethodImpl setMethod(final MethodKind methodCalls) {
- method = methodCalls;
- return this;
- }
-
@Override
public List<Expression> getParameters() {
- List<Expression> list = new ArrayList<Expression>();
- for (ExpressionImpl item : parameters) {
- list.add(item);
- }
- return list;
- }
-
- public MethodImpl addParameter(final ExpressionImpl readCommonExpression) {
- parameters.add(readCommonExpression);
- return this;
+ return parameters == null ?
+ Collections.<Expression> emptyList() :
+ Collections.unmodifiableList(parameters);
}
@Override
public <T> T accept(final ExpressionVisitor<T> visitor) throws ExpressionVisitException, ODataApplicationException {
List<T> userParameters = new ArrayList<T>();
- for (ExpressionImpl parameter : parameters) {
- userParameters.add(parameter.accept(visitor));
+ if (parameters != null) {
+ for (final Expression parameter : parameters) {
+ userParameters.add(parameter.accept(visitor));
+ }
}
return visitor.visitMethodCall(method, userParameters);
}
@Override
public String toString() {
- String parametersString = "[";
- boolean first = true;
- for (Expression exp : parameters) {
- if(first){
- first = false;
- parametersString = parametersString + exp.toString();
- }else {
- parametersString = parametersString + ", " + exp.toString();
- }
- }
- parametersString = parametersString + "]";
- return "{" + method + " " + parametersString + "}";
+ return "{" + method + " " + parameters + "}";
}
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/TypeLiteralImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/TypeLiteralImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/TypeLiteralImpl.java
index f5f6f06..336c203 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/TypeLiteralImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/TypeLiteralImpl.java
@@ -24,23 +24,21 @@ import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitEx
import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitor;
import org.apache.olingo.server.api.uri.queryoption.expression.TypeLiteral;
-public class TypeLiteralImpl extends ExpressionImpl implements TypeLiteral {
+public class TypeLiteralImpl implements TypeLiteral {
- private EdmType type;
+ private final EdmType type;
+
+ public TypeLiteralImpl(final EdmType type) {
+ this.type = type;
+ }
@Override
public EdmType getType() {
return type;
}
- public TypeLiteralImpl setType(final EdmType type) {
- this.type = type;
- return this;
- }
-
@Override
public <T> T accept(final ExpressionVisitor<T> visitor) throws ExpressionVisitException, ODataApplicationException {
return visitor.visitTypeLiteral(type);
}
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/UnaryImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/UnaryImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/UnaryImpl.java
index f1edf91..2438d27 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/UnaryImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/UnaryImpl.java
@@ -25,18 +25,14 @@ import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitor
import org.apache.olingo.server.api.uri.queryoption.expression.Unary;
import org.apache.olingo.server.api.uri.queryoption.expression.UnaryOperatorKind;
-public class UnaryImpl extends ExpressionImpl implements Unary {
+public class UnaryImpl implements Unary {
- private UnaryOperatorKind operator;
- private ExpressionImpl expression;
+ private final UnaryOperatorKind operator;
+ private final Expression expression;
- public UnaryImpl() {
-
- }
-
- public UnaryImpl(UnaryOperatorKind operator, Expression expression) {
+ public UnaryImpl(final UnaryOperatorKind operator, final Expression expression) {
this.operator = operator;
- this.expression = (ExpressionImpl) expression;
+ this.expression = expression;
}
@Override
@@ -44,19 +40,11 @@ public class UnaryImpl extends ExpressionImpl implements Unary {
return operator;
}
- public void setOperator(final UnaryOperatorKind operator) {
- this.operator = operator;
- }
-
@Override
public Expression getOperand() {
return expression;
}
- public void setOperand(final ExpressionImpl expression) {
- this.expression = expression;
- }
-
@Override
public <T> T accept(final ExpressionVisitor<T> visitor) throws ExpressionVisitException, ODataApplicationException {
T operand = expression.accept(visitor);
@@ -67,5 +55,4 @@ public class UnaryImpl extends ExpressionImpl implements Unary {
public String toString() {
return "{" + operator + " " + expression + '}';
}
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/expression/FilterParserTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/expression/FilterParserTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/expression/FilterParserTest.java
deleted file mode 100644
index 7bfc369..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/expression/FilterParserTest.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.core.uri.expression;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.ArrayList;
-
-import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
-import org.apache.olingo.server.core.uri.expression.FilterParser.TokenKind;
-import org.apache.olingo.server.core.uri.expression.FilterParser.Tokenizer;
-import org.apache.olingo.server.core.uri.expression.FilterParser.Token;
-import org.junit.Test;
-
-public class FilterParserTest {
-
- @Test
- public void equality() {
- Expression expression = parseExpression(TokenKind.EQ_OP);
- assertEquals("{5 EQ 5}", expression.toString());
-
- expression = parseExpression(TokenKind.NE_OP);
- assertEquals("{5 NE 5}", expression.toString());
- }
-
- @Test
- public void relational() {
- Expression expression = parseExpression(TokenKind.GT_OP);
- assertEquals("{5 GT 5}", expression.toString());
-
- expression = parseExpression(TokenKind.GE_OP);
- assertEquals("{5 GE 5}", expression.toString());
-
- expression = parseExpression(TokenKind.LT_OP);
- assertEquals("{5 LT 5}", expression.toString());
-
- expression = parseExpression(TokenKind.LE_OP);
- assertEquals("{5 LE 5}", expression.toString());
- }
-
- @Test
- public void additive() {
- Expression expression = parseExpression(TokenKind.ADD_OP);
- assertEquals("{5 ADD 5}", expression.toString());
-
- expression = parseExpression(TokenKind.SUB_OP);
- assertEquals("{5 SUB 5}", expression.toString());
- }
-
- @Test
- public void multiplicative() {
- Expression expression = parseExpression(TokenKind.MUL_OP);
- assertEquals("{5 MUL 5}", expression.toString());
-
- expression = parseExpression(TokenKind.DIV_OP);
- assertEquals("{5 DIV 5}", expression.toString());
-
- expression = parseExpression(TokenKind.MOD_OP);
- assertEquals("{5 MOD 5}", expression.toString());
- }
-
- @Test
- public void unary() {
- ArrayList<Token> tokens = new ArrayList<Token>();
- tokens.add(new Token(TokenKind.MINUS, ""));
- tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
- Tokenizer tokenizer = new Tokenizer(tokens);
- Expression expression = new FilterParser().parse(tokenizer);
- assertEquals("{- 5}", expression.toString());
-
- tokens = new ArrayList<Token>();
- tokens.add(new Token(TokenKind.NOT, ""));
- tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
- tokenizer = new Tokenizer(tokens);
- expression = new FilterParser().parse(tokenizer);
- assertEquals("{not 5}", expression.toString());
- }
-
- @Test
- public void grouping() {
- ArrayList<Token> tokens = new ArrayList<Token>();
- tokens.add(new Token(TokenKind.MINUS, ""));
- tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
- tokens.add(new Token(TokenKind.ADD_OP, ""));
- tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
- Tokenizer tokenizer = new Tokenizer(tokens);
- Expression expression = new FilterParser().parse(tokenizer);
- assertEquals("{{- 5} ADD 5}", expression.toString());
-
- tokens = new ArrayList<Token>();
- tokens.add(new Token(TokenKind.MINUS, ""));
- tokens.add(new Token(TokenKind.OPEN, ""));
- tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
- tokens.add(new Token(TokenKind.ADD_OP, ""));
- tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
- tokens.add(new Token(TokenKind.CLOSE, ""));
- tokenizer = new Tokenizer(tokens);
- expression = new FilterParser().parse(tokenizer);
- assertEquals("{- {5 ADD 5}}", expression.toString());
- }
-
- @Test
- public void noParameterMethods() {
- Expression expression = parseMethod(TokenKind.Now);
- assertEquals("{now []}", expression.toString());
-
- expression = parseMethod(TokenKind.Maxdatetime);
- assertEquals("{maxdatetime []}", expression.toString());
-
- expression = parseMethod(TokenKind.Mindatetime);
- assertEquals("{mindatetime []}", expression.toString());
- }
-
- @Test
- public void oneParameterMethods() {
- Expression expression = parseMethod(TokenKind.Length, TokenKind.PrimitiveStringValue);
- assertEquals("{length [String1]}", expression.toString());
-
- expression = parseMethod(TokenKind.Tolower, TokenKind.PrimitiveStringValue);
- assertEquals("{tolower [String1]}", expression.toString());
-
- expression = parseMethod(TokenKind.Toupper, TokenKind.PrimitiveStringValue);
- assertEquals("{toupper [String1]}", expression.toString());
-
- expression = parseMethod(TokenKind.Trim, TokenKind.PrimitiveStringValue);
- assertEquals("{trim [String1]}", expression.toString());
-
- expression = parseMethod(TokenKind.Year, TokenKind.PrimitiveDateValue);
- assertEquals("{year [Date1]}", expression.toString());
-
- expression = parseMethod(TokenKind.Month, TokenKind.PrimitiveDateValue);
- assertEquals("{month [Date1]}", expression.toString());
-
- expression = parseMethod(TokenKind.Day, TokenKind.PrimitiveDateValue);
- assertEquals("{day [Date1]}", expression.toString());
-
- expression = parseMethod(TokenKind.Hour, TokenKind.PrimitiveDateTimeOffsetValue);
- assertEquals("{hour [DateTimeOffset1]}", expression.toString());
-
- expression = parseMethod(TokenKind.Minute, TokenKind.PrimitiveDateTimeOffsetValue);
- assertEquals("{minute [DateTimeOffset1]}", expression.toString());
-
- expression = parseMethod(TokenKind.Second, TokenKind.PrimitiveDateTimeOffsetValue);
- assertEquals("{second [DateTimeOffset1]}", expression.toString());
- }
-
- @Test
- public void twoParameterMethods() {
-
- }
-
- private Expression parseMethod(TokenKind... kind) {
- ArrayList<Token> tokens = new ArrayList<Token>();
- tokens.add(new Token(kind[0], ""));
-
- for (int i = 1; i < kind.length; i++) {
- String text = null;
- switch (kind[i]) {
- case PrimitiveStringValue:
- text = "String" + i;
- break;
- case PrimitiveDateValue:
- text = "Date" + i;
- break;
- case PrimitiveDateTimeOffsetValue:
- text = "DateTimeOffset" + i;
- break;
- default:
- text = "" + i;
- break;
- }
- tokens.add(new Token(kind[i], text));
- }
-
- tokens.add(new Token(TokenKind.CLOSE, ""));
- Tokenizer tokenizer = new Tokenizer(tokens);
- Expression expression = new FilterParser().parse(tokenizer);
- assertNotNull(expression);
- return expression;
- }
-
- private Expression parseExpression(TokenKind operator) {
- ArrayList<Token> tokens = new ArrayList<Token>();
- tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
- tokens.add(new Token(operator, ""));
- tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
- Tokenizer tokenizer = new Tokenizer(tokens);
-
- Expression expression = new FilterParser().parse(tokenizer);
- assertNotNull(expression);
- return expression;
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/ExpressionParserTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/ExpressionParserTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/ExpressionParserTest.java
new file mode 100644
index 0000000..7da823e
--- /dev/null
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/ExpressionParserTest.java
@@ -0,0 +1,210 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.server.core.uri.parser;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.ArrayList;
+
+import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
+import org.apache.olingo.server.core.uri.parser.ExpressionParser.Token;
+import org.apache.olingo.server.core.uri.parser.ExpressionParser.TokenKind;
+import org.apache.olingo.server.core.uri.parser.ExpressionParser.Tokenizer;
+import org.junit.Test;
+
+public class ExpressionParserTest {
+
+ @Test
+ public void equality() throws Exception {
+ Expression expression = parseExpression(TokenKind.EQ_OP);
+ assertEquals("{5 EQ 5}", expression.toString());
+
+ expression = parseExpression(TokenKind.NE_OP);
+ assertEquals("{5 NE 5}", expression.toString());
+ }
+
+ @Test
+ public void relational() throws Exception {
+ Expression expression = parseExpression(TokenKind.GT_OP);
+ assertEquals("{5 GT 5}", expression.toString());
+
+ expression = parseExpression(TokenKind.GE_OP);
+ assertEquals("{5 GE 5}", expression.toString());
+
+ expression = parseExpression(TokenKind.LT_OP);
+ assertEquals("{5 LT 5}", expression.toString());
+
+ expression = parseExpression(TokenKind.LE_OP);
+ assertEquals("{5 LE 5}", expression.toString());
+ }
+
+ @Test
+ public void additive() throws Exception {
+ Expression expression = parseExpression(TokenKind.ADD_OP);
+ assertEquals("{5 ADD 5}", expression.toString());
+
+ expression = parseExpression(TokenKind.SUB_OP);
+ assertEquals("{5 SUB 5}", expression.toString());
+ }
+
+ @Test
+ public void multiplicative() throws Exception {
+ Expression expression = parseExpression(TokenKind.MUL_OP);
+ assertEquals("{5 MUL 5}", expression.toString());
+
+ expression = parseExpression(TokenKind.DIV_OP);
+ assertEquals("{5 DIV 5}", expression.toString());
+
+ expression = parseExpression(TokenKind.MOD_OP);
+ assertEquals("{5 MOD 5}", expression.toString());
+ }
+
+ @Test
+ public void unary() throws Exception {
+ ArrayList<Token> tokens = new ArrayList<Token>();
+ tokens.add(new Token(TokenKind.MINUS, ""));
+ tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
+ Tokenizer tokenizer = new Tokenizer(tokens);
+ Expression expression = new ExpressionParser().parse(tokenizer);
+ assertEquals("{- 5}", expression.toString());
+
+ tokens = new ArrayList<Token>();
+ tokens.add(new Token(TokenKind.NOT, ""));
+ tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
+ tokenizer = new Tokenizer(tokens);
+ expression = new ExpressionParser().parse(tokenizer);
+ assertEquals("{not 5}", expression.toString());
+ }
+
+ @Test
+ public void grouping() throws Exception {
+ ArrayList<Token> tokens = new ArrayList<Token>();
+ tokens.add(new Token(TokenKind.MINUS, ""));
+ tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
+ tokens.add(new Token(TokenKind.ADD_OP, ""));
+ tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
+ Tokenizer tokenizer = new Tokenizer(tokens);
+ Expression expression = new ExpressionParser().parse(tokenizer);
+ assertEquals("{{- 5} ADD 5}", expression.toString());
+
+ tokens = new ArrayList<Token>();
+ tokens.add(new Token(TokenKind.MINUS, ""));
+ tokens.add(new Token(TokenKind.OPEN, ""));
+ tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
+ tokens.add(new Token(TokenKind.ADD_OP, ""));
+ tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
+ tokens.add(new Token(TokenKind.CLOSE, ""));
+ tokenizer = new Tokenizer(tokens);
+ expression = new ExpressionParser().parse(tokenizer);
+ assertEquals("{- {5 ADD 5}}", expression.toString());
+ }
+
+ @Test
+ public void noParameterMethods() throws Exception {
+ Expression expression = parseMethod(TokenKind.Now);
+ assertEquals("{now []}", expression.toString());
+
+ expression = parseMethod(TokenKind.Maxdatetime);
+ assertEquals("{maxdatetime []}", expression.toString());
+
+ expression = parseMethod(TokenKind.Mindatetime);
+ assertEquals("{mindatetime []}", expression.toString());
+ }
+
+ @Test
+ public void oneParameterMethods() throws Exception {
+ Expression expression = parseMethod(TokenKind.Length, TokenKind.PrimitiveStringValue);
+ assertEquals("{length [String1]}", expression.toString());
+
+ expression = parseMethod(TokenKind.Tolower, TokenKind.PrimitiveStringValue);
+ assertEquals("{tolower [String1]}", expression.toString());
+
+ expression = parseMethod(TokenKind.Toupper, TokenKind.PrimitiveStringValue);
+ assertEquals("{toupper [String1]}", expression.toString());
+
+ expression = parseMethod(TokenKind.Trim, TokenKind.PrimitiveStringValue);
+ assertEquals("{trim [String1]}", expression.toString());
+
+ expression = parseMethod(TokenKind.Year, TokenKind.PrimitiveDateValue);
+ assertEquals("{year [Date1]}", expression.toString());
+
+ expression = parseMethod(TokenKind.Month, TokenKind.PrimitiveDateValue);
+ assertEquals("{month [Date1]}", expression.toString());
+
+ expression = parseMethod(TokenKind.Day, TokenKind.PrimitiveDateValue);
+ assertEquals("{day [Date1]}", expression.toString());
+
+ expression = parseMethod(TokenKind.Hour, TokenKind.PrimitiveDateTimeOffsetValue);
+ assertEquals("{hour [DateTimeOffset1]}", expression.toString());
+
+ expression = parseMethod(TokenKind.Minute, TokenKind.PrimitiveDateTimeOffsetValue);
+ assertEquals("{minute [DateTimeOffset1]}", expression.toString());
+
+ expression = parseMethod(TokenKind.Second, TokenKind.PrimitiveDateTimeOffsetValue);
+ assertEquals("{second [DateTimeOffset1]}", expression.toString());
+ }
+
+ @Test
+ public void twoParameterMethods() {
+
+ }
+
+ private Expression parseMethod(TokenKind... kind) throws UriParserException {
+ ArrayList<Token> tokens = new ArrayList<Token>();
+ tokens.add(new Token(kind[0], ""));
+
+ for (int i = 1; i < kind.length; i++) {
+ String text = null;
+ switch (kind[i]) {
+ case PrimitiveStringValue:
+ text = "String" + i;
+ break;
+ case PrimitiveDateValue:
+ text = "Date" + i;
+ break;
+ case PrimitiveDateTimeOffsetValue:
+ text = "DateTimeOffset" + i;
+ break;
+ default:
+ text = "" + i;
+ break;
+ }
+ tokens.add(new Token(kind[i], text));
+ }
+
+ tokens.add(new Token(TokenKind.CLOSE, ""));
+ Tokenizer tokenizer = new Tokenizer(tokens);
+ Expression expression = new ExpressionParser().parse(tokenizer);
+ assertNotNull(expression);
+ return expression;
+ }
+
+ private Expression parseExpression(TokenKind operator) throws UriParserException {
+ ArrayList<Token> tokens = new ArrayList<Token>();
+ tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
+ tokens.add(new Token(operator, ""));
+ tokens.add(new Token(TokenKind.PrimitiveIntegerValue, "5"));
+ Tokenizer tokenizer = new Tokenizer(tokens);
+
+ Expression expression = new ExpressionParser().parse(tokenizer);
+ assertNotNull(expression);
+ return expression;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
index a5d0ea3..a945d11 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
@@ -43,7 +43,7 @@ import org.apache.olingo.server.api.OData;
import org.apache.olingo.server.api.edmx.EdmxReference;
import org.apache.olingo.server.api.uri.UriParameter;
import org.apache.olingo.server.api.uri.UriResourceKind;
-import org.apache.olingo.server.core.uri.queryoption.expression.ExpressionImpl;
+import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
import org.apache.olingo.server.core.uri.queryoption.expression.LiteralImpl;
import org.apache.olingo.server.tecsvc.provider.ActionProvider;
import org.apache.olingo.server.tecsvc.provider.ComplexTypeProvider;
@@ -59,7 +59,7 @@ public class UriResourceImplTest {
@Test
public void testUriParameterImpl() {
UriParameterImpl impl = new UriParameterImpl();
- ExpressionImpl expression = new LiteralImpl().setText("Expression");
+ Expression expression = new LiteralImpl("Expression", null);
impl.setText("Text");
impl.setName("A");
@@ -105,7 +105,7 @@ public class UriResourceImplTest {
UriResourceLambdaAllImpl impl = new UriResourceLambdaAllImpl();
assertEquals(UriResourceKind.lambdaAll, impl.getKind());
- ExpressionImpl expression = new LiteralImpl().setText("Expression");
+ Expression expression = new LiteralImpl("Expression", null);
impl.setExpression(expression);
impl.setLamdaVariable("A");
@@ -121,7 +121,7 @@ public class UriResourceImplTest {
UriResourceLambdaAnyImpl impl = new UriResourceLambdaAnyImpl();
assertEquals(UriResourceKind.lambdaAny, impl.getKind());
- ExpressionImpl expression = new LiteralImpl().setText("Expression");
+ Expression expression = new LiteralImpl("Expression", null);
impl.setExpression(expression);
impl.setLamdaVariable("A");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java
index 93cdf86..db9f5be 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java
@@ -44,7 +44,7 @@ public class QueryOptionTest {
public void testAliasQueryOption() {
AliasQueryOptionImpl option = new AliasQueryOptionImpl();
- Expression expression = new LiteralImpl();
+ Expression expression = new LiteralImpl(null, null);
option.setAliasValue(expression);
assertEquals(expression, option.getValue());
@@ -132,7 +132,7 @@ public class QueryOptionTest {
FilterOptionImpl option = new FilterOptionImpl();
assertEquals(SystemQueryOptionKind.FILTER, option.getKind());
- AliasImpl expression = new AliasImpl();
+ AliasImpl expression = new AliasImpl(null);
option.setExpression(expression);
assertEquals(expression, option.getExpression());
@@ -184,7 +184,7 @@ public class QueryOptionTest {
public void testOrderByItemImpl() {
OrderByItemImpl option = new OrderByItemImpl();
- AliasImpl expression = new AliasImpl();
+ AliasImpl expression = new AliasImpl(null);
option.setExpression(expression);
assertEquals(expression, option.getExpression());
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/208f26c7/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java
index e8a9b38..ec5ce6e 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java
@@ -37,6 +37,7 @@ import org.apache.olingo.server.api.edmx.EdmxReference;
import org.apache.olingo.server.api.uri.UriInfoKind;
import org.apache.olingo.server.api.uri.UriInfoResource;
import org.apache.olingo.server.api.uri.queryoption.expression.BinaryOperatorKind;
+import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitException;
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind;
import org.apache.olingo.server.api.uri.queryoption.expression.UnaryOperatorKind;
@@ -56,7 +57,7 @@ public class ExpressionTest {
new EdmTechProvider(), Collections.<EdmxReference> emptyList()).getEdm();
@Test
- public void testSupportedOperators() {
+ public void supportedOperators() {
assertEquals(UnaryOperatorKind.MINUS, UnaryOperatorKind.get("-"));
assertEquals(null, UnaryOperatorKind.get("XXX"));
@@ -68,28 +69,21 @@ public class ExpressionTest {
}
@Test
- public void testAliasExpression() throws ExpressionVisitException, ODataApplicationException {
- AliasImpl expression = new AliasImpl();
-
- expression.setParameter("Test");
+ public void aliasExpression() throws ExpressionVisitException, ODataApplicationException {
+ AliasImpl expression = new AliasImpl("Test");
assertEquals("Test", expression.getParameterName());
String output = expression.accept(new FilterTreeToText());
assertEquals("<Test>", output);
-
}
@Test
- public void testBinaryExpression() throws ExpressionVisitException, ODataApplicationException {
- BinaryImpl expression = new BinaryImpl();
-
- ExpressionImpl expressionLeft = new LiteralImpl().setText("A");
- ExpressionImpl expressionRight = new LiteralImpl().setText("B");
+ public void binaryExpression() throws ExpressionVisitException, ODataApplicationException {
+ Expression expressionLeft = new LiteralImpl("A", null);
+ Expression expressionRight = new LiteralImpl("B", null);
- expression.setLeftOperand(expressionLeft);
- expression.setRightOperand(expressionRight);
- expression.setOperator(BinaryOperatorKind.SUB);
+ BinaryImpl expression = new BinaryImpl(expressionLeft, BinaryOperatorKind.SUB, expressionRight);
assertEquals(expressionLeft, expression.getLeftOperand());
assertEquals(expressionRight, expression.getRightOperand());
@@ -100,50 +94,39 @@ public class ExpressionTest {
}
@Test
- public void testEnumerationExpression() throws ExpressionVisitException, ODataApplicationException {
- EnumerationImpl expression = new EnumerationImpl();
+ public void enumerationExpression() throws ExpressionVisitException, ODataApplicationException {
EdmEnumType type = edm.getEnumType(EnumTypeProvider.nameENString);
assertNotNull(type);
- expression.setType(type);
-
+ EnumerationImpl expression = new EnumerationImpl(type, Arrays.asList("A", "B"));
assertEquals(type, expression.getType());
-
- expression.addValue("A");
- expression.addValue("B");
assertEquals("A", expression.getValues().get(0));
assertEquals("B", expression.getValues().get(1));
assertEquals("<olingo.odata.test1.ENString<A,B>>", expression.accept(new FilterTreeToText()));
}
@Test
- public void testLambdaRefExpression() throws ExpressionVisitException, ODataApplicationException {
- LambdaRefImpl expression = new LambdaRefImpl();
- expression.setVariableText("A");
+ public void lambdaRefExpression() throws ExpressionVisitException, ODataApplicationException {
+ LambdaRefImpl expression = new LambdaRefImpl("A");
assertEquals("A", expression.getVariableName());
-
assertEquals("<A>", expression.accept(new FilterTreeToText()));
-
}
@Test
- public void testLiteralExpresion() throws ExpressionVisitException, ODataApplicationException {
- LiteralImpl expression = new LiteralImpl();
- expression.setText("A");
+ public void literalExpression() throws ExpressionVisitException, ODataApplicationException {
+ LiteralImpl expression = new LiteralImpl("A", null);
assertEquals("A", expression.getText());
-
assertEquals("<A>", expression.accept(new FilterTreeToText()));
}
@Test
- public void testMemberExpression() throws ExpressionVisitException, ODataApplicationException {
- MemberImpl expression = new MemberImpl();
+ public void memberExpression() throws ExpressionVisitException, ODataApplicationException {
EdmEntityType entityType = edm.getEntityType(EntityTypeProvider.nameETKeyNav);
// UriResourceImpl
EdmAction action = edm.getUnboundAction(ActionProvider.nameUARTString);
UriInfoResource uriInfo = new UriInfoImpl().setKind(UriInfoKind.resource).addResourcePart(
new UriResourceActionImpl().setAction(action)).asUriInfoResource();
- expression.setResourcePath(uriInfo);
+ MemberImpl expression = new MemberImpl(uriInfo, null);
assertEquals(action.getReturnType().getType(), expression.getType());
// check accept and path
@@ -155,45 +138,50 @@ public class ExpressionTest {
// UriResourceImplTyped check collection = true case
action = edm.getUnboundAction(ActionProvider.nameUARTCollStringTwoParam);
- expression.setResourcePath(new UriInfoImpl().setKind(UriInfoKind.resource)
+ expression = new MemberImpl(new UriInfoImpl().setKind(UriInfoKind.resource)
.addResourcePart(new UriResourceActionImpl().setAction(action))
- .asUriInfoResource());
+ .asUriInfoResource(),
+ null);
assertTrue(expression.isCollection());
// UriResourceImplTyped with filter
EdmFunction function = edm.getUnboundFunction(FunctionProvider.nameUFCRTETKeyNav, null);
- expression.setResourcePath(new UriInfoImpl().setKind(UriInfoKind.resource).addResourcePart(
+ expression = new MemberImpl(new UriInfoImpl().setKind(UriInfoKind.resource).addResourcePart(
new UriResourceFunctionImpl().setFunction(function).setEntryTypeFilter(entityType))
- .asUriInfoResource());
+ .asUriInfoResource(),
+ null);
assertEquals(entityType, expression.getType());
// UriResourceImplKeyPred
function = edm.getUnboundFunction(FunctionProvider.nameUFCRTETKeyNav, null);
- expression.setResourcePath(new UriInfoImpl().setKind(UriInfoKind.resource).addResourcePart(
+ expression = new MemberImpl(new UriInfoImpl().setKind(UriInfoKind.resource).addResourcePart(
new UriResourceFunctionImpl().setFunction(function))
- .asUriInfoResource());
+ .asUriInfoResource(),
+ null);
assertEquals(function.getReturnType().getType(), expression.getType());
// UriResourceImplKeyPred typeFilter on entry
EdmEntityType entityBaseType = edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav);
function = edm.getUnboundFunction(FunctionProvider.nameUFCRTCollETTwoKeyNavParam, Arrays.asList("ParameterInt16"));
- expression.setResourcePath(new UriInfoImpl().setKind(UriInfoKind.resource).addResourcePart(
+ expression = new MemberImpl(new UriInfoImpl().setKind(UriInfoKind.resource).addResourcePart(
new UriResourceFunctionImpl().setFunction(function).setEntryTypeFilter(entityBaseType))
- .asUriInfoResource());
+ .asUriInfoResource(),
+ null);
assertEquals(entityBaseType, expression.getType());
// UriResourceImplKeyPred typeFilter on entry
entityBaseType = edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav);
function = edm.getUnboundFunction(FunctionProvider.nameUFCRTCollETTwoKeyNavParam, Arrays.asList("ParameterInt16"));
- expression.setResourcePath(new UriInfoImpl().setKind(UriInfoKind.resource).addResourcePart(
+ expression = new MemberImpl(new UriInfoImpl().setKind(UriInfoKind.resource).addResourcePart(
new UriResourceFunctionImpl().setFunction(function).setCollectionTypeFilter(entityBaseType))
- .asUriInfoResource());
+ .asUriInfoResource(),
+ null);
assertEquals(entityBaseType, expression.getType());
// no typed
entityBaseType = edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav);
function = edm.getUnboundFunction(FunctionProvider.nameUFCRTCollETTwoKeyNavParam, Arrays.asList("ParameterInt16"));
- expression.setResourcePath(new UriInfoImpl().setKind(UriInfoKind.all));
+ expression = new MemberImpl(new UriInfoImpl().setKind(UriInfoKind.all), null);
assertEquals(null, expression.getType());
// no typed collection else case
@@ -201,14 +189,10 @@ public class ExpressionTest {
}
@Test
- public void testMethodCallExpression() throws ExpressionVisitException, ODataApplicationException {
- MethodImpl expression = new MethodImpl();
- expression.setMethod(MethodKind.CONCAT);
-
- ExpressionImpl p0 = new LiteralImpl().setText("A");
- ExpressionImpl p1 = new LiteralImpl().setText("B");
- expression.addParameter(p0);
- expression.addParameter(p1);
+ public void methodCallExpression() throws ExpressionVisitException, ODataApplicationException {
+ Expression p0 = new LiteralImpl("A", null);
+ Expression p1 = new LiteralImpl("B", null);
+ MethodImpl expression = new MethodImpl(MethodKind.CONCAT, Arrays.asList(p0, p1));
assertEquals(MethodKind.CONCAT, expression.getMethod());
assertEquals("<concat(<A>,<B>)>", expression.accept(new FilterTreeToText()));
@@ -218,27 +202,22 @@ public class ExpressionTest {
}
@Test
- public void testTypeLiteralExpression() throws ExpressionVisitException, ODataApplicationException {
- TypeLiteralImpl expression = new TypeLiteralImpl();
+ public void typeLiteralExpression() throws ExpressionVisitException, ODataApplicationException {
EdmEntityType entityBaseType = edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav);
- expression.setType(entityBaseType);
+ TypeLiteralImpl expression = new TypeLiteralImpl(entityBaseType);
assertEquals(entityBaseType, expression.getType());
assertEquals("<olingo.odata.test1.ETBaseTwoKeyNav>", expression.accept(new FilterTreeToText()));
}
@Test
- public void testUnaryExpression() throws ExpressionVisitException, ODataApplicationException {
- UnaryImpl expression = new UnaryImpl();
- expression.setOperator(UnaryOperatorKind.MINUS);
-
- ExpressionImpl operand = new LiteralImpl().setText("A");
- expression.setOperand(operand);
+ public void unaryExpression() throws ExpressionVisitException, ODataApplicationException {
+ Expression operand = new LiteralImpl("A", null);
+ UnaryImpl expression = new UnaryImpl(UnaryOperatorKind.MINUS, operand);
assertEquals(UnaryOperatorKind.MINUS, expression.getOperator());
assertEquals(operand, expression.getOperand());
assertEquals("<- <A>>", expression.accept(new FilterTreeToText()));
}
-
}