You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ko...@apache.org on 2014/01/23 12:30:43 UTC
[12/12] git commit: [OLINGO-63] Uri Parser: Add support for II
[OLINGO-63] Uri Parser: Add support for II
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/commit/7955eadf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/7955eadf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/7955eadf
Branch: refs/heads/master
Commit: 7955eadf027d02d45b64d83901a6b9ec1d6c509d
Parents: 4954467
Author: Sven Kobler <sv...@sap.com>
Authored: Wed Dec 18 11:23:48 2013 +0100
Committer: Sven Kobler <sv...@sap.com>
Committed: Thu Jan 23 12:28:34 2014 +0100
----------------------------------------------------------------------
.../core/edm/provider/EdmProviderImpl.java | 1 +
.../olingo/odata4/producer/api/uri/UriInfo.java | 19 +-
.../odata4/producer/api/uri/UriInfoAll.java | 24 +
.../odata4/producer/api/uri/UriInfoBatch.java | 2 +-
.../producer/api/uri/UriInfoCrossjoin.java | 28 +
.../producer/api/uri/UriInfoEntityId.java | 48 +
.../odata4/producer/api/uri/UriInfoKind.java | 3 +-
.../producer/api/uri/UriInfoMetadata.java | 28 +
.../producer/api/uri/UriInfoResource.java | 64 +
.../odata4/producer/api/uri/UriInfoService.java | 23 +
.../odata4/producer/api/uri/UriParameter.java | 30 +
.../odata4/producer/api/uri/UriPathInfo.java | 30 -
.../producer/api/uri/UriPathInfoKind.java | 24 -
.../producer/api/uri/UriResourceAction.java | 35 +
.../odata4/producer/api/uri/UriResourceAll.java | 26 +
.../odata4/producer/api/uri/UriResourceAny.java | 26 +
.../api/uri/UriResourceComplexProperty.java | 28 +
.../producer/api/uri/UriResourceCount.java | 24 +
.../producer/api/uri/UriResourceEntitySet.java | 40 +
.../producer/api/uri/UriResourceFunction.java | 47 +
.../odata4/producer/api/uri/UriResourceIt.java | 32 +
.../producer/api/uri/UriResourceKind.java | 26 +
.../producer/api/uri/UriResourceNavigation.java | 33 +
.../producer/api/uri/UriResourcePart.java | 24 +
.../producer/api/uri/UriResourcePartTyped.java | 28 +
.../producer/api/uri/UriResourceProperty.java | 25 +
.../odata4/producer/api/uri/UriResourceRef.java | 24 +
.../producer/api/uri/UriResourceRoot.java | 27 +
.../api/uri/UriResourceSimpleProperty.java | 24 +
.../producer/api/uri/UriResourceSingleton.java | 28 +
.../producer/api/uri/UriResourceValue.java | 24 +
.../olingo/odata4/producer/api/uri/UriType.java | 83 -
.../producer/api/uri/optiontree/OptionNode.java | 76 +
.../api/uri/optiontree/OptionProperty.java | 27 +
.../api/uri/queryoption/AliasQueryOption.java | 26 +
.../api/uri/queryoption/CustomQueryOption.java | 23 +
.../uri/queryoption/ExceptionVisitExpand.java | 28 +
.../api/uri/queryoption/ExpandItem.java | 47 +
.../api/uri/queryoption/ExpandOption.java | 25 +
.../api/uri/queryoption/ExpandVisitor.java | 36 +
.../api/uri/queryoption/FilterOption.java | 25 +
.../api/uri/queryoption/FormatOption.java | 24 +
.../producer/api/uri/queryoption/IdOption.java | 23 +
.../api/uri/queryoption/InlineCountOption.java | 23 +
.../api/uri/queryoption/LevelExpandOption.java | 27 +
.../api/uri/queryoption/OrderByItem.java | 34 +
.../api/uri/queryoption/OrderByOption.java | 27 +
.../api/uri/queryoption/QueryOption.java | 26 +
.../api/uri/queryoption/SearchOption.java | 26 +
.../api/uri/queryoption/SelectItem.java | 43 +
.../api/uri/queryoption/SelectOption.java | 27 +
.../api/uri/queryoption/SkipOption.java | 25 +
.../api/uri/queryoption/SkipTokenOption.java | 26 +
.../api/uri/queryoption/SortOrderEnum.java | 20 +
.../api/uri/queryoption/SystemQueryOption.java | 25 +
.../uri/queryoption/SystemQueryOptionEnum.java | 45 +
.../producer/api/uri/queryoption/TopOption.java | 23 +
.../api/uri/queryoption/VisitableExpand.java | 48 +
.../expression/BinaryExpression.java | 29 +
.../uri/queryoption/expression/Expression.java | 23 +
.../uri/queryoption/expression/LambdaRef.java | 25 +
.../api/uri/queryoption/expression/Literal.java | 25 +
.../api/uri/queryoption/expression/Member.java | 29 +
.../uri/queryoption/expression/MethodCall.java | 31 +
.../expression/SupportedBinaryOperators.java | 56 +
.../expression/SupportedMethodCalls.java | 55 +
.../expression/SupportedUnaryOperators.java | 44 +
.../uri/queryoption/expression/TypeLiteral.java | 29 +
.../queryoption/expression/UnaryOperator.java | 27 +
.../uri/queryoption/search/SearchBinary.java | 28 +
.../queryoption/search/SearchExpression.java | 23 +
.../api/uri/queryoption/search/SearchTerm.java | 23 +
.../api/uri/queryoption/search/SearchUnary.java | 23 +
.../search/SupportedSearchBinaryOperators.java | 44 +
.../search/SupportedSearchUnaryOperators.java | 43 +
.../odata4/producer/core/uri/antlr/UriLexer.g4 | 38 +-
.../odata4/producer/core/uri/antlr/UriParser.g4 | 188 +-
.../producer/core/uri/ErrorCollector.java | 145 ++
.../odata4/producer/core/uri/ErrorHandler.java | 55 -
.../producer/core/uri/ExpandSegmentCount.java | 25 +
.../producer/core/uri/ExpandSegmentIt.java | 25 +
.../producer/core/uri/ExpandSegmentRef.java | 25 +
.../odata4/producer/core/uri/ParserAdapter.java | 29 +-
.../producer/core/uri/SystemQueryParameter.java | 43 -
.../odata4/producer/core/uri/UriInfoImpl.java | 270 ++-
.../producer/core/uri/UriInfoImplAll.java | 28 -
.../producer/core/uri/UriInfoImplBatch.java | 27 -
.../producer/core/uri/UriInfoImplCrossjoin.java | 27 -
.../producer/core/uri/UriInfoImplEntity.java | 28 -
.../producer/core/uri/UriInfoImplMetadata.java | 27 -
.../producer/core/uri/UriInfoImplPath.java | 81 -
.../producer/core/uri/UriKeyPredicateList.java | 47 -
.../producer/core/uri/UriParameterImpl.java | 71 +
.../producer/core/uri/UriParameterlist.java | 43 -
.../producer/core/uri/UriParseTreeVisitor.java | 1614 ++++++++++++++++++
.../producer/core/uri/UriParserException.java | 13 +-
.../odata4/producer/core/uri/UriParserImpl.java | 580 -------
.../core/uri/UriParserSemanticException.java | 39 +
.../core/uri/UriParserSyntaxException.java | 36 +
.../core/uri/UriPathInfoActionImpl.java | 49 -
.../core/uri/UriPathInfoEntitySetImpl.java | 48 -
.../core/uri/UriPathInfoFunctionImpl.java | 64 -
.../odata4/producer/core/uri/UriPathInfoIT.java | 53 -
.../producer/core/uri/UriPathInfoImpl.java | 202 ---
.../core/uri/UriPathInfoNavEntitySet.java | 43 -
.../core/uri/UriPathInfoSingletonImpl.java | 44 -
.../core/uri/UriResourceActionImpl.java | 75 +
.../producer/core/uri/UriResourceAllImpl.java | 67 +
.../producer/core/uri/UriResourceAnyImpl.java | 67 +
.../uri/UriResourceComplexPropertyImpl.java | 65 +
.../producer/core/uri/UriResourceCountImpl.java | 30 +
.../core/uri/UriResourceEntitySetImpl.java | 74 +
.../core/uri/UriResourceFunctionImpl.java | 110 ++
.../core/uri/UriResourceImplKeyPred.java | 75 +
.../producer/core/uri/UriResourceImplTyped.java | 43 +
.../producer/core/uri/UriResourceItImpl.java | 83 +
.../uri/UriResourceNavigationPropertyImpl.java | 72 +
.../producer/core/uri/UriResourcePartImpl.java | 39 +
.../core/uri/UriResourcePropertyImpl.java | 54 +
.../producer/core/uri/UriResourceRefImpl.java | 34 +
.../producer/core/uri/UriResourceRootImpl.java | 32 +
.../core/uri/UriResourceSimplePropertyImpl.java | 59 +
.../core/uri/UriResourceSingletonImpl.java | 54 +
.../producer/core/uri/UriResourceValueImpl.java | 35 +
.../producer/core/uri/expression/Alias.java | 35 -
.../producer/core/uri/expression/Binary.java | 50 -
.../expression/ExceptionVisitExpression.java | 28 -
.../core/uri/expression/Expression.java | 25 -
.../core/uri/expression/ExpressionVisitor.java | 36 -
.../producer/core/uri/expression/Literal.java | 34 -
.../producer/core/uri/expression/Member.java | 54 -
.../core/uri/expression/MethodCall.java | 46 -
.../expression/SupportedBinaryOperators.java | 56 -
.../uri/expression/SupportedMethodCalls.java | 48 -
.../uri/expression/SupportedUnaryOperators.java | 44 -
.../core/uri/expression/UnaryOperator.java | 40 -
.../producer/core/uri/expression/Visitable.java | 50 -
.../uri/queryoption/AliasQueryOptionImpl.java | 42 +
.../uri/queryoption/CustomQueryOptionImpl.java | 26 +
.../core/uri/queryoption/ExpandItemImpl.java | 193 +++
.../core/uri/queryoption/ExpandOptionImpl.java | 61 +
.../core/uri/queryoption/ExpandSegment.java | 55 +
.../producer/core/uri/queryoption/Filter.java | 36 -
.../core/uri/queryoption/FilterOptionImpl.java | 46 +
.../core/uri/queryoption/FormatOptionImpl.java | 43 +
.../core/uri/queryoption/IdOptionImpl.java | 48 +
.../core/uri/queryoption/InlineCountImpl.java | 48 +
.../core/uri/queryoption/LevelOption.java | 23 +
.../core/uri/queryoption/LevelOptionImpl.java | 54 +
.../core/uri/queryoption/OrderByImpl.java | 51 +
.../core/uri/queryoption/OrderByOptionImpl.java | 51 +
.../core/uri/queryoption/QueryOption.java | 23 -
.../core/uri/queryoption/QueryOptionImpl.java | 47 +
.../core/uri/queryoption/SearchOptionImpl.java | 40 +
.../uri/queryoption/SelectItemOptionImpl.java | 225 +++
.../core/uri/queryoption/SelectOptionImpl.java | 50 +
.../core/uri/queryoption/SkipOptionImpl.java | 49 +
.../uri/queryoption/SkipTokenOptionImpl.java | 52 +
.../core/uri/queryoption/SystemQueryOption.java | 23 -
.../uri/queryoption/SystemQueryOptionImpl.java | 49 +
.../core/uri/queryoption/TopOptionImpl.java | 50 +
.../uri/queryoption/expression/AliasImpl.java | 34 +
.../uri/queryoption/expression/BinaryImpl.java | 67 +
.../expression/ExceptionVisitExpression.java | 28 +
.../queryoption/expression/ExpressionImpl.java | 31 +
.../expression/ExpressionVisitor.java | 40 +
.../queryoption/expression/LambdaRefImpl.java | 44 +
.../uri/queryoption/expression/LiteralImpl.java | 42 +
.../uri/queryoption/expression/MemberImpl.java | 54 +
.../queryoption/expression/MethodCallImpl.java | 66 +
.../queryoption/expression/TypeLiteralImpl.java | 45 +
.../expression/UnaryOperatorImpl.java | 54 +
.../expression/VisitableExression.java | 54 +
.../producer/core/testutil/EdmTechProvider.java | 1201 +++++++------
.../producer/core/testutil/ExpandToText.java | 68 +
.../core/testutil/FilterTreeToText.java | 34 +-
.../producer/core/testutil/FilterValidator.java | 146 +-
.../producer/core/testutil/ParserValidator.java | 293 +---
.../producer/core/testutil/TokenValidator.java | 136 +-
.../producer/core/testutil/TokenWriter.java | 60 -
.../core/testutil/UriLexerWithTrace.java | 4 +-
.../core/testutil/UriResourcePathValidator.java | 224 ++-
.../producer/core/testutil/UriValidator.java | 139 ++
.../producer/core/testutil/Validator.java | 23 +
.../core/uri/antlr/TestByAbapResourcePath.java | 870 ++++++++++
.../producer/core/uri/antlr/TestLexer.java | 59 +-
.../producer/core/uri/antlr/TestParser.java | 525 +++---
.../core/uri/antlr/TestUriParserImpl.java | 987 ++++++++---
188 files changed, 10653 insertions(+), 3971 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmProviderImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmProviderImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmProviderImpl.java
index 71f2cc9..f6a82b8 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmProviderImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmProviderImpl.java
@@ -179,6 +179,7 @@ public class EdmProviderImpl extends EdmImpl {
for (Function function : functions) {
if (function.isBound() == false) {
List<Parameter> parameters = function.getParameters();
+ // TODO add check for parameters == null;
if (parameterNames.size() == parameters.size()) {
List<String> functionParameterNames = new ArrayList<String>();
for (Parameter parameter : parameters) {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfo.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfo.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfo.java
index 66bd8e5..5a01c97 100644
--- a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfo.java
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfo.java
@@ -19,6 +19,23 @@
package org.apache.olingo.odata4.producer.api.uri;
-public interface UriInfo {
+public interface UriInfo extends
+ UriInfoService, UriInfoAll, UriInfoBatch, UriInfoCrossjoin,
+ UriInfoEntityId, UriInfoMetadata, UriInfoResource {
+
+ public UriInfoService asUriInfoService();
+
+ public UriInfoAll asUriInfoAll();
+
+ public UriInfoBatch asUriInfoBatch();
+
+ public UriInfoCrossjoin asUriInfoCrossjoin();
+
+ public UriInfoEntityId asUriInfoEntityId();
+
+ public UriInfoMetadata asUriInfoMetadata();
+
+ public UriInfoResource asUriInfoResource();
+
public UriInfoKind getKind();
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoAll.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoAll.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoAll.java
new file mode 100644
index 0000000..aab9524
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoAll.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+public interface UriInfoAll {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoBatch.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoBatch.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoBatch.java
index 13b6673..accdffe 100644
--- a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoBatch.java
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoBatch.java
@@ -19,6 +19,6 @@
package org.apache.olingo.odata4.producer.api.uri;
-public interface UriInfoBatch {
+public interface UriInfoBatch {
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoCrossjoin.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoCrossjoin.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoCrossjoin.java
new file mode 100644
index 0000000..fa7d86b
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoCrossjoin.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ *
+ * 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.odata4.producer.api.uri;
+
+import java.util.List;
+
+public interface UriInfoCrossjoin {
+
+ List<String> getEntitySetNames();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoEntityId.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoEntityId.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoEntityId.java
new file mode 100644
index 0000000..2afacb3
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoEntityId.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import java.util.List;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmEntityType;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.CustomQueryOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.ExpandOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.FormatOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.IdOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.SelectOption;
+
+/**
+ * Indicates a URL access to an single Entity
+ */
+public interface UriInfoEntityId {
+
+ public List<CustomQueryOption> getCustomQueryOptions();
+
+ public EdmEntityType getEntityTypeCast();
+
+ public ExpandOption getExpandOption();
+
+ public FormatOption getFormatOption();
+
+ public IdOption getIdOption();
+
+ public SelectOption getSelectOption();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoKind.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoKind.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoKind.java
index 79b676b..ee82688 100644
--- a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoKind.java
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoKind.java
@@ -20,6 +20,5 @@
package org.apache.olingo.odata4.producer.api.uri;
public enum UriInfoKind {
- batch,entity, metadata, all, crossjoin, path;
-
+ all, batch, crossjoin, entityId, metadata, resource, service;
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoMetadata.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoMetadata.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoMetadata.java
new file mode 100644
index 0000000..cf73412
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoMetadata.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.producer.api.uri.queryoption.FormatOption;
+
+public interface UriInfoMetadata {
+ public String getContext();
+
+ public FormatOption getFormatOption();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoResource.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoResource.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoResource.java
new file mode 100644
index 0000000..9be2b1c
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoResource.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import java.util.List;
+
+import org.apache.olingo.odata4.producer.api.uri.queryoption.CustomQueryOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.ExpandOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.FilterOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.FormatOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.IdOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.InlineCountOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.OrderByOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.SearchOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.SelectOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.SkipOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.SkipTokenOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.TopOption;
+
+public interface UriInfoResource {
+
+ List<CustomQueryOption> getCustomQueryOptions();
+
+ ExpandOption getExpandOption();
+
+ FilterOption getFilterOption();
+
+ FormatOption getFormatOption();
+
+ IdOption getIdOption();
+
+ InlineCountOption getInlineCountOption();
+
+ OrderByOption getOrderByOption();
+
+ SearchOption getSearchOption();
+
+ SelectOption getSelectOption();
+
+ SkipOption getSkipOption();
+
+ SkipTokenOption getSkipTokenOption();
+
+ TopOption getTopOption();
+
+ List<UriResourcePart> getUriResourceParts();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoService.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoService.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoService.java
new file mode 100644
index 0000000..7286904
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriInfoService.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+public interface UriInfoService {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriParameter.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriParameter.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriParameter.java
new file mode 100644
index 0000000..c4deb50
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriParameter.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.producer.api.uri.queryoption.expression.Expression;
+
+public interface UriParameter {
+
+ public String getAlias();
+ public String getText();
+ public Expression getExression();
+ public String getName();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriPathInfo.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriPathInfo.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriPathInfo.java
deleted file mode 100644
index f3d17a4..0000000
--- a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriPathInfo.java
+++ /dev/null
@@ -1,30 +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.odata4.producer.api.uri;
-
-import org.apache.olingo.odata4.commons.api.edm.EdmEntityContainer;
-
-public interface UriPathInfo {
- public UriPathInfoKind getKind();
-
- public EdmEntityContainer getEntityContainer();
-
- public boolean isCollection();
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriPathInfoKind.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriPathInfoKind.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriPathInfoKind.java
deleted file mode 100644
index 27bb8b9..0000000
--- a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriPathInfoKind.java
+++ /dev/null
@@ -1,24 +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.odata4.producer.api.uri;
-
-public enum UriPathInfoKind {
- entitySet, navEntitySet, singleton, action, function, it;
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAction.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAction.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAction.java
new file mode 100644
index 0000000..321d143
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAction.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmAction;
+import org.apache.olingo.odata4.commons.api.edm.EdmActionImport;
+
+public interface UriResourceAction extends UriResourcePartTyped {
+
+ EdmAction getAction();
+
+ /**
+ * Convenience method which return the {@link EdmActionImport} which was used in
+ * the resource path to define the {@link EdmAction}.
+ * @return
+ */
+ EdmActionImport getActionImport();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAll.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAll.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAll.java
new file mode 100644
index 0000000..95c0e00
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAll.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.producer.api.uri.queryoption.expression.Expression;
+
+public interface UriResourceAll extends UriResourcePartTyped {
+ public String getLamdaVariable();
+ public Expression getExpression();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAny.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAny.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAny.java
new file mode 100644
index 0000000..2405cbf
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceAny.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.producer.api.uri.queryoption.expression.Expression;
+
+public interface UriResourceAny extends UriResourcePartTyped {
+ public String getLamdaVariable();
+ public Expression getExpression();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceComplexProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceComplexProperty.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceComplexProperty.java
new file mode 100644
index 0000000..ce7d614
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceComplexProperty.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmComplexType;
+
+public interface UriResourceComplexProperty extends UriResourceProperty {
+ EdmComplexType getComplexType();
+
+ EdmComplexType getComplexTypeFilter();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceCount.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceCount.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceCount.java
new file mode 100644
index 0000000..d4be146
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceCount.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+
+public interface UriResourceCount extends UriResourcePart {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceEntitySet.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceEntitySet.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceEntitySet.java
new file mode 100644
index 0000000..349e45e
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceEntitySet.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import java.util.List;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmEntitySet;
+import org.apache.olingo.odata4.commons.api.edm.EdmEntityType;
+import org.apache.olingo.odata4.commons.api.edm.EdmType;
+
+public interface UriResourceEntitySet extends UriResourcePartTyped {
+
+
+ EdmEntitySet getEntitySet();
+
+ EdmEntityType getEntityType();
+
+ List<UriParameter> getKeyPredicates();
+
+ EdmType getTypeFilterOnCollection();
+
+ EdmType getTypeFilterOnEntry();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceFunction.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceFunction.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceFunction.java
new file mode 100644
index 0000000..45d2b31
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceFunction.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import java.util.List;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmFunction;
+import org.apache.olingo.odata4.commons.api.edm.EdmFunctionImport;
+import org.apache.olingo.odata4.commons.api.edm.EdmType;
+
+public interface UriResourceFunction extends UriResourcePartTyped {
+
+
+ EdmFunction getFunction();
+
+ /**
+ * Convenience method which return the {@link EdmFunctionImport} which was used in
+ * the resource path to define the {@link EdmFunction}.
+ * @return
+ */
+ EdmFunctionImport getFunctionImport();
+
+ List<UriParameter> getKeyPredicates();
+
+ List<UriParameter> getParameters();
+
+ EdmType getTypeFilterOnCollection();
+
+ EdmType getTypeFilterOnEntry();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceIt.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceIt.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceIt.java
new file mode 100644
index 0000000..cd86f1d
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceIt.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmType;
+
+/**
+ * Class indicating the $it reference. $it may be used within filter to
+ * refer to the last EDM object reference in the resource path.
+ */
+public interface UriResourceIt extends UriResourcePartTyped {
+
+ EdmType getTypeFilterOnCollection();
+ EdmType getTypeFilterOnEntry();
+ boolean isExplicitIt();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceKind.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceKind.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceKind.java
new file mode 100644
index 0000000..3acf57e
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceKind.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ *
+ * 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.odata4.producer.api.uri;
+
+public enum UriResourceKind {
+ action, entitySet, function, it, singleton, navigationProperty,
+ simpleProperty, complexProperty, value, count, ref, root, lamdaAll, lamdaAny
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceNavigation.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceNavigation.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceNavigation.java
new file mode 100644
index 0000000..de80fd9
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceNavigation.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import java.util.List;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmNavigationProperty;
+import org.apache.olingo.odata4.commons.api.edm.EdmType;
+
+public interface UriResourceNavigation extends UriResourcePartTyped {
+
+ List<UriParameter> getKeyPredicates();
+ EdmNavigationProperty getNavigationProperty();
+
+ EdmType getTypeFilterOnCollection();
+ EdmType getTypeFilterOnEntry();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourcePart.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourcePart.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourcePart.java
new file mode 100644
index 0000000..0a3312a
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourcePart.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+
+public interface UriResourcePart {
+ UriResourceKind getKind();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourcePartTyped.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourcePartTyped.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourcePartTyped.java
new file mode 100644
index 0000000..a44093d
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourcePartTyped.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ *
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmType;
+
+public interface UriResourcePartTyped extends UriResourcePart {
+ EdmType getType();
+
+ boolean isCollection();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceProperty.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceProperty.java
new file mode 100644
index 0000000..04cbbf1
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceProperty.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmProperty;
+
+public interface UriResourceProperty extends UriResourcePartTyped {
+ EdmProperty getProperty();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceRef.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceRef.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceRef.java
new file mode 100644
index 0000000..bb80032
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceRef.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+
+public interface UriResourceRef extends UriResourcePart {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceRoot.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceRoot.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceRoot.java
new file mode 100644
index 0000000..02ad4b9
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceRoot.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+/**
+ * Class indicating the $root reference. $root may be used within filter to
+ * refer to the current OData service
+ */
+public interface UriResourceRoot extends UriResourcePart {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceSimpleProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceSimpleProperty.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceSimpleProperty.java
new file mode 100644
index 0000000..8730e05
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceSimpleProperty.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+
+public interface UriResourceSimpleProperty extends UriResourceProperty{
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceSingleton.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceSingleton.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceSingleton.java
new file mode 100644
index 0000000..b34295d
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceSingleton.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmSingleton;
+import org.apache.olingo.odata4.commons.api.edm.EdmType;
+
+public interface UriResourceSingleton extends UriResourcePartTyped {
+ EdmType getEntityType();
+
+ EdmSingleton getSingleton();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceValue.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceValue.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceValue.java
new file mode 100644
index 0000000..d5c8734
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriResourceValue.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri;
+
+
+public interface UriResourceValue extends UriResourcePart {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriType.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriType.java
deleted file mode 100644
index a06a712..0000000
--- a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/UriType.java
+++ /dev/null
@@ -1,83 +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.odata4.producer.api.uri;
-
-public enum UriType {
- TYPE_ENTITY_SET,
- TYPE_ENTITY_SET_COUNT,
- TYPE_MEDIA_REFERENCE,
- TYPE_REFERENCE_COLLECTION,
- /*
- * Singleton
- */
- TYPE_ENTITY,
- TYPE_MEDIA_STREAM,
- TYPE_REFERENCE,
-
- /*
- * Property Path
- */
- TYPE_PROPERTY_PRIMITIVE,
- TYPE_PROPERTY_PRIMITIVE_COLLECTION,
- TYPE_PROPERTY_PRIMITIVE_VALUE,
- TYPE_PROPERTY_COMPLEX,
-
- /*
- * Crossjoin
- */
- TYPE_CROSSJOIN,
-
- /*
- * $all
- */
- TYPE_SERVICE_ALL,
- /*
- * ActionImport
- */
- TYPE_AI_ENTITY,
- /*
- * FunctionImport
- */
- TYPE_FI_ENTITY,
- TYPE_FI_ENTITY_SET,
- TYPE_FI_ENTITY_SET_COUNT,
- TYPE_FI_PROPERTY_PRIMITIVE,
- TYPE_FI_PROPERTY_PRIMITIVE_COLL,
- TYPE_FI_PROPERTY_PRIMITIVE_COLL_COUNT,
- TYPE_FI_PROPERTY_COMPLEX,
- TYPE_FI_PROPERTY_COMPLEX_COLL,
- TYPE_FI_PROPERTY_COMPLEX_COLL_COUNT,
- /*
- * BoundFunction
- */
- TYPE_BF_ENTITY,
- TYPE_BF_ENTITY_SET,
- TYPE_BF_PROP_PRIM,
- TYPE_BF_PROP_COMP,
- TYPE_BF_PROP_COMP_COLL,
- TYPE_BF_PROP_PRIM_COLL,
- /*
- * BoundAction
- */
- TYPE_BA_ENTITY_SET,
- TYPE_BA_ENTITY,
- TYPE_BA_PROP_PRIM,
- TYPE_BA_PROP_PRIM_COLL,
- TYPE_BA_PROP_COMP;
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/optiontree/OptionNode.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/optiontree/OptionNode.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/optiontree/OptionNode.java
new file mode 100644
index 0000000..31f541d
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/optiontree/OptionNode.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri.optiontree;
+
+import java.util.List;
+
+import org.apache.olingo.odata4.producer.api.uri.UriResourceProperty;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.FilterOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.InlineCountOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.OrderByOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.SearchOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.SkipOption;
+import org.apache.olingo.odata4.producer.api.uri.queryoption.TopOption;
+
+/**
+ * Contains the merged $expand and $select options
+ */
+public interface OptionNode {
+
+ /**
+ * Contains the list of non navigation properties which should serialized at this expand level.
+ */
+ List<UriResourceProperty> getPropertyChainList();
+
+ List<OptionProperty> getExpandetNavigationProperties();
+
+ /**
+ * Contains the filter which should be applied to this expand level.
+ */
+ FilterOption getFilter();
+
+ /**
+ * Contains the search information which should be applied to this expand level.
+ */
+ SearchOption getSearch();
+
+ /**
+ * Contains the orderBy information which should be applied to this expand level.
+ */
+ OrderByOption getOrderBy();
+
+ /**
+ * Contains the information about how many output entities should be skipped at this
+ * expand level.
+ */
+ SkipOption getSkip();
+
+ /**
+ * Contains the information about how many output items should be serialized at this
+ * expand level.
+ */
+ TopOption getTop();
+
+ /**
+ * Contains the information whether the number of output items should be serialized
+ * at this expand level
+ */
+ InlineCountOption getInlineCount();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/optiontree/OptionProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/optiontree/OptionProperty.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/optiontree/OptionProperty.java
new file mode 100644
index 0000000..bc9c8e2
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/optiontree/OptionProperty.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri.optiontree;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmNavigationProperty;
+
+public interface OptionProperty {
+ EdmNavigationProperty getNavigationProperty();
+
+ OptionNode getOptionNode();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/AliasQueryOption.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/AliasQueryOption.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/AliasQueryOption.java
new file mode 100644
index 0000000..d9fc828
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/AliasQueryOption.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri.queryoption;
+
+import org.apache.olingo.odata4.producer.api.uri.queryoption.expression.Expression;
+
+public interface AliasQueryOption extends QueryOption {
+ public Expression getAliasValue();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/CustomQueryOption.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/CustomQueryOption.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/CustomQueryOption.java
new file mode 100644
index 0000000..cbc395b
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/CustomQueryOption.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri.queryoption;
+
+public interface CustomQueryOption extends QueryOption {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExceptionVisitExpand.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExceptionVisitExpand.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExceptionVisitExpand.java
new file mode 100644
index 0000000..433f5f0
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExceptionVisitExpand.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri.queryoption;
+
+public class ExceptionVisitExpand extends Exception {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 822365726050299076L;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExpandItem.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExpandItem.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExpandItem.java
new file mode 100644
index 0000000..55d6b80
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExpandItem.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri.queryoption;
+
+import java.util.List;
+
+import org.apache.olingo.odata4.producer.api.uri.UriResourceProperty;
+
+public interface ExpandItem {
+ boolean isStar();
+
+ List<UriResourceProperty> getPropertyChainList();
+
+ LevelExpandOption getLevel();
+
+ FilterOption getFilter();
+
+ SearchOption getSearch();
+
+ OrderByOption getOrderBy();
+
+ SkipOption getSkip();
+
+ TopOption getTop();
+
+ InlineCountOption getInlineCount();
+
+ SelectOption getSelect();
+
+ ExpandOption getExpand();
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7955eadf/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExpandOption.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExpandOption.java b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExpandOption.java
new file mode 100644
index 0000000..5ccefd8
--- /dev/null
+++ b/odata4-lib/odata4-producer-api/src/main/java/org/apache/olingo/odata4/producer/api/uri/queryoption/ExpandOption.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * 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.odata4.producer.api.uri.queryoption;
+
+import java.util.List;
+
+public interface ExpandOption extends SystemQueryOption {
+ List<ExpandItem> getExpandItems();
+}