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 && !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;
}