001package io.ebean.annotation;
002
003/**
004 * Built in supported platforms.
005 */
006public enum Platform {
007
008  /**
009   * Generic platform configured via properties or code.
010   */
011  GENERIC,
012
013  /**
014   * DB2.
015   */
016  DB2,
017
018  /**
019   * CockroachDB.
020   */
021  COCKROACH,
022
023  /**
024   * ClickHouse.
025   */
026  CLICKHOUSE,
027
028  /**
029   * H2.
030   */
031  H2,
032
033  /**
034   * HsqlDB.
035   */
036  HSQLDB,
037
038  /**
039   * Postgres preferred platform for 10+.
040   */
041  POSTGRES,
042
043  /**
044   * Postgres 9.
045   */
046  POSTGRES9(POSTGRES),
047
048  /**
049   * MySql.
050   */
051  MYSQL,
052
053  /**
054   * MySql 5.5.
055   */
056  MYSQL55(MYSQL),
057
058  /**
059   * MariaDB.
060   */
061  MARIADB,
062
063  /**
064   * NuoDB.
065   */
066  NUODB,
067
068  /**
069   * Oracle preferred platform 12c and higher.
070   */
071  ORACLE,
072
073  /**
074   * Oracle 11 platform.
075   */
076  ORACLE11(ORACLE),
077
078  /**
079   * SQLAnywhere.
080   */
081  SQLANYWHERE,
082
083  /**
084   * SQLite.
085   */
086  SQLITE,
087
088  /**
089   * Microsoft SQL Server (preferred platform 2017).
090   */
091  SQLSERVER,
092
093  /**
094   * Microsoft SQL Server 2016 platform (Non UTF8 types and Identity by default).
095   */
096  SQLSERVER16(SQLSERVER),
097
098  /**
099   * Microsoft SQL Server 2017 platform (UTF8 types and Sequence).
100   */
101  SQLSERVER17(SQLSERVER),
102
103  /**
104   * SAP HANA
105   */
106  HANA;
107
108  private Platform base;
109
110  Platform() {
111    this.base = this;
112  }
113
114  Platform(Platform base) {
115    this.base = base;
116  }
117
118  /**
119   * Return the base platform.
120   */
121  public Platform base() {
122    return base;
123  }
124}