package io.delphi.qa.auto.awsmfrw.models.db.sql.dsl;

public abstract class DslSql {

  public static DslSqlCall call(String xInnerQuery) {
    return new DslSqlCall(xInnerQuery);
  }

  public static DslSqlFunctions functions() {
    return new DslSqlFunctions();
  }

  public static DslSqlConstants constants(String... constantsArray) {
    return new DslSqlConstants(constantsArray);
  }

  public static DslSqlSelect select(InterfaceDslSqlQuery... sqlQuery) {
    if (sqlQuery.length > 0) return new DslSqlSelect(sqlQuery);
    else return new DslSqlSelect();
  }

  public static DslSqlSelect select(String sqlQueryText) {
    if (sqlQueryText != null) return new DslSqlSelect(sqlQueryText);
    else return select();
  }

  public static DslSqlSelect selectCustom(String sqlQueryText) {
    if (sqlQueryText != null) return new DslSqlSelect(sqlQueryText);
    else return select();
  }

  public static DslSqlCase caseWhen() {
    return new DslSqlCase();
  }
}
