package org.constellation.database.api.domain; import java.io.Serializable; import static org.apache.sis.util.ArgumentChecks.ensureNonNull; /** * @author Fabien Bernard (Geomatys). */ public class Order implements Serializable { private static final long serialVersionUID = -2014434636272903866L; public static final Direction DEFAULT_DIRECTION = Direction.ASC; // ------------------------------------------------------------------------- // Properties // ------------------------------------------------------------------------- private final Direction direction; private final String property; // ------------------------------------------------------------------------- // Constructors // ------------------------------------------------------------------------- public Order(Direction direction, String property) { ensureNonNull("direction", direction); ensureNonNull("property", property); this.direction = direction; this.property = property; } public Order(String property) { this(DEFAULT_DIRECTION, property); } // ------------------------------------------------------------------------- // Getters / Setters // ------------------------------------------------------------------------- public Direction getDirection() { return direction; } public String getProperty() { return property; } // ------------------------------------------------------------------------- // Equals & HashCode // ------------------------------------------------------------------------- @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } Order that = (Order) obj; return direction.equals(that.direction) && property.equals(that.property); } @Override public int hashCode() { int result = direction.hashCode(); result = 31 * result + property.hashCode(); return result; } // ------------------------------------------------------------------------- // Inner classes / enums // ------------------------------------------------------------------------- public static enum Direction { ASC, DESC } }