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.
040   */
041  POSTGRES,
042
043  /**
044   * MySql.
045   */
046  MYSQL,
047
048  /**
049   * MySql 5.5.
050   */
051  MYSQL55(MYSQL),
052
053  /**
054   * NuoDB.
055   */
056  NUODB,
057
058  /**
059   * Oracle.
060   */
061  ORACLE,
062
063  /**
064   * SQLAnywhere.
065   */
066  SQLANYWHERE,
067
068  /**
069   * SQLite.
070   */
071  SQLITE,
072
073  /**
074   * Microsoft SQL Server (preferred platform 2017).
075   */
076  SQLSERVER,
077
078  /**
079   * Microsoft SQL Server 2016 platform (Non UTF8 types and Identity by default).
080   */
081  SQLSERVER16(SQLSERVER),
082
083  /**
084   * Microsoft SQL Server 2017 platform (UTF8 types and Sequence).
085   */
086  SQLSERVER17(SQLSERVER),
087
088  /**
089   * SAP HANA
090   */
091  HANA;
092
093  private Platform base;
094
095  Platform() {
096    this.base = this;
097  }
098
099  Platform(Platform base) {
100    this.base = base;
101  }
102
103  /**
104   * Return the base platform.
105   */
106  public Platform base() {
107    return base;
108  }
109}