public ConfiguratorImpl(Configuration c, Configuration parent) { configuration = c; clients = new ArrayList<Configurator>(); if (parent instanceof AbstractConfigurationImpl) { hook = ((AbstractConfigurationImpl)parent).getConfigurator(); hook.registerClient(this); } else { hook = null; } }
public <T> T getObject(Class<T> cls, String name) { Object obj = getObject(name); return cls.cast(obj); }
public boolean setString(String name, String value) { return setObject(name, (String)value); }
public Configuration buildConfiguration(String namespaceUri, String id, Configuration parent) { ConfigurationMetadata model = getModel(namespaceUri); if (null == model) { throw new ConfigurationException(new Message("UNKNOWN_NAMESPACE_EXC", BUNDLE, namespaceUri)); } /* if (parent != null && !isValidChildConfiguration(model, parent)) { throw new ConfigurationException(new Message("INVALID_CHILD_CONFIGURATION", BUNDLE, namespaceUri, parent.getModel().getNamespaceURI())); } */ if (parent == null && !isValidTopConfiguration(model, parent)) { throw new ConfigurationException(new Message("INVALID_TOP_CONFIGURATION", BUNDLE, namespaceUri)); } Configuration c = new AbstractConfigurationImpl(model, id, parent); if (null == parent) { Map<String, Configuration> instances = configurations.get(namespaceUri); if (null == instances) { instances = new HashMap<String, Configuration>(); configurations.put(namespaceUri, instances); } instances.put(id, c); } return c; }
public Object getObject(String name) { ConfigurationItemMetadata definition = model.getDefinition(name); if (null == definition) { throw new ConfigurationException(new Message("ITEM_NOT_DEFINED_EXC", BUNDLE, name)); } Configuration holder = this; while (null != holder) { Object obj = getLocal(holder, name); if (null != obj) { return obj; } holder = holder.getParent(); } return definition.getDefaultValue(); }
public boolean getBoolean(String name) { Object obj = getObject(name); if (null == obj) { throw new ConfigurationException(new Message("ITEM_NO_VALUE_EXC", BUNDLE, name)); } try { return ((Boolean)obj).booleanValue(); } catch (ClassCastException ex) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } }
public boolean setShort(String name, short value) { return setObject(name, new Short(value)); }
public int getInt(String name) { Object obj = getObject(name); if (null == obj) { throw new ConfigurationException(new Message("ITEM_NO_VALUE_EXC", BUNDLE, name)); } try { return ((Integer)obj).intValue(); } catch (ClassCastException ex) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } }
public boolean setInt(String name, int value) { return setObject(name, new Integer(value)); }
public float getFloat(String name) { Object obj = getObject(name); if (null == obj) { throw new ConfigurationException(new Message("ITEM_NO_VALUE_EXC", BUNDLE, name)); } try { return ((Float)obj).floatValue(); } catch (ClassCastException ex) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } }
public boolean setFloat(String name, float value) { return setObject(name, new Float(value)); }
public long getLong(String name) { Object obj = getObject(name); if (null == obj) { throw new ConfigurationException(new Message("ITEM_NO_VALUE_EXC", BUNDLE, name)); } try { return ((Long)obj).longValue(); } catch (ClassCastException ex) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } }
public boolean setDouble(String name, double value) { return setObject(name, new Double(value)); }
public short getShort(String name) { Object obj = getObject(name); if (null == obj) { throw new ConfigurationException(new Message("ITEM_NO_VALUE_EXC", BUNDLE, name)); } try { return ((Short)obj).shortValue(); } catch (ClassCastException ex) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } }
public boolean setBoolean(String name, boolean value) { return setObject(name, Boolean.valueOf(value)); }
public double getDouble(String name) { Object obj = getObject(name); if (null == obj) { throw new ConfigurationException(new Message("ITEM_NO_VALUE_EXC", BUNDLE, name)); } try { return ((Double)obj).doubleValue(); } catch (ClassCastException ex) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } }
public boolean setLong(String name, long value) { return setObject(name, new Long(value)); }
public String getString(String name) { Object obj = getObject(name); if (null == obj) { throw new ConfigurationException(new Message("ITEM_NO_VALUE_EXC", BUNDLE, name)); } if (!(obj instanceof String)) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } return (String)obj; }
@SuppressWarnings("unchecked") public List<String> getStringList(String name) { Object obj = getObject(name); if (null == obj) { throw new ConfigurationException(new Message("ITEM_NO_VALUE_EXC", BUNDLE, name)); } try { Method method = obj.getClass().getMethod("getItem", new Class[0]); obj = method.invoke(obj, new Object[0]); return (List<String>)obj; } catch (ClassCastException ex) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } catch (NoSuchMethodException e) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } catch (IllegalAccessException e) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } catch (InvocationTargetException e) { QName type = model.getDefinition(name).getType(); throw new ConfigurationException(new Message("ITEM_TYPE_MISMATCH_EXC", BUNDLE, name, type)); } }