All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.olingo.commons.api.edm.Edm Maven / Gradle / Ivy

There is a newer version: 5.0.0
Show newest version
/*
 * 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.commons.api.edm;

import java.util.List;

/**
 * Entity Data Model (EDM)
 * 
* Interface representing a Entity Data Model as described in the Conceptual Schema Definition. */ public interface Edm { /** * This method DOES NOT support lazy loading. All schemas are loaded completely! * * @return all schemas defined for this EDM */ List getSchemas(); /** * Get schema by namespace. * * @param namespace must not be null * @return {@link EdmSchema} */ EdmSchema getSchema(String namespace); /** * Get main entity container. *
* See {@link EdmEntityContainer} for more information. * * @return {@link EdmEntityContainer} */ EdmEntityContainer getEntityContainer(); /** * Get entity container by full qualified name. *
* See {@link EdmEntityContainer} for more information. * * @param name full qualified name of entity container * @return {@link EdmEntityContainer} */ EdmEntityContainer getEntityContainer(FullQualifiedName name); /** * Get enum type by full qualified name. *
* See {@link EdmEnumType} for more information * * @param name full qualified name of enum type * @return {@link EdmEnumType} */ EdmEnumType getEnumType(FullQualifiedName name); /** * Get a type definition by full qualified name. *
* See {@link EdmTypeDefinition} for more information * * @param name full qualified name of type definition * @return {@link EdmTypeDefinition} */ EdmTypeDefinition getTypeDefinition(FullQualifiedName name); /** * Get entity type by full qualified name. *
* See {@link EdmEntityType} for more information. * * @param name full qualified name of entity type * @return {@link EdmEntityType} */ EdmEntityType getEntityType(FullQualifiedName name); /** * Get entity type with annotations by full qualified name. *
* See {@link EdmEntityType} for more information. * * @param name full qualified name of entity type * @return {@link EdmEntityType} */ EdmEntityType getEntityTypeWithAnnotations(FullQualifiedName name); /** * Get complex type by full qualified name.. *
* See {@link EdmComplexType} for more information. * * @param name full qualified name of complex type * @return {@link EdmComplexType} */ EdmComplexType getComplexType(FullQualifiedName name); /** * Get complex type with annotations by full qualified name.. *
* See {@link EdmComplexType} for more information. * * @param name full qualified name of complex type * @return {@link EdmComplexType} */ EdmComplexType getComplexTypeWithAnnotations(FullQualifiedName name); /** * Get unbound Action by full qualified name. * * @param actionName must not be null * @return {@link EdmAction} */ EdmAction getUnboundAction(FullQualifiedName actionName); /** * Get Action by full qualified name and binding parameter type. * * @param actionName must not be null * @param bindingParameterTypeName must not be null * @param isBindingParameterCollection may be null * @return {@link EdmAction} */ EdmAction getBoundAction(FullQualifiedName actionName, FullQualifiedName bindingParameterTypeName, Boolean isBindingParameterCollection); /** * Get Action by full qualified name and binding parameter type. * Note: action can not be overloaded on binding type * * @param bindingParameterTypeName must not be null * @param isBindingParameterCollection may be null * @return {@link EdmAction} */ EdmAction getBoundActionWithBindingType(FullQualifiedName bindingParameterTypeName, Boolean isBindingParameterCollection); /** * Get Function by full qualified name. * * @param functionName must not be null * @return {@link EdmFunction} */ List getUnboundFunctions(FullQualifiedName functionName); /** * Get Function by full qualified name. * * @param functionName must not be null * @param parameterNames may be null: in this case it is considered as empty * @return {@link EdmFunction} */ EdmFunction getUnboundFunction(FullQualifiedName functionName, List parameterNames); /** * Get Function by full qualified name and binding parameter type and binding parameter names. * * @param functionName must not be null * @param bindingParameterTypeName must not be null * @param isBindingParameterCollection may be null * @param parameterNames may be null: in this case it is considered as empty * @return {@link EdmFunction} */ EdmFunction getBoundFunction(FullQualifiedName functionName, FullQualifiedName bindingParameterTypeName, Boolean isBindingParameterCollection, List parameterNames); /** * Get Function by binding parameter type * * @param bindingParameterTypeName must not be null * @param isBindingParameterCollection may be null * @return {@link EdmFunction} */ List getBoundFunctionsWithBindingType(FullQualifiedName bindingParameterTypeName, Boolean isBindingParameterCollection); /** * Get Term full by qualified name. * * @param termName must not be null * @return {@link EdmTerm} */ EdmTerm getTerm(FullQualifiedName termName); /** * Get {@link EdmAnnotations} by target. * * @param targetName edm:Annotations target * @param qualifier for the target. Can be NULL * @return {@link EdmAnnotations} */ EdmAnnotations getAnnotationGroup(FullQualifiedName targetName, String qualifier); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy