コード例 #1
0
  /**
   * Configures this JDBCOutputFormat.
   *
   * @param parameters Configuration containing all parameters.
   */
  @Override
  public void configure(Configuration parameters) {
    this.driverName = parameters.getString(DRIVER_KEY, null);
    this.username = parameters.getString(USERNAME_KEY, null);
    this.password = parameters.getString(PASSWORD_KEY, null);
    this.dbURL = parameters.getString(URL_KEY, null);
    this.query = parameters.getString(QUERY_KEY, null);
    this.fieldCount = parameters.getInteger(FIELD_COUNT_KEY, 0);
    this.batchInterval = parameters.getInteger(BATCH_INTERVAL, DEFAULT_BATCH_INTERVERAL);

    @SuppressWarnings("unchecked")
    Class<Value>[] classes = new Class[this.fieldCount];
    this.fieldClasses = classes;

    for (int i = 0; i < this.fieldCount; i++) {
      @SuppressWarnings("unchecked")
      Class<? extends Value> clazz =
          (Class<? extends Value>) parameters.getClass(FIELD_TYPE_KEY + i, null);
      if (clazz == null) {
        throw new IllegalArgumentException(
            "Invalid configuration for JDBCOutputFormat: " + "No type class for parameter " + i);
      }
      this.fieldClasses[i] = clazz;
    }
  }