public PolicySpec<T> configure(Map<?,?> val) { for (Map.Entry<?, ?> entry: val.entrySet()) { if (entry.getKey()==null) throw new NullPointerException("Null key not permitted"); if (entry.getKey() instanceof CharSequence) flags.put(entry.getKey().toString(), entry.getValue()); else if (entry.getKey() instanceof ConfigKey<?>) config.put((ConfigKey<?>)entry.getKey(), entry.getValue()); else if (entry.getKey() instanceof HasConfigKey<?>) config.put(((HasConfigKey<?>)entry.getKey()).getConfigKey(), entry.getValue()); else { log.warn("Spec "+this+" ignoring unknown config key "+entry.getKey()); } } return this; }
public <V> PolicySpec<T> configure(HasConfigKey<V> key, Task<? extends V> val) { config.put(checkNotNull(key, "key").getConfigKey(), val); return this; }
public <V> EnricherSpec<T> configure(HasConfigKey<V> key, Task<? extends V> val) { config.put(checkNotNull(key, "key").getConfigKey(), val); return this; }
public <T> T getConfig(HasConfigKey<T> key) { return getConfig(key.getConfigKey(), null); }
public <V> EntitySpec<T> configure(HasConfigKey<V> key, Task<? extends V> val) { checkMutable(); config.put(checkNotNull(key, "key").getConfigKey(), val); return this; }
public <V> EntitySpec<T> configure(HasConfigKey<V> key, V val) { checkMutable(); config.put(checkNotNull(key, "key").getConfigKey(), val); return this; }
/** like normal map.put, except config keys are dereferenced on the way in */ @SuppressWarnings("unchecked") public Object put(Object key, Object value) { if (key instanceof HasConfigKey) key = ((HasConfigKey)key).getConfigKey().getName(); if (key instanceof ConfigKey) key = ((ConfigKey)key).getName(); return super.put(key, value); }
@Override public String apply(HasConfigKey<?> input) { return input.getConfigKey().getName(); } }));
public AbstractConfigurableEntityFactory<T> setConfig(ConfigKey.HasConfigKey key, Object value) { return configure(key.getConfigKey(), value); }
public AbstractConfigurableEntityFactory<T> configure(ConfigKey.HasConfigKey key, Object value) { return setConfig(key.getConfigKey(), value); }
public <V> LocationSpec<T> configure(HasConfigKey<V> key, Task<? extends V> val) { config.put(checkNotNull(key, "key").getConfigKey(), val); return this; }
@Override public <T> T getConfig(HasConfigKey<T> key, T defaultValue) { return getConfig(key.getConfigKey(), defaultValue); }
@Override public <T> T getConfig(HasConfigKey<T> key) { return getConfig(key.getConfigKey(), null); }
/** as {@link #getRequiredUrlConfig(Entity, ConfigKey)} */ public static String getRequiredUrlConfig(Entity entity, HasConfigKey<String> urlKey) { return getRequiredUrlConfig(entity, urlKey.getConfigKey()); }
@Override public <T> T getConfig(HasConfigKey<T> key) { return getConfig(key.getConfigKey(), null); }
public <V> LocationSpec<T> configure(HasConfigKey<V> key, V val) { config.put(checkNotNull(key, "key").getConfigKey(), val); return this; }
protected void putAsStringKey(Object key, Object value) { if (key instanceof HasConfigKey<?>) key = ((HasConfigKey<?>)key).getConfigKey(); if (key instanceof ConfigKey<?>) key = ((ConfigKey<?>)key).getName(); if (key instanceof String) { putStringKey((String)key, value); } else { String message = (key == null ? "Invalid key 'null'" : "Invalid key type "+key.getClass().getCanonicalName()+" ("+key+")") + "being used for configuration, ignoring"; log.debug(message, new Throwable("Source of "+message)); log.warn(message); } }
public <V> EnricherSpec<T> configure(HasConfigKey<V> key, V val) { config.put(checkNotNull(key, "key").getConfigKey(), val); return this; }
public <V> PolicySpec<T> configure(HasConfigKey<V> key, V val) { config.put(checkNotNull(key, "key").getConfigKey(), val); return this; }
@SuppressWarnings("unchecked") public <T> Object put(HasConfigKey<T> key, T value) { return super.put(key.getConfigKey().getName(), value); }