package gov.nysenate.openleg.dao.base; import com.google.common.collect.ImmutableMap; /** * OrderBy associates column names with a sort order. This should be used within * the dao layer to append order by clauses to sql queries. */ public class OrderBy { private static OrderBy NO_ORDER = new OrderBy(); /** An immutable mapping of column names to sort order. */ private ImmutableMap<String, SortOrder> sortColumns = ImmutableMap.of(); /** --- Constructors --- */ public OrderBy() {} public OrderBy(ImmutableMap<String, SortOrder> sortColumns) { this.sortColumns = sortColumns; } public OrderBy(String k1, SortOrder v1) { this.sortColumns = ImmutableMap.of(k1, v1); } public OrderBy(String k1, SortOrder v1, String k2, SortOrder v2) { this.sortColumns = ImmutableMap.of(k1, v1, k2, v2); } public OrderBy(String k1, SortOrder v1, String k2, SortOrder v2, String k3, SortOrder v3) { this.sortColumns = ImmutableMap.of(k1, v1, k2, v2, k3, v3); } /** --- Basic Getters/Setters --- */ public ImmutableMap<String, SortOrder> getSortColumns() { return sortColumns; } }