| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.olingo.server.tecsvc.provider; |
| |
| import org.apache.olingo.commons.api.ODataException; |
| import org.apache.olingo.commons.api.edm.FullQualifiedName; |
| import org.apache.olingo.commons.api.edm.Target; |
| import org.apache.olingo.server.api.edm.provider.ActionImport; |
| import org.apache.olingo.server.api.edm.provider.EntityContainer; |
| import org.apache.olingo.server.api.edm.provider.EntityContainerInfo; |
| import org.apache.olingo.server.api.edm.provider.EntitySet; |
| import org.apache.olingo.server.api.edm.provider.FunctionImport; |
| import org.apache.olingo.server.api.edm.provider.NavigationPropertyBinding; |
| import org.apache.olingo.server.api.edm.provider.Singleton; |
| |
| import java.util.ArrayList; |
| import java.util.Arrays; |
| import java.util.List; |
| |
| public class ContainerProvider { |
| |
| public static final FullQualifiedName nameContainer = new FullQualifiedName(SchemaProvider.NAMESPACE, "Container"); |
| public static final String AIRT_STRING = "AIRTString"; |
| public static final String AIRT_COLL_STRING_TWO_PARAM = "AIRTCollStringTwoParam"; |
| public static final String AIRTCT_TWO_PRIM_PARAM = "AIRTCTTwoPrimParam"; |
| public static final String AIRT_COLL_CT_TWO_PRIM_PARAM = "AIRTCollCTTwoPrimParam"; |
| public static final String AIRTET_TWO_KEY_TWO_PRIM_PARAM = "AIRTETTwoKeyTwoPrimParam"; |
| public static final String AIRT_COLL_ET_KEY_NAV_PARAM = "AIRTCollETKeyNavParam"; |
| public static final String AIRTES_ALL_PRIM_PARAM = "AIRTESAllPrimParam"; |
| public static final String AIRT_COLL_ES_ALL_PRIM_PARAM = "AIRTCollESAllPrimParam"; |
| |
| EntityContainerInfo entityContainerInfoTest1 = |
| new EntityContainerInfo().setContainerName(nameContainer); |
| |
| private EdmTechProvider prov; |
| |
| public ContainerProvider(final EdmTechProvider edmTechProvider) { |
| prov = edmTechProvider; |
| } |
| |
| public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException { |
| if (entityContainerName == null) { |
| return entityContainerInfoTest1; |
| } else if (entityContainerName.equals(nameContainer)) { |
| return entityContainerInfoTest1; |
| } |
| |
| return null; |
| } |
| |
| public EntityContainer getEntityContainer() throws ODataException { |
| EntityContainer container = new EntityContainer(); |
| container.setName(ContainerProvider.nameContainer.getName()); |
| |
| // EntitySets |
| List<EntitySet> entitySets = new ArrayList<EntitySet>(); |
| container.setEntitySets(entitySets); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllPrim")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCollAllPrim")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoPrim")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMixPrimCollComp")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBase")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBase")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoKeyTwoPrim")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBaseTwoKeyTwoPrim")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBaseTwoKeyTwoPrim")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllKey")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompAllPrim")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompCollAllPrim")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompComp")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompCollComp")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMedia")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyTwoKeyComp")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESInvisible")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESServerSidePaging")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllNullable")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyNav")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoKeyNav")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBaseTwoKeyNav")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompMixPrimCollComp")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESFourKeyAlias")); |
| entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMixEnumDefCollComp")); |
| |
| // Singletons |
| List<Singleton> singletons = new ArrayList<Singleton>(); |
| container.setSingletons(singletons); |
| singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SI")); |
| singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SINav")); |
| singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SIMedia")); |
| |
| // ActionImports |
| List<ActionImport> actionImports = new ArrayList<ActionImport>(); |
| container.setActionImports(actionImports); |
| actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_STRING)); |
| actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_COLL_STRING_TWO_PARAM)); |
| actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRTCT_TWO_PRIM_PARAM)); |
| actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_COLL_CT_TWO_PRIM_PARAM)); |
| actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRTET_TWO_KEY_TWO_PRIM_PARAM)); |
| actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_COLL_ET_KEY_NAV_PARAM)); |
| actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRTES_ALL_PRIM_PARAM)); |
| actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_COLL_ES_ALL_PRIM_PARAM)); |
| |
| // FunctionImports |
| List<FunctionImport> functionImports = new ArrayList<FunctionImport>(); |
| container.setFunctionImports(functionImports); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTInt16")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINInvisibleRTInt16")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINInvisible2RTInt16")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTETKeyNav")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTETTwoKeyNavParam")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTStringTwoParam")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollStringTwoParam")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTAllPrimTwoParam")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTESMixPrimCollCompTwoParam")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTESMixPrimCollCompTwoParam")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollCTTwoPrim")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTETMedia")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTTwoPrimParam")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTTwoPrim")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollString")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTString")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTESTwoKeyNavParam")); |
| functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollCTTwoPrimParam")); |
| |
| return container; |
| } |
| |
| public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String name) throws ODataException { |
| if (entityContainer == nameContainer) { |
| if (name.equals("ESAllPrim")) { |
| return new EntitySet() |
| .setName("ESAllPrim") |
| .setType(EntityTypeProvider.nameETAllPrim); |
| |
| } else if (name.equals("ESCollAllPrim")) { |
| return new EntitySet() |
| .setName("ESCollAllPrim") |
| .setType(EntityTypeProvider.nameETCollAllPrim); |
| |
| } else if (name.equals("ESTwoPrim")) { |
| return new EntitySet() |
| .setName("ESTwoPrim") |
| .setType(EntityTypeProvider.nameETTwoPrim); |
| |
| } else if (name.equals("ESMixPrimCollComp")) { |
| return new EntitySet() |
| .setName("ESMixPrimCollComp") |
| .setType(EntityTypeProvider.nameETMixPrimCollComp); |
| |
| } else if (name.equals("ESBase")) { |
| return new EntitySet() |
| .setName("ESBase") |
| .setType(EntityTypeProvider.nameETBase); |
| |
| } else if (name.equals("ESTwoBase")) { |
| return new EntitySet() |
| .setName("ESTwoBase") |
| .setType(EntityTypeProvider.nameETTwoBase); |
| |
| } else if (name.equals("ESTwoKeyTwoPrim")) { |
| return new EntitySet() |
| .setName("ESTwoKeyTwoPrim") |
| .setType(EntityTypeProvider.nameETTwoKeyTwoPrim); |
| |
| } else if (name.equals("ESBaseTwoKeyTwoPrim")) { |
| return new EntitySet() |
| .setName("ESBaseTwoKeyTwoPrim") |
| .setType(EntityTypeProvider.nameETBaseTwoKeyTwoPrim); |
| |
| } else if (name.equals("ESTwoBaseTwoKeyTwoPrim")) { |
| return new EntitySet() |
| .setName("ESTwoBaseTwoKeyTwoPrim") |
| .setType(EntityTypeProvider.nameETTwoBaseTwoKeyTwoPrim); |
| |
| } else if (name.equals("ESAllKey")) { |
| return new EntitySet() |
| .setName("ESAllKey") |
| .setType(EntityTypeProvider.nameETAllKey); |
| |
| } else if (name.equals("ESCompAllPrim")) { |
| return new EntitySet() |
| .setName("ESCompAllPrim") |
| .setType(EntityTypeProvider.nameETCompAllPrim); |
| |
| } else if (name.equals("ESCompCollAllPrim")) { |
| return new EntitySet() |
| .setName("ESCompCollAllPrim") |
| .setType(EntityTypeProvider.nameETCompCollAllPrim); |
| |
| } else if (name.equals("ESCompComp")) { |
| return new EntitySet() |
| .setName("ESCompComp") |
| .setType(EntityTypeProvider.nameETCompComp); |
| |
| } else if (name.equals("ESCompCollComp")) { |
| return new EntitySet() |
| .setName("ESCompCollComp") |
| .setType(EntityTypeProvider.nameETCompCollComp); |
| |
| } else if (name.equals("ESMedia")) { |
| return new EntitySet() |
| .setName("ESMedia") |
| .setType(EntityTypeProvider.nameETMedia) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("ESKeyTwoKeyComp")) { |
| return new EntitySet() |
| .setName("ESKeyTwoKeyComp") |
| .setType(EntityTypeProvider.nameETKeyTwoKeyComp); |
| |
| } else if (name.equals("ESInvisible")) { |
| return new EntitySet() |
| .setName("ESInvisible") |
| .setType(EntityTypeProvider.nameETAllPrim); |
| |
| } else if (name.equals("ESServerSidePaging")) { |
| return new EntitySet() |
| .setName("ESServerSidePaging") |
| .setType(EntityTypeProvider.nameETServerSidePaging); |
| |
| } else if (name.equals("ESAllNullable")) { |
| return new EntitySet() |
| .setName("ESAllNullable") |
| .setType(EntityTypeProvider.nameETAllNullable); |
| |
| } else if (name.equals("ESKeyNav")) { |
| return new EntitySet() |
| .setName("ESKeyNav") |
| .setType(EntityTypeProvider.nameETKeyNav); |
| |
| } else if (name.equals("ESTwoKeyNav")) { |
| return new EntitySet() |
| .setName("ESTwoKeyNav") |
| .setType(EntityTypeProvider.nameETTwoKeyNav); |
| |
| } else if (name.equals("ESBaseTwoKeyNav")) { |
| return new EntitySet() |
| .setName("ESBaseTwoKeyNav") |
| .setType(EntityTypeProvider.nameETBaseTwoKeyNav); |
| |
| } else if (name.equals("ESCompMixPrimCollComp")) { |
| return new EntitySet() |
| .setName("ESCompMixPrimCollComp") |
| .setType(EntityTypeProvider.nameETCompMixPrimCollComp); |
| |
| } else if (name.equals("ESFourKeyAlias")) { |
| return new EntitySet() |
| .setName("ESFourKeyAlias") |
| .setType(EntityTypeProvider.nameETFourKeyAlias); |
| |
| } else if (name.equals("ESMixEnumDefCollComp")) { |
| return new EntitySet().setName("ESMixEnumDefCollComp").setType( |
| EntityTypeProvider.nameETMixEnumDefCollComp); |
| } |
| } |
| |
| return null; |
| } |
| |
| public ActionImport getActionImport(final FullQualifiedName entityContainer, final String name) |
| throws ODataException { |
| if (entityContainer.equals(nameContainer)) { |
| if (name.equals(AIRT_STRING)) { |
| return new ActionImport() |
| .setName(AIRT_STRING) |
| .setAction(ActionProvider.nameUARTString); |
| |
| } else if (name.equals(AIRT_COLL_STRING_TWO_PARAM)) { |
| return new ActionImport() |
| .setName(AIRT_COLL_STRING_TWO_PARAM) |
| .setAction(ActionProvider.nameUARTCollStringTwoParam); |
| |
| } else if (name.equals(AIRTCT_TWO_PRIM_PARAM)) { |
| return new ActionImport() |
| .setName(AIRTCT_TWO_PRIM_PARAM) |
| .setAction(ActionProvider.nameUARTCTTwoPrimParam); |
| |
| } else if (name.equals(AIRT_COLL_CT_TWO_PRIM_PARAM)) { |
| return new ActionImport() |
| .setName(AIRT_COLL_CT_TWO_PRIM_PARAM) |
| .setAction(ActionProvider.nameUARTCollCTTwoPrimParam); |
| |
| } else if (name.equals(AIRTET_TWO_KEY_TWO_PRIM_PARAM)) { |
| return new ActionImport() |
| .setName(AIRTET_TWO_KEY_TWO_PRIM_PARAM) |
| .setAction(ActionProvider.nameUARTETTwoKeyTwoPrimParam); |
| |
| } else if (name.equals(AIRT_COLL_ET_KEY_NAV_PARAM)) { |
| return new ActionImport() |
| .setName(AIRT_COLL_ET_KEY_NAV_PARAM) |
| .setAction(ActionProvider.nameUARTCollETKeyNavParam); |
| |
| } else if (name.equals(AIRTES_ALL_PRIM_PARAM)) { |
| return new ActionImport() |
| .setName(AIRTES_ALL_PRIM_PARAM) |
| .setAction(ActionProvider.nameUARTETAllPrimParam); |
| |
| } else if (name.equals(AIRT_COLL_ES_ALL_PRIM_PARAM)) { |
| return new ActionImport() |
| .setName(AIRT_COLL_ES_ALL_PRIM_PARAM) |
| .setAction(ActionProvider.nameUARTCollETAllPrimParam); |
| } |
| } |
| |
| return null; |
| } |
| |
| public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String name) |
| throws ODataException { |
| |
| if (entityContainer.equals(nameContainer)) { |
| if (name.equals("FINRTInt16")) { |
| return new FunctionImport() |
| .setName("FINRTInt16") |
| .setFunction(FunctionProvider.nameUFNRTInt16) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FINInvisibleRTInt16")) { |
| return new FunctionImport() |
| .setName("FINInvisibleRTInt16") |
| .setFunction(FunctionProvider.nameUFNRTInt16); |
| |
| } else if (name.equals("FINInvisible2RTInt16")) { |
| return new FunctionImport() |
| .setName("FINInvisible2RTInt16") |
| .setFunction(FunctionProvider.nameUFNRTInt16); |
| |
| } else if (name.equals("FICRTETKeyNav")) { |
| return new FunctionImport() |
| .setName("FICRTETKeyNav") |
| .setFunction(FunctionProvider.nameUFCRTETKeyNav); |
| |
| } else if (name.equals("FICRTETTwoKeyNavParam")) { |
| return new FunctionImport() |
| .setName("FICRTETTwoKeyNavParam") |
| .setFunction(FunctionProvider.nameUFCRTETTwoKeyNavParam) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTStringTwoParam")) { |
| return new FunctionImport() |
| .setName("FICRTStringTwoParam") |
| .setFunction(FunctionProvider.nameUFCRTStringTwoParam) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTCollStringTwoParam")) { |
| return new FunctionImport() |
| .setName("FICRTCollStringTwoParam") |
| .setFunction(FunctionProvider.nameUFCRTCollStringTwoParam) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTCTAllPrimTwoParam")) { |
| return new FunctionImport() |
| .setName("FICRTCTAllPrimTwoParam") |
| .setFunction(FunctionProvider.nameUFCRTCTAllPrimTwoParam) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTESMixPrimCollCompTwoParam")) { |
| return new FunctionImport() |
| .setName("FICRTESMixPrimCollCompTwoParam") |
| .setFunction(FunctionProvider.nameUFCRTESMixPrimCollCompTwoParam) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FINRTESMixPrimCollCompTwoParam")) { |
| return new FunctionImport() |
| .setName("FINRTESMixPrimCollCompTwoParam") |
| .setFunction(FunctionProvider.nameUFNRTESMixPrimCollCompTwoParam) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTCollCTTwoPrim")) { |
| return new FunctionImport() |
| .setName("FICRTCollCTTwoPrim") |
| .setFunction(FunctionProvider.nameUFCRTCollCTTwoPrim) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTETMedia")) { |
| return new FunctionImport() |
| .setName("FICRTETMedia") |
| .setFunction(FunctionProvider.nameUFCRTETMedia) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTCTTwoPrimParam")) { |
| return new FunctionImport() |
| .setName("FICRTCTTwoPrimParam") |
| .setFunction(FunctionProvider.nameUFCRTCTTwoPrimParam) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTCTTwoPrim")) { |
| return new FunctionImport() |
| .setName("FICRTCTTwoPrim") |
| .setFunction(FunctionProvider.nameUFCRTCTTwoPrim) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTCollString")) { |
| return new FunctionImport() |
| .setName("FICRTCollString") |
| .setFunction(FunctionProvider.nameUFCRTCollString) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTString")) { |
| return new FunctionImport() |
| .setName("FICRTString") |
| .setFunction(FunctionProvider.nameUFCRTString) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTESTwoKeyNavParam")) { |
| return new FunctionImport() |
| .setName("FICRTESTwoKeyNavParam") |
| .setFunction(FunctionProvider.nameUFCRTESTwoKeyNavParam) |
| .setIncludeInServiceDocument(true); |
| |
| } else if (name.equals("FICRTCollCTTwoPrimParam")) { |
| return new FunctionImport() |
| .setName("FICRTCollCTTwoPrimParam") |
| .setFunction(FunctionProvider.nameUFCRTCollCTTwoPrimParam) |
| .setIncludeInServiceDocument(true); |
| |
| } |
| } |
| |
| return null; |
| } |
| |
| public Singleton getSingleton(final FullQualifiedName entityContainer, final String name) throws ODataException { |
| if (entityContainer.equals(nameContainer)) { |
| |
| if (name.equals("SI")) { |
| return new Singleton() |
| .setName("SI") |
| .setType(EntityTypeProvider.nameETTwoPrim); |
| |
| } else if (name.equals("SINav")) { |
| return new Singleton() |
| .setName("SINav") |
| .setType(EntityTypeProvider.nameETTwoKeyNav) |
| .setNavigationPropertyBindings(Arrays.asList( |
| new NavigationPropertyBinding() |
| .setPath("NavPropertyETTwoKeyNavMany") |
| .setTarget(new Target().setTargetName("ESTwoKeyNav")))); |
| |
| } else if (name.equals("SIMedia")) { |
| return new Singleton() |
| .setName("SIMedia") |
| .setType(EntityTypeProvider.nameETMedia); |
| } |
| } |
| return null; |
| } |
| } |