blob: 7a62c365d185b1ce4b7a474c3b09392c4e2f641a [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.server.api.uri;
import org.apache.olingo.server.api.uri.queryoption.CountOption;
import org.apache.olingo.server.api.uri.queryoption.CustomQueryOption;
import org.apache.olingo.server.api.uri.queryoption.ExpandOption;
import org.apache.olingo.server.api.uri.queryoption.FilterOption;
import org.apache.olingo.server.api.uri.queryoption.FormatOption;
import org.apache.olingo.server.api.uri.queryoption.IdOption;
import org.apache.olingo.server.api.uri.queryoption.OrderByOption;
import org.apache.olingo.server.api.uri.queryoption.SearchOption;
import org.apache.olingo.server.api.uri.queryoption.SelectOption;
import org.apache.olingo.server.api.uri.queryoption.SkipOption;
import org.apache.olingo.server.api.uri.queryoption.SkipTokenOption;
import org.apache.olingo.server.api.uri.queryoption.TopOption;
import java.util.List;
/**
* Used for URI info kind {@link UriInfoKind#resource} to describe URIs like
* E.g. http://.../serviceroot/entitySet
*/
public interface UriInfoResource {
/**
* @return List of custom query options used in the URI
*/
List<CustomQueryOption> getCustomQueryOptions();
/**
* @return Object containing information of the $expand option
*/
ExpandOption getExpandOption();
/**
* @return Object containing information of the $filter option
*/
FilterOption getFilterOption();
/**
* @return Object containing information of the $format option
*/
FormatOption getFormatOption();
/**
* @return Object containing information of the $id option
*/
IdOption getIdOption();
/**
* @return Object containing information of the $count option
*/
CountOption getCountOption();
/**
* @return Object containing information of the $orderby option
*/
OrderByOption getOrderByOption();
/**
* @return Object containing information of the $search option
*/
SearchOption getSearchOption();
/**
* @return Object containing information of the $select option
*/
SelectOption getSelectOption();
/**
* @return Object containing information of the $skip option
*/
SkipOption getSkipOption();
/**
* @return Object containing information of the $skiptoken option
*/
SkipTokenOption getSkipTokenOption();
/**
* @return Object containing information of the $top option
*/
TopOption getTopOption();
/**
* The path segments behind the service root define which resources are
* requested by that URI. This may be entities/functions/actions and more.
* Each segments information (name, key predicates, function parameters, ...) is
* stored within an resource object dedicated for that segment type.</p>
* For example: the URI http://.../serviceroot/entitySet(1)/Adresse will
* have 2 ResourceParts:<br>
* - The first one of type {@link UriResourceEntitySet} containing the name of the entity set and also the key
* predicate information.<br>
* - The second one of type {@link UriResourceComplexProperty} containing the name of
* the accessed complex property
*
* @return List of resource parts.
*/
List<UriResource> getUriResourceParts();
/**
* @param alias
* @return the value for the given alias or null if no value is defined
*/
String getValueForAlias(String alias);
}