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

org.apache.olingo.odata2.client.api.uri.URIBuilder Maven / Gradle / Ivy

There is a newer version: 1.40.11
Show newest version
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 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.
   * 
* 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 functionImportParams); /** * Build OData URI. * * @return OData URI. */ URI build(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy