blob: 7ecd90845e7c80716255db0669ff9e61fa2c9195 [file] [log] [blame]
package org.apache.olingo.odata2.client.api.uri;
import java.net.URI;
import java.util.Map;
/**
* This is a URIBuilder class
*
*/
public interface URIBuilder {
/**
* Appends EntitySet segment to the URI.
*
* @param entitySet String entity set.
* @return current URIBuilder instance
*/
URIBuilder appendEntitySetSegment(String entitySet);
/**
* Appends navigation segment to the URI.
*
* @param navigationProperty String navigation property.
* @return current URIBuilder instance
*/
URIBuilder appendNavigationSegment(String navigationProperty);
/**
* Appends key segment to the URI.
*
* @param val segment value.
* @return current URIBuilder instance
*/
URIBuilder appendKeySegment(Object val);
/**
* Appends key segment to the URI, for multiple keys.
*
* @param segmentValues segment values.
* @return current URIBuilder instance
*/
URIBuilder appendKeySegment(Map<String, Object> segmentValues);
/**
* Appends property segment to the URI.
*
* @param segmentValue String segment value.
* @return current URIBuilder instance
*/
URIBuilder appendPropertySegment(String segmentValue);
/**
* Adds expand query option.
*
* @param expandItems items to be expanded in-line
* @return current URIBuilder instance
* @see QueryOption#EXPAND
*/
URIBuilder expand(String... expandItems);
/**
* Adds select query option.
*
* @param selectItems select items
* @return current URIBuilder instance
* @see QueryOption#SELECT
*/
URIBuilder select(String... selectItems);
/**
* Adds orderby query option.
*
* @param order order string.
* @return current URIBuilder instance
* @see QueryOption#ORDERBY
*/
URIBuilder orderBy(String order);
/**
* Appends count segment to the URI.
* @return current URIBuilder instance
*/
URIBuilder appendCountSegment();
/**
* Appends metadata segment to the URI.
*
* @return current URIBuilder instance
*/
URIBuilder appendMetadataSegment();
/**
* Adds format query option.
*
* @param format media type acceptable in a response.
* @return current URIBuilder instance
* @see QueryOption#FORMAT
*/
URIBuilder format(String format);
/**
* Appends value segment to the URI.
*
* @return current URIBuilder instance
*/
URIBuilder appendValueSegment();
/**
* Adds the specified query option to the URI.
* <br />
* Concatenates value if the specified query option already exists.
*
* @param option query option.
* @param value query option value.
* @return current URIBuilder instance
*/
URIBuilder addQueryOption(QueryOption option, String value);
/**
* Adds filter query option.
*
* @param filter filter string.
* @return current URIBuilder instance
* @see QueryOption#FILTER
*/
URIBuilder filter(String filter);
/**
* Adds top query option.
*
* @param top maximum number of entities to be returned.
* @return current URIBuilder instance
* @see QueryOption#TOP
*/
URIBuilder top(int top);
/**
* Adds skip query option.
*
* @param skip number of entities to be skipped into the response.
* @return current URIBuilder instance
* @see QueryOption#SKIP
*/
URIBuilder skip(int skip);
/**
* Adds custom query option
* @param paramName parameter name
* @param paramValue parameter value
* @return current URIBuilder instance
*/
URIBuilder addCustomQueryOption(String paramName, Object paramValue);
/**
* Appends function import to the uri
* @param functionImport
* @return current URIBuilder instance
*/
URIBuilder appendFunctionImportSegment(String functionImport);
/**
* Appends function import parameters to the uri
* @param functionImportParams
* @return current URIBuilder instance
*/
URIBuilder appendFunctionImportParameters(Map<String, Object> functionImportParams);
/**
* Build OData URI.
*
* @return OData URI.
*/
URI build();
}