blob: 774bd948d5110e391d979752a99c65f548ec75c6 [file] [log] [blame]
/*
* 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.client.api.domain;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import java.net.URI;
/**
* Entry point for generating OData domain objects.
*/
public interface ClientObjectFactory {
/**
* Instantiates a new entity set.
*
* @return entity set.
*/
ClientEntitySet newEntitySet();
/**
* Instantiates a new entity set.
*
* @param next next link.
* @return entity set.
*/
ClientEntitySet newEntitySet(URI next);
/**
* Instantiates a new entity.
*
* @param typeName OData entity type name.
* @return entity.
*/
ClientEntity newEntity(FullQualifiedName typeName);
/**
* Instantiates a new entity.
*
* @param typeName OData entity type name.
* @param link self link.
* @return entity.
*/
ClientEntity newEntity(FullQualifiedName typeName, URI link);
/**
* Instantiates a new entity set (for deep insert).
*
* @param name name.
* @param entitySet entity set.
* @return in-line entity set.
*/
ClientInlineEntitySet newDeepInsertEntitySet(String name, ClientEntitySet entitySet);
/**
* Instantiates a new entity (for deep insert).
*
* @param name name.
* @param entity entity.
* @return in-line entity.
*/
ClientInlineEntity newDeepInsertEntity(String name, ClientEntity entity);
/**
* Instantiates a new entity set navigation link.
*
* @param name name.
* @param link link.
* @return entity set navigation link.
*/
ClientLink newEntitySetNavigationLink(String name, URI link);
/**
* Instantiates a new singleton entity.
*
* @param typeName OData singleton entity type name.
* @return new singleton entity.
*/
ClientSingleton newSingleton(FullQualifiedName typeName);
/**
* Instantiates a new entity navigation link.
*
* @param name name.
* @param link link.
* @return entity navigation link.
*/
ClientLink newEntityNavigationLink(String name, URI link);
ClientLink newAssociationLink(String name, URI link);
ClientLink newMediaEditLink(String name, URI link, String type, String eTag);
ClientLink newMediaReadLink(String name, URI link, String type, String eTag);
ClientPrimitiveValue.Builder newPrimitiveValueBuilder();
ClientEnumValue newEnumValue(String typeName, String value);
ClientComplexValue newComplexValue(String typeName);
ClientCollectionValue<ClientValue> newCollectionValue(String typeName);
/**
* Instantiates a new primitive property.
*
* @param name name.
* @param value primitive value.
* @return primitive property.
*/
ClientProperty newPrimitiveProperty(String name, ClientPrimitiveValue value);
/**
* Instantiates a new complex property.
*
* @param name name.
* @param value value.
* @return complex property.
*/
ClientProperty newComplexProperty(String name, ClientComplexValue value);
/**
* Instantiates a new collection property.
*
* @param name name.
* @param value value.
* @return collection property.
*/
ClientProperty newCollectionProperty(String name, ClientCollectionValue<? extends ClientValue> value);
/**
* Instantiates a new enum property.
*
* @param name name.
* @param value value.
* @return new enum property.
*/
ClientProperty newEnumProperty(String name, ClientEnumValue value);
/**
* Instantiates a new delta property.
*
* @return new delta property.
*/
ClientDelta newDelta();
/**
* Instantiates a new delta property.
*
* @param next next link for delta property
* @return new delta property.
*/
ClientDelta newDelta(URI next);
}