001 002package com.commercetools.api.client; 003 004import java.util.Collection; 005import java.util.List; 006 007import io.vrap.rmf.base.client.ApiMethod; 008import io.vrap.rmf.base.client.ClientRequestCommand; 009import io.vrap.rmf.base.client.RequestCommand; 010 011/** 012 * Interface with common methods for query endpoints 013 * @param <T> the type of the underlying request 014 * @param <TResult> the type of the underlying result model, like category or product. 015 */ 016public interface PagedQueryResourceRequest<T extends PagedQueryResourceRequest<T, TResult, TQuery>, TResult, TQuery> 017 extends RequestCommand<TResult>, ClientRequestCommand<TResult>, 018 SimplePagedQueryResourceRequest<T, TResult, TQuery> { 019 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> withLimit(final TValue limit); 020 021 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> addLimit(final TValue limit); 022 023 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> withOffset(final TValue offset); 024 025 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> addOffset(final TValue offset); 026 027 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> withSort(final TValue sort); 028 029 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> addSort(final TValue sort); 030 031 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> withWhere(final TValue where); 032 033 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> addWhere(final TValue where); 034 035 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> withExpand(final TValue expand); 036 037 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> addExpand(final TValue expand); 038 039 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> withWithTotal(final TValue withTotal); 040 041 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> addWithTotal(final TValue withTotal); 042 043 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> withPredicateVar(final String varName, 044 final TValue predicateVar); 045 046 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> addPredicateVar(final String varName, 047 final TValue predicateVar); 048 049 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> withPredicateVar(final String varName, 050 final Collection<TValue> predicateVar); 051 052 <TValue> PagedQueryResourceRequest<T, TResult, TQuery> addPredicateVar(final String varName, 053 final Collection<TValue> predicateVar); 054 055 List<ApiMethod.ParamEntry<String, String>> getQueryParams(); 056 057 List<String> getQueryParam(final String key); 058 059 String getFirstQueryParam(final String key); 060 061 default PagedQueryResourceRequest<T, TResult, TQuery> asPagedQueryResourceRequest() { 062 return this; 063 } 064}