package net.northking.cctp.common.db;

/**
 * SQL排序对象
 * Created by xiusong.xie on 2018/11/28.
 */
public interface OrderBy extends java.io.Serializable
{
  /**
   * 排序的数量
   *
   * @return
   */
  int size();

  /**
   * 增加排序方式
   *
   * @param column 数据库表的列名
   * @param dir    升序-asc/降序-desc
   * @return SQL排序对象
   */
  OrderBy addOrderBy(String column, String dir);

  /**
   * 升序排序
   *
   * @param column 数据库表的列名
   * @return SQL排序对象
   */
  OrderBy asc(String column);

  /**
   * 降序排序
   *
   * @param column 数据库表的列名
   * @return SQL排序对象
   */
  OrderBy desc(String column);

  /**
   * 是否为空
   *
   * @return 是否为空
   */
  boolean isEmpty();

  /**
   * 是否不为空
   *
   * @return 是否不为空
   */
  default boolean isNotEmpty()
  {
    return !isEmpty();
  }
}
