static ConfigurationDefinition copyConfigurationDefinition(ConfigurationDefinition configurationDefinition) { ConfigurationDefinition configDefCopy = new ConfigurationDefinition(configurationDefinition.getName(), configurationDefinition.getDescription()); configDefCopy.setConfigurationFormat(configurationDefinition.getConfigurationFormat()); configDefCopy.setPropertyDefinitions(new HashMap<String, PropertyDefinition>(configurationDefinition .getPropertyDefinitions())); return configDefCopy; }
/** * Get a copy of this {@link ConfigurationDefinition}. The property definitions will be returned in * a new Map, which can be safely manipulated without affecting the original Map. It is not a deep copy, it * is backed by the same {@link #PropertyDefinition} objects as the original and changes to the Map entries will * modify the originals. The templates Map is treated the same way. The id is not copied. * * @return the copy */ public ConfigurationDefinition copy() { ConfigurationDefinition copy = new ConfigurationDefinition(this.getName(), this.getDescription()); copy.setPropertyDefinitions(this.getPropertyDefinitions()); copy.setConfigurationFormat(this.getConfigurationFormat()); copy.templates = new LinkedHashMap<String, ConfigurationTemplate>(this.getTemplates()); return copy; }
public static ConfigurationDefinition parse(@NotNull String configurationName, ConfigurationDescriptor descriptor) throws InvalidPluginDescriptorException { if (descriptor == null) { return null; } if (configurationName==null) { throw new IllegalArgumentException("ConfigurationName must not be null"); } ConfigurationDefinition configurationDefinition = new ConfigurationDefinition(configurationName, descriptor.getNotes()); configurationDefinition.setConfigurationFormat(getConfigurationFormat(descriptor)); if (configurationDefinition.getConfigurationFormat() == RAW) { return configurationDefinition; } for (ConfigurationTemplateDescriptor templateDescriptor : descriptor.getTemplate()) { configurationDefinition.putTemplate(parseTemplate(templateDescriptor)); } ConfigurationTemplate defaultTemplate = initDefaultTemplate(configurationDefinition); configurationDefinition.putTemplate(defaultTemplate); Configuration defaultConfiguration = defaultTemplate.getConfiguration(); parseProperties(descriptor, defaultConfiguration, configurationDefinition); ConfigurationUtility.normalizeConfiguration(defaultConfiguration, configurationDefinition); return configurationDefinition; }