/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.utils.incubator.configuration; import java.beans.EventSetDescriptor; import java.beans.PropertyDescriptor; import java.util.HashMap; import java.util.Map; /** * The implementation class for {@link ConfigurationInfo}. * * @author Christian Weiss */ public class ConfigurationInfoImpl implements ConfigurationInfo { /** The mapping of property names to {@link PropertyDescriptor}s. */ private final Map<String, PropertyDescriptor> descriptors = new HashMap<String, PropertyDescriptor>(); /** The mapping of property names to {@link ConfigurationProperty}s. */ private final Map<String, ConfigurationProperty> properties = new HashMap<String, ConfigurationProperty>(); /** * Adds a Java Bean property to the set of properties. * * @param descriptor the Java Bean property */ /* default */void addProperty(final PropertyDescriptor descriptor, final EventSetDescriptor propertyChangeEventSetDescriptor) { final String propertyName = descriptor.getName(); descriptors.put(propertyName, descriptor); ConfigurationProperty property = new ConfigurationPropertyImpl(descriptor); properties.put(propertyName, property); } /** * {@inheritDoc} * * @see de.rcenvironment.core.utils.incubator.configuration.ConfigurationInfo#getPropertyNames() */ @Override public String[] getPropertyNames() { return properties.keySet().toArray(new String[0]); } /** * {@inheritDoc} * * @see de.rcenvironment.core.utils.incubator.configuration.ConfigurationInfo#getProperty(java.lang.String) */ @Override public ConfigurationProperty getProperty(String propertyName) { if (!properties.containsKey(propertyName)) { throw new IllegalArgumentException(); } return properties.get(propertyName); } }