/** * 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; } }