private static final void setParameter( final Configuration config, final Class<?> scope, final Object val, final ParameterEnum configItem) { if (val != null) { if (val instanceof Long) { config.setLong( GeoWaveConfiguratorBase.enumToConfKey(scope, configItem.self()), ((Long) val)); } else if (val instanceof Double) { config.setDouble( GeoWaveConfiguratorBase.enumToConfKey(scope, configItem.self()), ((Double) val)); } else if (val instanceof Boolean) { config.setBoolean( GeoWaveConfiguratorBase.enumToConfKey(scope, configItem.self()), ((Boolean) val)); } else if (val instanceof Integer) { config.setInt( GeoWaveConfiguratorBase.enumToConfKey(scope, configItem.self()), ((Integer) val)); } else if (val instanceof Class) { config.setClass( GeoWaveConfiguratorBase.enumToConfKey(scope, configItem.self()), ((Class) val), ((Class) val)); } else if (val instanceof byte[]) { config.set( GeoWaveConfiguratorBase.enumToConfKey(scope, configItem.self()), ByteArrayUtils.byteArrayToString((byte[]) val)); } else { config.set(GeoWaveConfiguratorBase.enumToConfKey(scope, configItem.self()), val.toString()); } } }
@Override public Object getValue( final JobContext context, final Class<?> scope, final Object defaultValue) { final ScopedJobConfiguration scopedConfig = new ScopedJobConfiguration(context.getConfiguration(), scope); if (baseClass.isAssignableFrom(Integer.class)) { return Integer.valueOf( scopedConfig.getInt(parent.self(), ((Integer) defaultValue).intValue())); } else if (baseClass.isAssignableFrom(String.class)) { return scopedConfig.getString(parent.self(), defaultValue.toString()); } else if (baseClass.isAssignableFrom(Double.class)) { return scopedConfig.getDouble(parent.self(), (Double) defaultValue); } else if (baseClass.isAssignableFrom(byte[].class)) { return scopedConfig.getBytes(parent.self()); } else if ((defaultValue == null) || (defaultValue instanceof Class)) { try { return scopedConfig.getInstance(parent.self(), baseClass, (Class) defaultValue); } catch (InstantiationException | IllegalAccessException e) { LOGGER.error("Unable to get instance from job context", e); } } return null; }