001package ca.uhn.fhir.rest.gclient; 002 003/* 004 * #%L 005 * HAPI FHIR - Core Library 006 * %% 007 * Copyright (C) 2014 - 2022 Smile CDR, Inc. 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023public interface ISort<T> { 024 025 /** 026 * Sort ascending 027 */ 028 IQuery<T> ascending(IParam theParam); 029 030 /** 031 * Sort ascending 032 * 033 * @param theParam The param name, e.g. "address" 034 */ 035 IQuery<T> ascending(String theParam); 036 037 /** 038 * Sort by the default order. Note that as of STU3, there is no longer 039 * a concept of default order, only ascending and descending. This method 040 * technically implies "ascending" but it makes more sense to use 041 * {@link #ascending(IParam)} 042 */ 043 IQuery<T> defaultOrder(IParam theParam); 044 045 /** 046 * Sort by the default order. Note that as of STU3, there is no longer 047 * a concept of default order, only ascending and descending. This method 048 * technically implies "ascending" but it makes more sense to use 049 * {@link #ascending(IParam)} 050 */ 051 IQuery<T> defaultOrder(String theParam); 052 053 /** 054 * Sort descending 055 * 056 * @param theParam A query param - Could be a constant such as <code>Patient.ADDRESS</code> or a custom 057 * param such as <code>new StringClientParam("foo")</code> 058 */ 059 IQuery<T> descending(IParam theParam); 060 061 /** 062 * Sort ascending 063 * 064 * @param theParam The param name, e.g. "address" 065 */ 066 IQuery<T> descending(String theParam); 067 068}