/******************************************************************************* * Copyright 2013 SAP AG * * Licensed 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 com.sap.core.odata.processor.api.jpa.access; import com.sap.core.odata.processor.api.jpa.model.mapping.JPAEdmMappingModel; /** * Interface provides methods to access JPA EDM mapping model. * * @author SAP AG * @see JPAEdmMappingModel * */ public interface JPAEdmMappingModelAccess { /** * The method searches and loads the mapping model stored in <file>.xml * file into the java object * {@link com.sap.core.odata.processor.api.jpa.model.mapping.JPAEdmMappingModel} * . The name of the file is set into ODataJPAContext method. * * @see com.sap.core.odata.processor.api.jpa.ODataJPAContext#setJPAEdmMappingModel(String) */ public void loadMappingModel(); /** * The method returns if there exists a mapping model. * * @return true - if there exists a mapping model for the OData service else * false */ public boolean isMappingModelExists(); /** * The method returns a JPA EDM mapping model Java object. The mapping model * in XML files is un-marshaled into the Java object. * * @return an instance of type * {@link com.sap.core.odata.processor.api.jpa.model.mapping.JPAEdmMappingModel} */ public JPAEdmMappingModel getJPAEdmMappingModel(); /** * The method returns EDM Schema namespace for the persistence unit name * * @param persistenceUnitName * is the Java persistence unit name * @return EDM schema name space mapped to Java persistence unit name or * null if no mapping is available */ public String mapJPAPersistenceUnit(String persistenceUnitName); /** * The method returns EDM entity type name for the Java persistence entity * type name * * @param jpaEntityTypeName * is the Java persistence entity type name * @return EDM entity type name mapped to Java persistence entity type name * or null if no mapping is available */ public String mapJPAEntityType(String jpaEntityTypeName); /** * The method returns EDM entity set name for the Java persistence entity * type name * * @param jpaEntityTypeName * is the Java persistence entity type name * @return EDM entity set name mapped to Java persistence entity type name * or null if no mapping is available */ public String mapJPAEntitySet(String jpaEntityTypeName); /** * The method returns EDM property name for the Java persistence entity * attribute name. * * @param jpaEntityTypeName * is the Java persistence entity type name * @param jpaAttributeName * is the Java persistence attribute name * @return EDM property name mapped to Java persistence attribute name or * null if no mapping is available */ public String mapJPAAttribute(String jpaEntityTypeName, String jpaAttributeName); /** * The method returns EDM navigation property name for the Java persistence * entity relationship name. * * @param jpaEntityTypeName * is the Java persistence entity type name * @param jpaRelationshipName * is the Java persistence relationship name * @return EDM navigation property name mapped to Java persistence entity * relationship name or null if no mapping is available */ public String mapJPARelationship(String jpaEntityTypeName, String jpaRelationshipName); /** * The method returns EDM complex type name for the Java embeddable type * name. * * @param jpaEmbeddableTypeName * is the Java persistence embeddable type name * @return EDM complex type name mapped to Java persistence entity * relationship name or null if no mapping is available */ public String mapJPAEmbeddableType(String jpaEmbeddableTypeName); /** * The method returns EDM property name for the Java persistence embeddable * type's attribute name. * * @param jpaEmbeddableTypeName * is the Java persistence * @param jpaAttributeName * is the Java persistence attribute name * @return EDM property name mapped to Java persistence attribute name or * null if no mapping is available */ public String mapJPAEmbeddableTypeAttribute(String jpaEmbeddableTypeName, String jpaAttributeName); /** * The method returns whether the JPA Entity should be excluded from EDM * model * * @param jpaEntityTypeName * is the name of JPA Entity Type * @return <b>true</b> - if JPA Entity should be excluded<br> * <b>false</b> - if JPA Entity should be not be excluded * */ public boolean checkExclusionOfJPAEntityType(String jpaEntityTypeName); /** * The method returns whether the JPA Attribute should be excluded from EDM * Entity Type * * @param jpaEntityTypeName * is the name of JPA Entity Type * @param jpaAttributeName * is the name of JPA attribute * @return <b>true</b> - if JPA attribute should be excluded<br> * <b>false</b> - if JPA attribute should be not be excluded * */ public boolean checkExclusionOfJPAAttributeType(String jpaEntityTypeName, String jpaAttributeName); /** * The method returns whether the JPA Embeddable Type should be excluded * from EDM model * * @param jpaEmbeddableTypeName * is the name of JPA Embeddable Type * @return <b>true</b> - if JPA Embeddable Type should be excluded<br> * <b>false</b> - if JPA Embeddable Type should be not be excluded * */ public boolean checkExclusionOfJPAEmbeddableType( String jpaEmbeddableTypeName); /** * The method returns whether the JPA Embeddable Attribute Type should be * excluded from EDM model * * @param jpaEmbeddableTypeName * is the name of JPA Embeddable Attribute Type * @param jpaAttributeName * is the name of JPA Attribute name * @return <b>true</b> - if JPA Embeddable Attribute Type should be excluded<br> * <b>false</b> - if JPA Embeddable Attribute Type should be not be * excluded * */ public boolean checkExclusionOfJPAEmbeddableAttributeType( String jpaEmbeddableTypeName, String jpaAttributeName); }