package com.temenos.interaction.odataext.entity;
/*
* #%L
* interaction-odata4j-ext
* %%
* Copyright (C) 2012 - 2014 Temenos Holdings N.V.
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
import org.odata4j.core.ImmutableList;
import org.odata4j.core.PrefixedNamespace;
import org.odata4j.edm.EdmAssociation;
import org.odata4j.edm.EdmComplexType;
import org.odata4j.edm.EdmDataServices;
import org.odata4j.edm.EdmEntitySet;
import org.odata4j.edm.EdmEntityType;
import org.odata4j.edm.EdmFunctionImport;
import org.odata4j.edm.EdmPropertyBase;
import org.odata4j.edm.EdmSchema;
import org.odata4j.edm.EdmStructuralType;
import org.odata4j.edm.EdmType;
/**
* Apdator class allowing EDM meta data, which would otherwise be immutable, to be refreshed
*
* @author mlambert
*
*/
public final class EdmDataServicesAdapter extends EdmDataServices {
private MetadataOData4j metadataOData4j;
/**
* @param version
* @param schemas
* @param namespaces
*/
EdmDataServicesAdapter(MetadataOData4j metadataOData4j) {
super(null, null, null);
this.metadataOData4j = metadataOData4j;
}
@Override
public EdmComplexType findEdmComplexType(String typeName) {
return metadataOData4j.findEdmComplexType(typeName);
}
@Override
public EdmEntitySet findEdmEntitySet(String arg0) {
return metadataOData4j.getEdmMetadata().findEdmEntitySet(arg0);
}
@Override
public EdmType findEdmEntityType(String typeName) {
return metadataOData4j.getEdmEntityTypeByTypeName(typeName);
}
@Override
public EdmFunctionImport findEdmFunctionImport(String arg0) {
return metadataOData4j.getEdmMetadata().findEdmFunctionImport(arg0);
}
@Override
public EdmPropertyBase findEdmProperty(String arg0) {
return metadataOData4j.getEdmMetadata().findEdmProperty(arg0);
}
@Override
public EdmSchema findSchema(String arg0) {
return metadataOData4j.getEdmMetadata().findSchema(arg0);
}
@Override
public Iterable<EdmAssociation> getAssociations() {
return metadataOData4j.getEdmMetadata().getAssociations();
}
@Override
public Iterable<EdmComplexType> getComplexTypes() {
return metadataOData4j.getEdmMetadata().getComplexTypes();
}
@Override
public EdmEntitySet getEdmEntitySet(EdmEntityType type) {
return metadataOData4j.getEdmEntitySetByType(type);
}
@Override
public EdmEntitySet getEdmEntitySet(String entitySetName) {
return metadataOData4j.getEdmEntitySetByEntitySetName(entitySetName);
}
@Override
public Iterable<EdmEntitySet> getEntitySets() {
return metadataOData4j.getEdmMetadata().getEntitySets();
}
@Override
public Iterable<EdmEntityType> getEntityTypes() {
return metadataOData4j.getEdmMetadata().getEntityTypes();
}
@Override
public ImmutableList<PrefixedNamespace> getNamespaces() {
return metadataOData4j.getEdmMetadata().getNamespaces();
}
@Override
public ImmutableList<EdmSchema> getSchemas() {
return metadataOData4j.getEdmMetadata().getSchemas();
}
@Override
public Iterable<EdmStructuralType> getStructuralTypes() {
return metadataOData4j.getEdmMetadata().getStructuralTypes();
}
@Override
public Iterable<EdmStructuralType> getSubTypes(EdmStructuralType t) {
return metadataOData4j.getEdmMetadata().getSubTypes(t);
}
@Override
public String getVersion() {
return metadataOData4j.getEdmMetadata().getVersion();
}
@Override
public EdmType resolveType(String fqTypeName) {
return metadataOData4j.getEdmMetadata().resolveType(fqTypeName);
}
}