本文整理汇总了Java中org.apache.olingo.server.api.uri.queryoption.expression.MethodKind类的典型用法代码示例。如果您正苦于以下问题:Java MethodKind类的具体用法?Java MethodKind怎么用?Java MethodKind使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MethodKind类属于org.apache.olingo.server.api.uri.queryoption.expression包,在下文中一共展示了MethodKind类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: visitMethodCall
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Override
public ExpressionMember visitMethodCall(MethodKind methodCall,
List<ExpressionMember> parameters)
throws ExpressionVisitException, ODataApplicationException {
switch (methodCall) {
case CONTAINS:
return parameters.get(0).contains(parameters.get(1));
case STARTSWITH:
return parameters.get(0).startsWith(parameters.get(1));
case ENDSWITH:
return parameters.get(0).endsWith(parameters.get(1));
case DATE:
return parameters.get(0).date();
default:
return throwNotImplemented(
String.format("Method call %s is not implemented", methodCall));
}
}
开发者ID:Hevelian,项目名称:hevelian-olastic,代码行数:19,代码来源:ElasticSearchExpressionVisitor.java
示例2: compute
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Test
public void compute() throws Exception {
parse("ESTwoKeyNav", "compute(PropertyInt16 mul NavPropertyETKeyNavOne/PropertyInt16 as p)")
.is(Compute.class)
.goCompute(0).isAlias("p").goExpression().isBinary(BinaryOperatorKind.MUL)
.left().isMember().goPath().isPrimitiveProperty("PropertyInt16", PropertyProvider.nameInt16, false);
parse("ESTwoKeyNav", "compute(PropertyInt16 mul 2 as p,day(now()) as d)")
.goCompute(0).isAlias("p")
.goUp().goCompute(1).isAlias("d")
.goExpression().isMethod(MethodKind.DAY, 1).goParameter(0).isMethod(MethodKind.NOW, 0);
parseEx("ESTwoKeyNav", "compute(PropertyInt16)")
.isExSyntax(UriParserSyntaxException.MessageKeys.SYNTAX);
parseEx("ESTwoKeyNav", "compute(PropertyComp as c)")
.isExSemantic(UriParserSemanticException.MessageKeys.ONLY_FOR_PRIMITIVE_TYPES);
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:17,代码来源:ApplyParserTest.java
示例3: parseExprRel
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
private Expression parseExprRel() throws UriParserException, UriValidationException {
if (tokenizer.next(TokenKind.IsofMethod)) {
// The isof method is a terminal. So no further operators are allowed.
return parseIsOfOrCastMethod(MethodKind.ISOF);
} else {
Expression left = parseExprAdd();
TokenKind operatorTokenKind = ParserHelper.next(tokenizer,
TokenKind.GreaterThanOperator, TokenKind.GreaterThanOrEqualsOperator,
TokenKind.LessThanOperator, TokenKind.LessThanOrEqualsOperator);
// Null for everything other than GT or GE or LT or LE
while (operatorTokenKind != null) {
final Expression right = parseExprAdd();
checkRelationTypes(left, right);
left = new BinaryImpl(left, tokenToBinaryOperator.get(operatorTokenKind), right,
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Boolean));
operatorTokenKind = ParserHelper.next(tokenizer,
TokenKind.GreaterThanOperator, TokenKind.GreaterThanOrEqualsOperator,
TokenKind.LessThanOperator, TokenKind.LessThanOrEqualsOperator);
}
return left;
}
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:23,代码来源:ExpressionParser.java
示例4: parseIsOfOrCastMethod
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
private Expression parseIsOfOrCastMethod(final MethodKind kind) throws UriParserException, UriValidationException {
// The TokenKind 'IsOfMethod' consumes also the opening parenthesis.
// The first parameter could be an expression or a type literal.
List<Expression> parameters = new ArrayList<Expression>();
ParserHelper.bws(tokenizer);
parameters.add(parseExpression());
if (!(parameters.get(0) instanceof TypeLiteral)) {
// The first parameter is not a type literal, so there must be a second parameter.
ParserHelper.bws(tokenizer);
ParserHelper.requireNext(tokenizer, TokenKind.COMMA);
ParserHelper.bws(tokenizer);
parameters.add(parseExpression());
ParserHelper.bws(tokenizer);
// The second parameter must be a type literal.
if (!(parameters.get(1) instanceof TypeLiteral)) {
throw new UriParserSemanticException("Type literal expected.",
UriParserSemanticException.MessageKeys.INCOMPATIBLE_TYPE_FILTER);
}
}
ParserHelper.requireNext(tokenizer, TokenKind.CLOSE);
return new MethodImpl(kind, parameters);
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:24,代码来源:ExpressionParser.java
示例5: visitMethodCall
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Override
public Object visitMethodCall(
MethodKind method,
List<Object> parameters) throws ExpressionVisitException, ODataApplicationException {
switch (method) {
case CONTAINS:
return contains((String) parameters.get(0), (String) parameters.get(1));
case STARTSWITH:
return startsWith((String) parameters.get(0), (String) parameters.get(1));
default:
throw new NotImplementedException("Method " + method + " not implemented");
}
}
开发者ID:pukkaone,项目名称:odata-spring-boot-starter,代码行数:15,代码来源:ElasticsearchExpressionVisitor.java
示例6: geo
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Test
public void geo() throws Exception {
testFilter.runOnETAllPrim("geo.distance(geometry'SRID=0;Point(0 0)',geometry'SRID=0;Point(1 1)') lt 1.5")
.left().isMethod(MethodKind.GEODISTANCE, 2)
.goParameter(0).isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryPoint))
.root().left()
.goParameter(1).isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryPoint));
testFilter.runOnETAllPrim("geo.length(geometry'SRID=0;LineString(0 0,1 1)') lt 1.5")
.left().isMethod(MethodKind.GEOLENGTH, 1)
.goParameter(0).isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryLineString));
testFilter.runOnETAllPrim("geo.intersects(geometry'SRID=0;Point(0 0)',null)")
.isMethod(MethodKind.GEOINTERSECTS, 2)
.goParameter(0).isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.GeometryPoint));
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:15,代码来源:ExpressionParserTest.java
示例7: supportedOperators
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Test
public void supportedOperators() {
assertEquals(UnaryOperatorKind.MINUS, UnaryOperatorKind.get("-"));
assertEquals(null, UnaryOperatorKind.get("XXX"));
assertEquals(BinaryOperatorKind.MOD, BinaryOperatorKind.get("mod"));
assertEquals(null, BinaryOperatorKind.get("XXX"));
assertEquals(MethodKind.CONCAT, MethodKind.get("concat"));
assertEquals(null, MethodKind.get("XXX"));
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:12,代码来源:ExpressionTest.java
示例8: methodCallExpression
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Test
public void methodCallExpression() throws Exception {
Expression p0 = new LiteralImpl("'A'", odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String));
Expression p1 = new LiteralImpl("'B'", odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String));
MethodImpl expression = new MethodImpl(MethodKind.CONCAT, Arrays.asList(p0, p1));
assertEquals(MethodKind.CONCAT, expression.getMethod());
assertEquals("<concat(<'A'>,<'B'>)>", expression.accept(new FilterTreeToText()));
assertEquals(odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String), expression.getType());
assertEquals(p0, expression.getParameters().get(0));
assertEquals(p1, expression.getParameters().get(1));
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:14,代码来源:ExpressionTest.java
示例9: visitMethodCall
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Override
public String visitMethodCall(final MethodKind methodCall, final List<String> parameters)
throws ExpressionVisitException {
String text = "<" + methodCall + "(";
boolean first = true;
for (final String parameter : parameters) {
if (!first) {
text += ",";
}
text += parameter;
first = false;
}
return text + ")>";
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:16,代码来源:FilterTreeToText.java
示例10: isMethod
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
public FilterValidator isMethod(final MethodKind methodKind, final int parameterCount) {
assertTrue("Current expression is not a methodCall", curExpression instanceof Method);
Method methodCall = (Method) curExpression;
assertEquals(methodKind, methodCall.getMethod());
assertEquals(parameterCount, methodCall.getParameters().size());
return this;
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:8,代码来源:FilterValidator.java
示例11: visitMethodCall
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Override
public JsonNode visitMethodCall(final MethodKind methodCall, final List<JsonNode> parameters)
throws ExpressionVisitException, ODataApplicationException {
ObjectNode result = nodeFactory.objectNode()
.put(NODE_TYPE_NAME, METHOD_NAME)
.put(OPERATOR_NAME, methodCall.toString())
.put(TYPE_NAME, getType(methodCall));
ArrayNode jsonParameters = result.putArray(PARAMETERS_NAME);
for (final JsonNode parameter : parameters) {
jsonParameters.add(parameter);
}
return result;
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:14,代码来源:ExpressionJsonVisitor.java
示例12: visitMethodCall
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Override
public Object visitMethodCall(MethodKind methodCall, List<Object> parameters)
throws ExpressionVisitException, ODataApplicationException {
// To keep this tutorial small and simple, we implement only one method call
if(methodCall == MethodKind.CONTAINS) {
// "Contains" gets two parameters, both have to be of type String
// e.g. /Products?$filter=contains(Description, '1024 MB')
//
// First the method visistMember is called, which returns the current String value of the property.
// After that the method visitLiteral is called with the string literal '1024 MB',
// which returns a String
//
// Both String values are passed to visitMethodCall.
if(parameters.get(0) instanceof String && parameters.get(1) instanceof String) {
String valueParam1 = (String) parameters.get(0);
String valueParam2 = (String) parameters.get(1);
return valueParam1.contains(valueParam2);
} else {
throw new ODataApplicationException("Contains needs two parametes of type Edm.String",
HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ENGLISH);
}
} else {
throw new ODataApplicationException("Method call " + methodCall + " not implemented",
HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
}
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:29,代码来源:FilterExpressionVisitor.java
示例13: visitMethodCall
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
public Object visitMethodCall(MethodKind methodCall, List<Object> parameters)
throws ExpressionVisitException, ODataApplicationException {
// To keep this tutorial small and simple, we implement only one method call
if(methodCall == MethodKind.CONTAINS) {
// "Contains" gets two parameters, both have to be of type String
// e.g. /Products?$filter=contains(Description, '1024 MB')
//
// First the method visitMember is called, which returns the current String value of the property.
// After that the method visitLiteral is called with the string literal '1024 MB',
// which returns a String
//
// Both String values are passed to visitMethodCall.
if(parameters.get(0) instanceof String && parameters.get(1) instanceof String) {
String valueParam1 = (String) parameters.get(0);
String valueParam2 = (String) parameters.get(1);
return valueParam1.contains(valueParam2);
} else {
throw new ODataApplicationException("Contains needs two parameters of type Edm.String",
HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ENGLISH);
}
} else {
throw new ODataApplicationException("Method call " + methodCall + " not implemented",
HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
}
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:28,代码来源:FilterExpressionVisitor.java
示例14: visitMethodCall
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Override
@SuppressWarnings("rawtypes")
public Object visitMethodCall(MethodKind methodCall, List parameters)
throws ExpressionVisitException, ODataApplicationException {
String sparqlmethod = "";
switch (methodCall) {
case ENDSWITH:
sparqlmethod = "STRENDS(" + parameters.get(1) + "," + parameters.get(0) + ")";
break;
case INDEXOF:
sparqlmethod = "";
break;
case STARTSWITH:
sparqlmethod = "STRSTARTS(" + parameters.get(1) + "," + parameters.get(0) + ")";
break;
case TOLOWER:
sparqlmethod = "LCASE(" + parameters.get(0) + ")";
break;
case TOUPPER:
sparqlmethod = "UCASE(" + parameters.get(0) + ")";
break;
case TRIM:
sparqlmethod = "";
break;
case SUBSTRING:
if (parameters.size() > 2) {
sparqlmethod = "substr(" + parameters.get(1) + "," + parameters.get(0) + "," + parameters.get(2) + ")";
} else {
sparqlmethod = "substr(" + parameters.get(1) + "," + parameters.get(0) + ")";
}
break;
case CONTAINS:
sparqlmethod = "regex(" + parameters.get(0) + "," + parameters.get(1) + ", \"i\")";
//TODO replacing with contains sparqlmethod = "contains(" + parameters.get(1) + "," + parameters.get(0) + ")";
break;
case CONCAT:
sparqlmethod = "concat(" + parameters.get(0) + "," + parameters.get(1) + ")";
break;
case LENGTH:
sparqlmethod = "STRLEN(" + parameters.get(0) + ")";
break;
case YEAR:
sparqlmethod = "year(" + parameters.get(0) + ")";
break;
case MONTH:
sparqlmethod = "month(" + parameters.get(0) + ")";
break;
case DAY:
sparqlmethod = "day(" + parameters.get(0) + ")";
break;
case HOUR:
sparqlmethod = "hours(" + parameters.get(0) + ")";
break;
case MINUTE:
sparqlmethod = "minutes(" + parameters.get(0) + ")";
break;
case SECOND:
sparqlmethod = "seconds(" + parameters.get(0) + ")";
break;
case ROUND:
sparqlmethod = "round(" + parameters.get(0) + ")";
break;
case FLOOR:
sparqlmethod = "floor(" + parameters.get(0) + ")";
break;
case CEILING:
sparqlmethod = "ceil(" + parameters.get(0) + ")";
break;
default:
throw new UnsupportedOperationException("Unsupported method: " + methodCall.toString());
}
return sparqlmethod;
}
开发者ID:peterjohnlawrence,项目名称:com.inova8.odata2sparql.v4,代码行数:75,代码来源:SparqlExpressionVisitor.java
示例15: visitMethodCall
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Override
public VisitorOperand visitMethodCall(final MethodKind methodCall, final List<VisitorOperand> parameters)
throws ExpressionVisitException, ODataApplicationException {
final MethodCallOperator methodCallOperation = new MethodCallOperator(parameters);
switch (methodCall) {
case ENDSWITH:
return methodCallOperation.endsWith();
case INDEXOF:
return methodCallOperation.indexOf();
case STARTSWITH:
return methodCallOperation.startsWith();
case TOLOWER:
return methodCallOperation.toLower();
case TOUPPER:
return methodCallOperation.toUpper();
case TRIM:
return methodCallOperation.trim();
case SUBSTRING:
return methodCallOperation.substring();
case CONTAINS:
return methodCallOperation.contains();
case CONCAT:
return methodCallOperation.concat();
case LENGTH:
return methodCallOperation.length();
case YEAR:
return methodCallOperation.year();
case MONTH:
return methodCallOperation.month();
case DAY:
return methodCallOperation.day();
case HOUR:
return methodCallOperation.hour();
case MINUTE:
return methodCallOperation.minute();
case SECOND:
return methodCallOperation.second();
case FRACTIONALSECONDS:
return methodCallOperation.fractionalseconds();
case ROUND:
return methodCallOperation.round();
case FLOOR:
return methodCallOperation.floor();
case CEILING:
return methodCallOperation.ceiling();
default:
return throwNotImplemented();
}
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:53,代码来源:ExpressionVisitorImpl.java
示例16: getType
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
private String getType(final MethodKind methodCall) {
switch (methodCall) {
case STARTSWITH:
case CONTAINS:
case ENDSWITH:
case ISOF:
case GEOINTERSECTS:
return BOOLEAN_NAME;
case INDEXOF:
case LENGTH:
case ROUND:
case FLOOR:
case CEILING:
case YEAR:
case MONTH:
case DAY:
case HOUR:
case MINUTE:
case SECOND:
case FRACTIONALSECONDS:
case TOTALOFFSETMINUTES:
case TOTALSECONDS:
case GEODISTANCE:
case GEOLENGTH:
return NUMBER_NAME;
case CONCAT:
case SUBSTRING:
case TOLOWER:
case TOUPPER:
case TRIM:
return STRING_NAME;
case DATE:
return DATE_NAME;
case TIME:
return TIME_NAME;
case MAXDATETIME:
case MINDATETIME:
case NOW:
return DATETIMEOFFSET_NAME;
case CAST:
return UNKNOWN_NAME;
}
return UNKNOWN_NAME;
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:51,代码来源:ExpressionJsonVisitor.java
示例17: parseMethod
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
private Expression parseMethod(final TokenKind nextMethod) throws UriParserException, UriValidationException {
// The method token text includes the opening parenthesis so that method calls can be recognized unambiguously.
// OData identifiers have to be considered after that.
final MethodKind methodKind = tokenToMethod.get(nextMethod);
return new MethodImpl(methodKind, parseMethodParameters(methodKind));
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:7,代码来源:ExpressionParser.java
示例18: MethodImpl
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
public MethodImpl(final MethodKind method, final List<Expression> parameters) {
this.method = method;
this.parameters = parameters;
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:5,代码来源:MethodImpl.java
示例19: getMethod
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Override
public MethodKind getMethod() {
return method;
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:5,代码来源:MethodImpl.java
示例20: filter
import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; //导入依赖的package包/类
@Test
public void filter() throws Exception {
final DebugTabUri tab = new DebugTabUri(new UriInfoImpl().setKind(UriInfoKind.all)
.setSystemQueryOption(new FilterOptionImpl().setExpression(
new BinaryImpl(new LiteralImpl("1", EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int64)),
BinaryOperatorKind.GT,
new LiteralImpl("2", EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.SByte)),
EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean)))));
assertEquals("{\"kind\":\"all\",\"filter\":{"
+ "\"nodeType\":\"binary\",\"operator\":\"gt\",\"type\":\"Boolean\","
+ "\"left\":{\"nodeType\":\"literal\",\"type\":\"Edm.Int64\",\"value\":\"1\"},"
+ "\"right\":{\"nodeType\":\"literal\",\"type\":\"Edm.SByte\",\"value\":\"2\"}}}",
createJson(tab));
assertThat(createHtml(tab), allOf(
startsWith("<h2>Kind</h2>\n"
+ "<p>all</p>\n"
+ "<h2>Filter Option</h2>\n"
+ "<ul>\n"
+ "<li class=\"json\">"),
containsString("nodeType"), containsString("binary"),
containsString("operator"), containsString("gt")));
assertThat(createHtml(tab), allOf(
containsString("literal"), containsString("Int64"),
containsString("SByte"), containsString("2"),
endsWith("</li>\n</ul>\n")));
assertEquals("{\"kind\":\"all\",\"filter\":{"
+ "\"nodeType\":\"method\",\"operator\":\"ceiling\",\"type\":\"Number\","
+ "\"parameters\":[{\"nodeType\":\"literal\",\"type\":\"Edm.Decimal\",\"value\":\"1.5\"}]}}",
createJson(new DebugTabUri(new UriInfoImpl().setKind(UriInfoKind.all)
.setSystemQueryOption(new FilterOptionImpl().setExpression(
new MethodImpl(MethodKind.CEILING, Arrays.asList(
(Expression) new LiteralImpl("1.5",
EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Decimal)))))))));
EdmEntityType edmEntityType = mock(EdmEntityType.class);
when(edmEntityType.getFullQualifiedName()).thenReturn(new FullQualifiedName("ns", "entityType"));
EdmProperty edmProperty = mock(EdmProperty.class);
when(edmProperty.getName()).thenReturn("property");
assertEquals("{\"kind\":\"all\",\"filter\":{"
+ "\"nodeType\":\"member\",\"type\":\"unknown\",\"typeFilter\":\"ns.entityType\","
+ "\"resourceSegments\":[{\"nodeType\":\"primitiveProperty\",\"name\":\"property\",\"type\":\"unknown\"}]}}",
createJson(new DebugTabUri(new UriInfoImpl().setKind(UriInfoKind.all)
.setSystemQueryOption(new FilterOptionImpl().setExpression(
new MemberImpl(new UriInfoImpl().setKind(UriInfoKind.resource)
.addResourcePart(new UriResourcePrimitivePropertyImpl(edmProperty)),
edmEntityType))))));
}
开发者ID:apache,项目名称:olingo-odata4,代码行数:50,代码来源:DebugTabUriTest.java
注:本文中的org.apache.olingo.server.api.uri.queryoption.expression.MethodKind类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论