package net.northking.cctp.maven.analyse;

/**
 * 数据库连接配置对象。
 *
 * @author : 谢秀松
 * @since : 1.0
 */
public final class JDBCConfig
{
  /**
   * 单例模式
   */
  private static JDBCConfig instance = new JDBCConfig();

  /**
   * 数据库驱动
   */
  private String driverClass;

  /**
   * 数据库链接
   */
  private String url;

  /**
   * 数据库用户名
   */
  private String userId;

  /**
   * 数据库密码
   */
  private String password;

  /**
   * 数据库库名
   */
  private String catalog;

  /**
   * 单例模式，私有化构造函数
   */
  private JDBCConfig()
  {
  }

  /**
   * 获取数据库配置对象
   *
   * @return 数据库配置对象
   */
  public static JDBCConfig getInstance()
  {
    return instance;
  }

  /**
   * 获取数据库链接地址
   * @return 据库链接地址
   */
  public String getUrl()
  {
    return url;
  }

  /**
   * 设置数据库链接地址
   * @param databaseUrl 数据库链接地址
   */
  public void setUrl(final String databaseUrl)
  {
    this.url = databaseUrl;
  }

  /**
   * 获取数据库密码
   * @return 数据库密码
   */
  public String getPassword()
  {
    return password;
  }

  /**
   * 设置数据库密码
   * @param databasePassword 数据库密码
   */
  public void setPassword(final String databasePassword)
  {
    this.password = databasePassword;
  }

  /**
   * 获取数据库用户名
   * @return 数据库用户名
   */
  public String getUserId()
  {
    return userId;
  }

  /**
   * 设置数据库用户名
   * @param databaseUser 数据库用户名
   */
  public void setUserId(final String databaseUser)
  {
    this.userId = databaseUser;
  }

  /**
   * 获取数据库驱动
   * @return 数据库驱动
   */
  public String getDriverClass()
  {
    return driverClass;
  }

  /**
   * 设置数据库驱动
   * @param databaseDriver 数据库驱动
   */
  public void setDriverClass(final String databaseDriver)
  {
    this.driverClass = databaseDriver;
  }

  /**
   * 获取数据库库名
   * @return 数据库库名
   */
  public String getCatalog()
  {
    return catalog;
  }

  /**
   * 设置数据库库名
   * @param databaseCatalog 数据库库名
   */
  public void setCatalog(final String databaseCatalog)
  {
    this.catalog = databaseCatalog;
  }

  /**
   * 字符串展示
   * @return 字符串展示
   */
  public String toString()
  {
    return "DriverClass=" + driverClass + "\nURL=" + url + "\nUsername=" + userId + "\nPassword=" + password;
  }
}
