/******************************************************************************* * 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.odata2.jpa.processor.api.access; import org.apache.olingo.odata2.jpa.processor.api.model.mapping.JPAEdmMappingModel; /** * Interface provides methods to access JPA EDM mapping model. * * * @see JPAEdmMappingModel * */ public interface JPAEdmMappingModelAccess { /** * The method searches and loads the mapping model stored in <file>.xml * file into the java object {@link org.apache.olingo.odata2.jpa.processor.api.model.mapping.JPAEdmMappingModel} . The * name of the file is set into ODataJPAContext method. * * @see org.apache.olingo.odata2.jpa.processor.api.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 org.apache.olingo.odata2.jpa.processor.api.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); }