You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/02/19 14:42:08 UTC
[28/29] git commit: [OLINGO-167] merge master
[OLINGO-167] merge master
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/b4417ffc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/b4417ffc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/b4417ffc
Branch: refs/heads/olingo167MetadataDocument
Commit: b4417ffcaf083d4676a3cb2ebc34c945ef4a536a
Parents: 456b5b1 30ca8f0
Author: Stephan Klevenz <st...@sap.com>
Authored: Wed Feb 19 13:34:10 2014 +0100
Committer: Stephan Klevenz <st...@sap.com>
Committed: Wed Feb 19 13:34:10 2014 +0100
----------------------------------------------------------------------
.gitignore | 1 +
.../olingo/odata4/client/api/ODataConsumer.java | 5 -
.../odata4/client/core/ODataConsumerImpl.java | 8 -
.../odata4/client/core/ODataConsumerTest.java | 18 +-
.../commons/api/ODataApplicationException.java | 36 +
.../odata4/commons/api/ODataException.java | 36 +
.../api/ODataNotImplementedException.java | 33 +
.../olingo/odata4/commons/api/edm/Edm.java | 2 -
.../commons/api/edm/EdmNavigationProperty.java | 1 -
.../commons/api/edm/FullQualifiedName.java | 82 +
.../odata4/commons/api/edm/provider/Action.java | 53 -
.../commons/api/edm/provider/ActionImport.java | 44 -
.../commons/api/edm/provider/AliasInfo.java | 43 -
.../commons/api/edm/provider/Annotation.java | 66 -
.../commons/api/edm/provider/BindingTarget.java | 56 -
.../commons/api/edm/provider/ComplexType.java | 60 -
.../commons/api/edm/provider/EdmProvider.java | 168 --
.../api/edm/provider/EntityContainer.java | 87 -
.../api/edm/provider/EntityContainerInfo.java | 43 -
.../commons/api/edm/provider/EntitySet.java | 53 -
.../commons/api/edm/provider/EntitySetPath.java | 44 -
.../commons/api/edm/provider/EntityType.java | 81 -
.../commons/api/edm/provider/EnumMember.java | 49 -
.../commons/api/edm/provider/EnumType.java | 69 -
.../commons/api/edm/provider/Expression.java | 24 -
.../api/edm/provider/FullQualifiedName.java | 82 -
.../commons/api/edm/provider/Function.java | 65 -
.../api/edm/provider/FunctionImport.java | 60 -
.../commons/api/edm/provider/Mapping.java | 89 -
.../api/edm/provider/NavigationProperty.java | 112 -
.../edm/provider/NavigationPropertyBinding.java | 43 -
.../commons/api/edm/provider/Operation.java | 78 -
.../api/edm/provider/OperationImport.java | 45 -
.../commons/api/edm/provider/Parameter.java | 105 -
.../commons/api/edm/provider/Property.java | 138 --
.../commons/api/edm/provider/PropertyRef.java | 53 -
.../api/edm/provider/ReferentialConstraint.java | 46 -
.../commons/api/edm/provider/ReturnType.java | 85 -
.../odata4/commons/api/edm/provider/Schema.java | 127 -
.../commons/api/edm/provider/Singleton.java | 42 -
.../api/edm/provider/StructuralType.java | 87 -
.../odata4/commons/api/edm/provider/Target.java | 44 -
.../odata4/commons/api/edm/provider/Term.java | 139 --
.../api/edm/provider/TypeDefinition.java | 89 -
.../exception/ODataApplicationException.java | 36 -
.../commons/api/exception/ODataException.java | 36 -
.../exception/ODataNotImplementedException.java | 33 -
.../commons/core/ODataCommonsCoreImpl.java | 31 -
.../odata4/commons/core/edm/ActionMapKey.java | 2 +-
.../olingo/odata4/commons/core/edm/EdmImpl.java | 2 +-
.../odata4/commons/core/edm/FunctionMapKey.java | 2 +-
.../primitivetype/AbstractPrimitiveType.java | 2 +-
.../edm/primitivetype/EdmPrimitiveTypeKind.java | 2 +-
.../core/edm/provider/EdmActionImpl.java | 31 -
.../core/edm/provider/EdmActionImportImpl.java | 41 -
.../core/edm/provider/EdmBindingTargetImpl.java | 88 -
.../core/edm/provider/EdmComplexTypeImpl.java | 51 -
.../core/edm/provider/EdmElementImpl.java | 28 -
.../edm/provider/EdmEntityContainerImpl.java | 136 --
.../core/edm/provider/EdmEntitySetImpl.java | 31 -
.../core/edm/provider/EdmEntitySetInfoImpl.java | 53 -
.../core/edm/provider/EdmEntityTypeImpl.java | 119 -
.../commons/core/edm/provider/EdmEnumImpl.java | 228 --
.../core/edm/provider/EdmFunctionImpl.java | 51 -
.../edm/provider/EdmFunctionImportImpl.java | 43 -
.../edm/provider/EdmFunctionImportInfoImpl.java | 53 -
.../edm/provider/EdmKeyPropertyRefImpl.java | 89 -
.../core/edm/provider/EdmMemberImpl.java | 38 -
.../commons/core/edm/provider/EdmNamedImpl.java | 39 -
.../edm/provider/EdmNavigationPropertyImpl.java | 98 -
.../core/edm/provider/EdmOperationImpl.java | 110 -
.../edm/provider/EdmOperationImportImpl.java | 62 -
.../core/edm/provider/EdmParameterImpl.java | 99 -
.../core/edm/provider/EdmPropertyImpl.java | 119 -
.../core/edm/provider/EdmProviderImpl.java | 294 ---
.../core/edm/provider/EdmReturnTypeImpl.java | 95 -
.../edm/provider/EdmServiceMetadataImpl.java | 149 --
.../core/edm/provider/EdmSingletonImpl.java | 30 -
.../core/edm/provider/EdmSingletonInfoImpl.java | 53 -
.../edm/provider/EdmStructuralTypeImpl.java | 129 --
.../edm/provider/EdmTypeDefinitionImpl.java | 126 -
.../commons/core/edm/provider/EdmTypeImpl.java | 46 -
.../commons/core/edm/ActionMapKeyTest.java | 2 +-
.../commons/core/edm/EdmImplCachingTest.java | 2 +-
.../commons/core/edm/EdmImplCallCreateTest.java | 2 +-
.../commons/core/edm/FunctionMapKeyTest.java | 2 +-
.../core/edm/provider/EdmActionImplTest.java | 156 --
.../edm/provider/EdmActionImportImplTest.java | 100 -
.../edm/provider/EdmComplexTypeImplTest.java | 163 --
.../provider/EdmEntityContainerImplTest.java | 205 --
.../core/edm/provider/EdmEntitySetImplTest.java | 81 -
.../edm/provider/EdmEntitySetInfoImplTest.java | 51 -
.../edm/provider/EdmEntityTypeImplTest.java | 276 ---
.../commons/core/edm/provider/EdmEnumTest.java | 178 --
.../core/edm/provider/EdmFunctionImplTest.java | 75 -
.../edm/provider/EdmFunctionImportImplTest.java | 84 -
.../provider/EdmFunctionImportInfoImplTest.java | 50 -
.../edm/provider/EdmKeyPropertyRefImplTest.java | 142 --
.../core/edm/provider/EdmMemberImplTest.java | 38 -
.../core/edm/provider/EdmNamedImplTest.java | 41 -
.../provider/EdmNavigationPropertyImplTest.java | 144 --
.../core/edm/provider/EdmParameterImplTest.java | 140 --
.../core/edm/provider/EdmPropertyImplTest.java | 155 --
.../EdmProviderImplOverloadingTest.java | 198 --
.../core/edm/provider/EdmProviderImplTest.java | 231 --
.../edm/provider/EdmReturnTypeImplTest.java | 129 --
.../provider/EdmServiceMetadataImplTest.java | 188 --
.../core/edm/provider/EdmSingletonImplTest.java | 129 --
.../edm/provider/EdmSingletonInfoImplTest.java | 51 -
.../edm/provider/EdmTypeDefinitionImplTest.java | 74 -
.../core/edm/provider/EdmTypeImplTest.java | 44 -
odata4-lib/odata4-fit/pom.xml | 4 +-
odata4-lib/odata4-ref/pom.xml | 4 +-
.../odata4/server/api/edm/provider/Action.java | 53 +
.../server/api/edm/provider/ActionImport.java | 46 +
.../server/api/edm/provider/AliasInfo.java | 43 +
.../server/api/edm/provider/Annotation.java | 68 +
.../server/api/edm/provider/BindingTarget.java | 58 +
.../server/api/edm/provider/ComplexType.java | 62 +
.../server/api/edm/provider/EdmProvider.java | 169 ++
.../api/edm/provider/EntityContainer.java | 89 +
.../api/edm/provider/EntityContainerInfo.java | 45 +
.../server/api/edm/provider/EntitySet.java | 55 +
.../server/api/edm/provider/EntitySetPath.java | 44 +
.../server/api/edm/provider/EntityType.java | 83 +
.../server/api/edm/provider/EnumMember.java | 49 +
.../server/api/edm/provider/EnumType.java | 71 +
.../server/api/edm/provider/Expression.java | 24 +
.../server/api/edm/provider/Function.java | 65 +
.../server/api/edm/provider/FunctionImport.java | 62 +
.../odata4/server/api/edm/provider/Mapping.java | 89 +
.../api/edm/provider/NavigationProperty.java | 113 +
.../edm/provider/NavigationPropertyBinding.java | 43 +
.../server/api/edm/provider/Operation.java | 78 +
.../api/edm/provider/OperationImport.java | 45 +
.../server/api/edm/provider/Parameter.java | 107 +
.../server/api/edm/provider/Property.java | 140 ++
.../server/api/edm/provider/PropertyRef.java | 53 +
.../api/edm/provider/ReferentialConstraint.java | 46 +
.../server/api/edm/provider/ReturnType.java | 87 +
.../odata4/server/api/edm/provider/Schema.java | 127 +
.../server/api/edm/provider/Singleton.java | 44 +
.../server/api/edm/provider/StructuralType.java | 89 +
.../odata4/server/api/edm/provider/Target.java | 46 +
.../odata4/server/api/edm/provider/Term.java | 141 ++
.../server/api/edm/provider/TypeDefinition.java | 91 +
.../odata4/server/api/uri/UriInfoMetadata.java | 6 +-
.../odata4/server/api/uri/UriParameter.java | 2 +-
.../odata4/server/api/uri/UriResource.java | 4 +-
.../server/api/uri/UriResourceAction.java | 2 +-
.../api/uri/UriResourceComplexProperty.java | 2 +-
.../odata4/server/api/uri/UriResourceIt.java | 6 +-
.../odata4/server/api/uri/UriResourceKind.java | 2 +-
.../server/api/uri/UriResourceLambdaAll.java | 5 +-
.../server/api/uri/UriResourceLambdaAny.java | 4 +-
.../server/api/uri/UriResourceLambdaRef.java | 3 +-
.../server/api/uri/UriResourceNavigation.java | 2 +-
.../server/api/uri/UriResourcePartTyped.java | 4 +-
.../server/api/uri/UriResourceProperty.java | 4 +-
.../server/api/uri/UriResourceSingleton.java | 2 +-
.../api/uri/UriResourceStartingTypeFilter.java | 2 +-
.../server/api/uri/optiontree/OptionNode.java | 76 -
.../api/uri/optiontree/OptionProperty.java | 27 -
.../api/uri/queryoption/AliasQueryOption.java | 2 +-
.../uri/queryoption/ExceptionVisitExpand.java | 2 +-
.../api/uri/queryoption/ExpandOption.java | 4 +-
.../api/uri/queryoption/FilterOption.java | 2 +-
.../api/uri/queryoption/FormatOption.java | 4 +-
.../server/api/uri/queryoption/IdOption.java | 4 +-
.../api/uri/queryoption/InlineCountOption.java | 4 +-
.../api/uri/queryoption/LevelsExpandOption.java | 2 +-
.../server/api/uri/queryoption/QueryOption.java | 2 +-
.../api/uri/queryoption/SearchOption.java | 2 +-
.../server/api/uri/queryoption/SelectItem.java | 4 +-
.../server/api/uri/queryoption/TopOption.java | 4 +-
.../queryoption/expression/AliasExpression.java | 4 +-
.../expression/BinaryExpression.java | 2 +-
.../expression/BinaryOperatorKind.java | 57 +
.../uri/queryoption/expression/Constant.java | 35 -
.../uri/queryoption/expression/Enumeration.java | 1 +
.../expression/ExceptionVisitExpression.java | 25 -
.../expression/ExpressionVisitException.java | 25 +
.../expression/ExpressionVisitor.java | 39 +-
.../api/uri/queryoption/expression/Literal.java | 4 +
.../api/uri/queryoption/expression/Member.java | 2 +-
.../uri/queryoption/expression/MethodCall.java | 2 +-
.../queryoption/expression/MethodCallKind.java | 58 +
.../expression/SupportedBinaryOperators.java | 56 -
.../expression/SupportedConstants.java | 47 -
.../expression/SupportedMethodCalls.java | 56 -
.../expression/SupportedUnaryOperators.java | 44 -
.../queryoption/expression/UnaryOperator.java | 2 +-
.../expression/UnaryOperatorKind.java | 44 +
.../expression/VisitableExression.java | 8 +-
.../uri/queryoption/search/SearchBinary.java | 4 +-
.../search/SearchBinaryOperatorKind.java | 45 +
.../api/uri/queryoption/search/SearchTerm.java | 4 +-
.../api/uri/queryoption/search/SearchUnary.java | 4 +-
.../search/SearchUnaryOperatorKind.java | 43 +
.../search/SupportedSearchBinaryOperators.java | 46 -
.../search/SupportedSearchUnaryOperators.java | 43 -
.../odata4/server/core/uri/antlr/UriLexer.g4 | 7 +-
.../odata4/server/core/uri/antlr/UriParser.g4 | 312 +--
.../server/core/edm/provider/EdmActionImpl.java | 31 +
.../core/edm/provider/EdmActionImportImpl.java | 41 +
.../core/edm/provider/EdmBindingTargetImpl.java | 88 +
.../core/edm/provider/EdmComplexTypeImpl.java | 51 +
.../core/edm/provider/EdmElementImpl.java | 28 +
.../edm/provider/EdmEntityContainerImpl.java | 136 ++
.../core/edm/provider/EdmEntitySetImpl.java | 31 +
.../core/edm/provider/EdmEntitySetInfoImpl.java | 53 +
.../core/edm/provider/EdmEntityTypeImpl.java | 119 +
.../server/core/edm/provider/EdmEnumImpl.java | 228 ++
.../core/edm/provider/EdmFunctionImpl.java | 51 +
.../edm/provider/EdmFunctionImportImpl.java | 43 +
.../edm/provider/EdmFunctionImportInfoImpl.java | 53 +
.../edm/provider/EdmKeyPropertyRefImpl.java | 89 +
.../server/core/edm/provider/EdmMemberImpl.java | 38 +
.../server/core/edm/provider/EdmNamedImpl.java | 39 +
.../edm/provider/EdmNavigationPropertyImpl.java | 98 +
.../core/edm/provider/EdmOperationImpl.java | 110 +
.../edm/provider/EdmOperationImportImpl.java | 62 +
.../core/edm/provider/EdmParameterImpl.java | 99 +
.../core/edm/provider/EdmPropertyImpl.java | 119 +
.../core/edm/provider/EdmProviderImpl.java | 294 +++
.../core/edm/provider/EdmReturnTypeImpl.java | 95 +
.../edm/provider/EdmServiceMetadataImpl.java | 149 ++
.../core/edm/provider/EdmSingletonImpl.java | 30 +
.../core/edm/provider/EdmSingletonInfoImpl.java | 53 +
.../edm/provider/EdmStructuralTypeImpl.java | 129 ++
.../edm/provider/EdmTypeDefinitionImpl.java | 126 +
.../server/core/edm/provider/EdmTypeImpl.java | 46 +
.../olingo/odata4/server/core/uri/Parser.java | 134 --
.../odata4/server/core/uri/UriInfoImpl.java | 288 ---
.../server/core/uri/UriParameterImpl.java | 83 -
.../server/core/uri/UriParseTreeVisitor.java | 2181 ------------------
.../server/core/uri/UriResourceActionImpl.java | 77 -
.../uri/UriResourceComplexPropertyImpl.java | 70 -
.../server/core/uri/UriResourceCountImpl.java | 35 -
.../core/uri/UriResourceEntitySetImpl.java | 67 -
.../core/uri/UriResourceFunctionImpl.java | 111 -
.../odata4/server/core/uri/UriResourceImpl.java | 39 -
.../server/core/uri/UriResourceItImpl.java | 65 -
.../core/uri/UriResourceLambdaAllImpl.java | 73 -
.../core/uri/UriResourceLambdaAnyImpl.java | 72 -
.../core/uri/UriResourceLambdaVarImpl.java | 70 -
.../uri/UriResourceNavigationPropertyImpl.java | 63 -
.../uri/UriResourcePrimitivePropertyImpl.java | 59 -
.../server/core/uri/UriResourceRefImpl.java | 36 -
.../server/core/uri/UriResourceRootImpl.java | 62 -
.../core/uri/UriResourceSingletonImpl.java | 71 -
.../uri/UriResourceStartingTypeFilterImpl.java | 68 -
.../server/core/uri/UriResourceTypedImpl.java | 60 -
.../server/core/uri/UriResourceValueImpl.java | 36 -
.../core/uri/UriResourceWithKeysImpl.java | 98 -
.../server/core/uri/apiimpl/UriInfoImpl.java | 291 +++
.../core/uri/apiimpl/UriParameterImpl.java | 83 +
.../core/uri/apiimpl/UriResourceActionImpl.java | 77 +
.../apiimpl/UriResourceComplexPropertyImpl.java | 70 +
.../core/uri/apiimpl/UriResourceCountImpl.java | 35 +
.../uri/apiimpl/UriResourceEntitySetImpl.java | 67 +
.../uri/apiimpl/UriResourceFunctionImpl.java | 111 +
.../core/uri/apiimpl/UriResourceImpl.java | 39 +
.../core/uri/apiimpl/UriResourceItImpl.java | 65 +
.../uri/apiimpl/UriResourceLambdaAllImpl.java | 73 +
.../uri/apiimpl/UriResourceLambdaAnyImpl.java | 72 +
.../uri/apiimpl/UriResourceLambdaVarImpl.java | 70 +
.../UriResourceNavigationPropertyImpl.java | 63 +
.../UriResourcePrimitivePropertyImpl.java | 59 +
.../core/uri/apiimpl/UriResourceRefImpl.java | 36 +
.../core/uri/apiimpl/UriResourceRootImpl.java | 62 +
.../uri/apiimpl/UriResourceSingletonImpl.java | 71 +
.../UriResourceStartingTypeFilterImpl.java | 68 +
.../core/uri/apiimpl/UriResourceTypedImpl.java | 60 +
.../core/uri/apiimpl/UriResourceValueImpl.java | 36 +
.../uri/apiimpl/UriResourceWithKeysImpl.java | 99 +
.../uri/parser/CheckFullContextListener.java | 60 +
.../odata4/server/core/uri/parser/Parser.java | 462 ++++
.../odata4/server/core/uri/parser/RawUri.java | 46 +
.../server/core/uri/parser/UriContext.java | 80 +
.../server/core/uri/parser/UriDecoder.java | 140 ++
.../core/uri/parser/UriParseTreeVisitor.java | 2089 +++++++++++++++++
.../uri/queryoption/AliasQueryOptionImpl.java | 2 +-
.../core/uri/queryoption/CountOptionImpl.java | 42 +
.../core/uri/queryoption/ExpandItemImpl.java | 2 +-
.../uri/queryoption/InlineCountOptionImpl.java | 42 -
.../core/uri/queryoption/LevelsOptionImpl.java | 4 +-
.../core/uri/queryoption/OrderByOptionImpl.java | 2 +-
.../core/uri/queryoption/SearchOptionImpl.java | 6 +-
.../core/uri/queryoption/SelectItemImpl.java | 7 +-
.../core/uri/queryoption/TopOptionImpl.java | 2 -
.../uri/queryoption/expression/AliasImpl.java | 12 +-
.../uri/queryoption/expression/BinaryImpl.java | 14 +-
.../queryoption/expression/ConstantImpl.java | 73 -
.../queryoption/expression/EnumerationImpl.java | 6 +-
.../queryoption/expression/LambdaRefImpl.java | 6 +-
.../uri/queryoption/expression/LiteralImpl.java | 18 +-
.../uri/queryoption/expression/MemberImpl.java | 14 +-
.../queryoption/expression/MethodCallImpl.java | 14 +-
.../queryoption/expression/TypeLiteralImpl.java | 6 +-
.../uri/queryoption/expression/UnaryImpl.java | 14 +-
.../core/edm/provider/EdmActionImplTest.java | 156 ++
.../edm/provider/EdmActionImportImplTest.java | 100 +
.../edm/provider/EdmComplexTypeImplTest.java | 163 ++
.../provider/EdmEntityContainerImplTest.java | 205 ++
.../core/edm/provider/EdmEntitySetImplTest.java | 81 +
.../edm/provider/EdmEntitySetInfoImplTest.java | 51 +
.../edm/provider/EdmEntityTypeImplTest.java | 276 +++
.../server/core/edm/provider/EdmEnumTest.java | 177 ++
.../core/edm/provider/EdmFunctionImplTest.java | 75 +
.../edm/provider/EdmFunctionImportImplTest.java | 84 +
.../provider/EdmFunctionImportInfoImplTest.java | 50 +
.../edm/provider/EdmKeyPropertyRefImplTest.java | 142 ++
.../core/edm/provider/EdmMemberImplTest.java | 38 +
.../core/edm/provider/EdmNamedImplTest.java | 41 +
.../provider/EdmNavigationPropertyImplTest.java | 144 ++
.../core/edm/provider/EdmParameterImplTest.java | 140 ++
.../core/edm/provider/EdmPropertyImplTest.java | 155 ++
.../EdmProviderImplOverloadingTest.java | 198 ++
.../core/edm/provider/EdmProviderImplTest.java | 231 ++
.../edm/provider/EdmReturnTypeImplTest.java | 129 ++
.../provider/EdmServiceMetadataImplTest.java | 188 ++
.../core/edm/provider/EdmSingletonImplTest.java | 129 ++
.../edm/provider/EdmSingletonInfoImplTest.java | 51 +
.../edm/provider/EdmTypeDefinitionImplTest.java | 74 +
.../core/edm/provider/EdmTypeImplTest.java | 44 +
.../edm/provider/PrimitiveTypeBaseTest.java | 117 +
.../server/core/testutil/EdmTechProvider.java | 63 +-
.../core/testutil/EdmTechTestProvider.java | 19 +-
.../server/core/testutil/ExpandValidator.java | 81 +-
.../server/core/testutil/FilterTreeToText.java | 43 +-
.../server/core/testutil/FilterValidator.java | 133 +-
.../odata4/server/core/testutil/ParserTest.java | 53 -
.../server/core/testutil/ParserValidator.java | 158 +-
.../server/core/testutil/ParserWithLogging.java | 56 +
.../server/core/testutil/ResourceValidator.java | 571 +++++
.../server/core/testutil/TestErrorLogger.java | 91 +-
.../core/testutil/UriResourceValidator.java | 562 -----
.../server/core/testutil/UriValidator.java | 50 +-
.../odata4/server/core/uri/RawUriTest.java | 149 ++
.../odata4/server/core/uri/UriInfoImplTest.java | 38 +-
.../server/core/uri/UriParameterImplTest.java | 93 +-
.../core/uri/antlr/TestFullResourcePath.java | 604 ++---
.../odata4/server/core/uri/antlr/TestLexer.java | 12 +-
.../server/core/uri/antlr/TestParser.java | 243 +-
.../core/uri/antlr/TestUriParserImpl.java | 93 +-
.../core/uri/queryoption/QueryOptionTest.java | 40 +-
.../queryoption/expression/ExpressionTest.java | 132 +-
pom.xml | 33 +-
349 files changed, 15177 insertions(+), 14734 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/b4417ffc/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmProviderImpl.java
----------------------------------------------------------------------
diff --cc odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmProviderImpl.java
index 0000000,700f019..a7594ad
mode 000000,100644..100644
--- a/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmProviderImpl.java
+++ b/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmProviderImpl.java
@@@ -1,0 -1,295 +1,294 @@@
+ /*******************************************************************************
+ * 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.server.core.edm.provider;
+
+ import java.util.ArrayList;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+
+ import org.apache.olingo.odata4.commons.api.ODataException;
+ import org.apache.olingo.odata4.commons.api.edm.EdmAction;
+ import org.apache.olingo.odata4.commons.api.edm.EdmComplexType;
+ import org.apache.olingo.odata4.commons.api.edm.EdmEntityContainer;
+ import org.apache.olingo.odata4.commons.api.edm.EdmEntityType;
+ import org.apache.olingo.odata4.commons.api.edm.EdmEnumType;
+ import org.apache.olingo.odata4.commons.api.edm.EdmException;
+ import org.apache.olingo.odata4.commons.api.edm.EdmFunction;
+ import org.apache.olingo.odata4.commons.api.edm.EdmServiceMetadata;
+ import org.apache.olingo.odata4.commons.api.edm.EdmTypeDefinition;
+ import org.apache.olingo.odata4.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.odata4.commons.core.edm.EdmImpl;
+ import org.apache.olingo.odata4.server.api.edm.provider.Action;
+ import org.apache.olingo.odata4.server.api.edm.provider.AliasInfo;
+ import org.apache.olingo.odata4.server.api.edm.provider.ComplexType;
+ import org.apache.olingo.odata4.server.api.edm.provider.EdmProvider;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityContainerInfo;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityType;
+ import org.apache.olingo.odata4.server.api.edm.provider.EnumType;
+ import org.apache.olingo.odata4.server.api.edm.provider.Function;
+ import org.apache.olingo.odata4.server.api.edm.provider.Parameter;
+ import org.apache.olingo.odata4.server.api.edm.provider.TypeDefinition;
+
+ public class EdmProviderImpl extends EdmImpl {
+
+ private final EdmProvider provider;
+ private final Map<FullQualifiedName, List<Action>> actionsMap = new HashMap<FullQualifiedName, List<Action>>();
+ private final Map<FullQualifiedName, List<Function>> functionsMap = new HashMap<FullQualifiedName, List<Function>>();
+
+ public EdmProviderImpl(final EdmProvider provider) {
+ this.provider = provider;
+
+ }
+
+ @Override
+ public EdmEntityContainer createEntityContainer(final FullQualifiedName containerName) {
+ try {
+ EntityContainerInfo entityContainerInfo = provider.getEntityContainerInfo(containerName);
+ if (entityContainerInfo != null) {
+ return new EdmEntityContainerImpl(this, provider, entityContainerInfo);
+ }
+ return null;
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+
+ @Override
+ public EdmEnumType createEnumType(final FullQualifiedName enumName) {
+ try {
+ EnumType enumType = provider.getEnumType(enumName);
+ if (enumType != null) {
+ return new EdmEnumImpl(this, enumName, enumType);
+ }
+ return null;
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+
+ @Override
+ public EdmTypeDefinition createTypeDefinition(final FullQualifiedName typeDefinitionName) {
+ try {
+ TypeDefinition typeDefinition = provider.getTypeDefinition(typeDefinitionName);
+ if (typeDefinition != null) {
+ return new EdmTypeDefinitionImpl(this, typeDefinitionName, typeDefinition);
+ }
+ return null;
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+
+ @Override
+ public EdmEntityType createEntityType(final FullQualifiedName entityTypeName) {
+ try {
+ EntityType entityType = provider.getEntityType(entityTypeName);
+ if (entityType != null) {
+ return new EdmEntityTypeImpl(this, entityTypeName, entityType);
+ }
+ return null;
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+
+ @Override
+ public EdmComplexType createComplexType(final FullQualifiedName complexTypeName) {
+ try {
+ ComplexType complexType = provider.getComplexType(complexTypeName);
+ if (complexType != null) {
+ return new EdmComplexTypeImpl(this, complexTypeName, complexType);
+ }
+ return null;
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+
+ @Override
+ public EdmAction createBoundAction(final FullQualifiedName actionName,
+ final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection) {
+ try {
+ List<Action> actions = actionsMap.get(actionName);
+ if (actions == null) {
+ actions = provider.getActions(actionName);
+ if (actions != null) {
+ actionsMap.put(actionName, actions);
+ } else {
+ return null;
+ }
+ }
+ EdmActionImpl actionImpl = null;
+ // Search for bound action where binding parameter matches
+ for (Action action : actions) {
+ if (action.isBound() == true) {
+ List<Parameter> parameters = action.getParameters();
+ Parameter parameter = parameters.get(0);
+ if (bindingParameterTypeName.equals(parameter.getType())
+ && isBindingParameterCollection.booleanValue() == parameter.isCollection()) {
+ actionImpl = new EdmActionImpl(this, actionName, action);
+ break;
+ }
+
+ }
+ }
+ return actionImpl;
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+
+ @Override
+ public EdmFunction createBoundFunction(final FullQualifiedName functionName,
+ final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection,
+ final List<String> parameterNames) {
+ try {
+ List<Function> functions = functionsMap.get(functionName);
+ if (functions == null) {
+ functions = provider.getFunctions(functionName);
+ if (functions != null) {
+ functionsMap.put(functionName, functions);
+ } else {
+ return null;
+ }
+ }
+ List<String> parameterNamesCopy = parameterNames;
+ if (parameterNamesCopy == null) {
+ parameterNamesCopy = Collections.emptyList();
+ }
+ EdmFunctionImpl functionImpl = null;
+ for (Function function : functions) {
+ if (function.isBound() == true) {
+ List<Parameter> providerParameters = function.getParameters();
+ if (providerParameters == null || providerParameters.size() == 0) {
+ throw new EdmException("No parameter specified for bound function: " + functionName);
+ }
+ Parameter bindingParameter = providerParameters.get(0);
+ if (bindingParameterTypeName.equals(bindingParameter.getType())
+ && isBindingParameterCollection.booleanValue() == bindingParameter.isCollection()) {
+ if (parameterNamesCopy.size() == providerParameters.size() - 1) {
+ List<String> providerParameterNames = new ArrayList<String>();
+ for (int i = 1; i < providerParameters.size(); i++) {
+ providerParameterNames.add(providerParameters.get(i).getName());
+ }
+ if (parameterNamesCopy.containsAll(providerParameterNames)) {
+ functionImpl = new EdmFunctionImpl(this, functionName, function);
+ break;
+ }
+ }
+ }
+ }
+ }
+ return functionImpl;
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+
+ @Override
+ public EdmServiceMetadata createServiceMetadata() {
+ return new EdmServiceMetadataImpl(provider);
+ }
+
+ @Override
+ protected Map<String, String> createAliasToNamespaceInfo() {
+ Map<String, String> aliasToNamespaceInfos = new HashMap<String, String>();
+ try {
+ List<AliasInfo> aliasInfos = provider.getAliasInfos();
+ if (aliasInfos != null) {
+ for (AliasInfo info : aliasInfos) {
+ aliasToNamespaceInfos.put(info.getAlias(), info.getNamespace());
+ }
+ }
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ return aliasToNamespaceInfos;
+ }
+
+ @Override
+ protected EdmAction createUnboundAction(final FullQualifiedName actionName) {
+ try {
+ List<Action> actions = actionsMap.get(actionName);
+ if (actions == null) {
+ actions = provider.getActions(actionName);
+ if (actions != null) {
+ actionsMap.put(actionName, actions);
+ } else {
+ return null;
+ }
+ }
+ EdmActionImpl actionImpl = null;
+ // Search for first unbound action
+ for (Action action : actions) {
+ if (action.isBound() == false) {
+ actionImpl = new EdmActionImpl(this, actionName, action);
+ break;
+ }
+ }
+ return actionImpl;
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+
+ @Override
+ protected EdmFunction createUnboundFunction(final FullQualifiedName functionName, final List<String> parameterNames) {
+ try {
+ List<Function> functions = functionsMap.get(functionName);
+ if (functions == null) {
+ functions = provider.getFunctions(functionName);
+ if (functions != null) {
+ functionsMap.put(functionName, functions);
+ } else {
+ return null;
+ }
+ }
+ List<String> parameterNamesCopy = parameterNames;
+ if (parameterNamesCopy == null) {
+ parameterNamesCopy = Collections.emptyList();
+ }
+ EdmFunctionImpl functionImpl = null;
+ for (Function function : functions) {
+ if (function.isBound() == false) {
+ List<Parameter> providerParameters = function.getParameters();
+ if (providerParameters == null) {
+ providerParameters = Collections.emptyList();
+ }
+ if (parameterNamesCopy.size() == providerParameters.size()) {
+ List<String> functionParameterNames = new ArrayList<String>();
+ for (Parameter parameter : providerParameters) {
+ functionParameterNames.add(parameter.getName());
+ }
+
+ if (parameterNamesCopy.containsAll(functionParameterNames)) {
+ functionImpl = new EdmFunctionImpl(this, functionName, function);
+ break;
+ }
+ }
+ }
+ }
+ return functionImpl;
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
-
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/b4417ffc/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmServiceMetadataImpl.java
----------------------------------------------------------------------
diff --cc odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmServiceMetadataImpl.java
index 0000000,dc0b556..0007568
mode 000000,100644..100644
--- a/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmServiceMetadataImpl.java
+++ b/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmServiceMetadataImpl.java
@@@ -1,0 -1,148 +1,149 @@@
+ /*******************************************************************************
+ * 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.server.core.edm.provider;
+
+ import java.io.InputStream;
+ import java.util.ArrayList;
+ import java.util.List;
+
+ import org.apache.olingo.odata4.commons.api.ODataException;
+ import org.apache.olingo.odata4.commons.api.edm.EdmEntitySetInfo;
+ import org.apache.olingo.odata4.commons.api.edm.EdmException;
+ import org.apache.olingo.odata4.commons.api.edm.EdmFunctionImportInfo;
+ import org.apache.olingo.odata4.commons.api.edm.EdmServiceMetadata;
+ import org.apache.olingo.odata4.commons.api.edm.EdmSingletonInfo;
+ import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
+ import org.apache.olingo.odata4.server.api.edm.provider.EdmProvider;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityContainer;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntitySet;
+ import org.apache.olingo.odata4.server.api.edm.provider.FunctionImport;
+ import org.apache.olingo.odata4.server.api.edm.provider.Schema;
+ import org.apache.olingo.odata4.server.api.edm.provider.Singleton;
+
+ public class EdmServiceMetadataImpl implements EdmServiceMetadata {
+
+ private EdmProvider provider;
+ private ArrayList<EdmEntitySetInfo> entitySetInfos;
+ private ArrayList<EdmFunctionImportInfo> functionImportInfos;
+ private ArrayList<EdmSingletonInfo> singletonInfos;
+ private List<Schema> schemas;
+
+ public EdmServiceMetadataImpl(final EdmProvider provider) {
+ this.provider = provider;
+ }
+
+ @Override
+ public InputStream getMetadata() {
- throw new RuntimeException("Not yet implemented");
++ return null;
++// throw new RuntimeException("Not yet implemented");
+ }
+
+ @Override
+ public String getDataServiceVersion() {
+ return ODataServiceVersion.V40;
+ }
+
+ @Override
+ public List<EdmEntitySetInfo> getEntitySetInfos() {
+ if (entitySetInfos == null) {
+ try {
+ entitySetInfos = new ArrayList<EdmEntitySetInfo>();
+ if (schemas == null) {
+ schemas = provider.getSchemas();
+ if (schemas == null) {
+ throw new EdmException("Provider doe not define any schemas.");
+ }
+ }
+ for (Schema schema : schemas) {
+ EntityContainer entityContainer = schema.getEntityContainer();
+ if (entityContainer != null) {
+ List<EntitySet> entitySets = entityContainer.getEntitySets();
+ if (entitySets != null) {
+ for (EntitySet set : entitySets) {
+ entitySetInfos.add(new EdmEntitySetInfoImpl(entityContainer, set));
+ }
+ }
+ }
+ }
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+ return entitySetInfos;
+ }
+
+ @Override
+ public List<EdmSingletonInfo> getSingletonInfos() {
+ if (singletonInfos == null) {
+ try {
+ singletonInfos = new ArrayList<EdmSingletonInfo>();
+ if (schemas == null) {
+ schemas = provider.getSchemas();
+ if (schemas == null) {
+ throw new EdmException("Provider doe not define any schemas.");
+ }
+ }
+ for (Schema schema : schemas) {
+ EntityContainer entityContainer = schema.getEntityContainer();
+ if (entityContainer != null) {
+ List<Singleton> singletons = entityContainer.getSingletons();
+ if (singletons != null) {
+ for (Singleton singleton : singletons) {
+ singletonInfos.add(new EdmSingletonInfoImpl(entityContainer, singleton));
+ }
+ }
+ }
+ }
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+ return singletonInfos;
+ }
+
+ @Override
+ public List<EdmFunctionImportInfo> getFunctionImportInfos() {
+ if (functionImportInfos == null) {
+ try {
+ functionImportInfos = new ArrayList<EdmFunctionImportInfo>();
+ if (schemas == null) {
+ schemas = provider.getSchemas();
+ if (schemas == null) {
+ throw new EdmException("Provider doe not define any schemas.");
+ }
+ }
+ for (Schema schema : schemas) {
+ EntityContainer entityContainer = schema.getEntityContainer();
+ if (entityContainer != null) {
+ List<FunctionImport> functionImports = entityContainer.getFunctionImports();
+ if (functionImports != null) {
+ for (FunctionImport functionImport : functionImports) {
+ functionImportInfos.add(new EdmFunctionImportInfoImpl(entityContainer, functionImport));
+ }
+ }
+ }
+ }
+ } catch (ODataException e) {
+ throw new EdmException(e);
+ }
+ }
+ return functionImportInfos;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/b4417ffc/odata4-lib/odata4-server-core/src/test/java/org/apache/olingo/odata4/server/core/testutil/EdmTechProvider.java
----------------------------------------------------------------------
diff --cc odata4-lib/odata4-server-core/src/test/java/org/apache/olingo/odata4/server/core/testutil/EdmTechProvider.java
index 1007a6b,5f10314..1be927d
--- a/odata4-lib/odata4-server-core/src/test/java/org/apache/olingo/odata4/server/core/testutil/EdmTechProvider.java
+++ b/odata4-lib/odata4-server-core/src/test/java/org/apache/olingo/odata4/server/core/testutil/EdmTechProvider.java
@@@ -22,31 -22,30 +22,31 @@@ import java.util.ArrayList
import java.util.Arrays;
import java.util.List;
- import org.apache.olingo.odata4.commons.api.edm.provider.Action;
- import org.apache.olingo.odata4.commons.api.edm.provider.ActionImport;
- import org.apache.olingo.odata4.commons.api.edm.provider.AliasInfo;
- import org.apache.olingo.odata4.commons.api.edm.provider.ComplexType;
- import org.apache.olingo.odata4.commons.api.edm.provider.EdmProvider;
- import org.apache.olingo.odata4.commons.api.edm.provider.EntityContainerInfo;
- import org.apache.olingo.odata4.commons.api.edm.provider.EntitySet;
- import org.apache.olingo.odata4.commons.api.edm.provider.EntityType;
- import org.apache.olingo.odata4.commons.api.edm.provider.EnumMember;
- import org.apache.olingo.odata4.commons.api.edm.provider.EnumType;
- import org.apache.olingo.odata4.commons.api.edm.provider.FullQualifiedName;
- import org.apache.olingo.odata4.commons.api.edm.provider.Function;
- import org.apache.olingo.odata4.commons.api.edm.provider.FunctionImport;
- import org.apache.olingo.odata4.commons.api.edm.provider.NavigationProperty;
- import org.apache.olingo.odata4.commons.api.edm.provider.NavigationPropertyBinding;
- import org.apache.olingo.odata4.commons.api.edm.provider.Parameter;
- import org.apache.olingo.odata4.commons.api.edm.provider.Property;
- import org.apache.olingo.odata4.commons.api.edm.provider.PropertyRef;
- import org.apache.olingo.odata4.commons.api.edm.provider.ReferentialConstraint;
- import org.apache.olingo.odata4.commons.api.edm.provider.ReturnType;
- import org.apache.olingo.odata4.commons.api.edm.provider.Schema;
- import org.apache.olingo.odata4.commons.api.edm.provider.Singleton;
- import org.apache.olingo.odata4.commons.api.edm.provider.Target;
- import org.apache.olingo.odata4.commons.api.exception.ODataException;
+ import org.apache.olingo.odata4.commons.api.ODataException;
+ import org.apache.olingo.odata4.commons.api.edm.FullQualifiedName;
import org.apache.olingo.odata4.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
+ import org.apache.olingo.odata4.server.api.edm.provider.Action;
+ import org.apache.olingo.odata4.server.api.edm.provider.ActionImport;
+ import org.apache.olingo.odata4.server.api.edm.provider.AliasInfo;
+ import org.apache.olingo.odata4.server.api.edm.provider.ComplexType;
+ import org.apache.olingo.odata4.server.api.edm.provider.EdmProvider;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityContainerInfo;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntitySet;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityType;
+ import org.apache.olingo.odata4.server.api.edm.provider.EnumMember;
+ import org.apache.olingo.odata4.server.api.edm.provider.EnumType;
+ import org.apache.olingo.odata4.server.api.edm.provider.Function;
+ import org.apache.olingo.odata4.server.api.edm.provider.FunctionImport;
+ import org.apache.olingo.odata4.server.api.edm.provider.NavigationProperty;
+ import org.apache.olingo.odata4.server.api.edm.provider.NavigationPropertyBinding;
+ import org.apache.olingo.odata4.server.api.edm.provider.Parameter;
+ import org.apache.olingo.odata4.server.api.edm.provider.Property;
+ import org.apache.olingo.odata4.server.api.edm.provider.PropertyRef;
+ import org.apache.olingo.odata4.server.api.edm.provider.ReferentialConstraint;
+ import org.apache.olingo.odata4.server.api.edm.provider.ReturnType;
++import org.apache.olingo.odata4.server.api.edm.provider.Schema;
+ import org.apache.olingo.odata4.server.api.edm.provider.Singleton;
+ import org.apache.olingo.odata4.server.api.edm.provider.Target;
public class EdmTechProvider extends EdmProvider {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/b4417ffc/pom.xml
----------------------------------------------------------------------