de.smartics.properties.spi.config.support
Class ConfigurationPropertiesManagementWithDefaults

Package class diagram package ConfigurationPropertiesManagementWithDefaults
java.lang.Object
  extended by de.smartics.properties.spi.config.support.AbstractConfigurationProperties
      extended by de.smartics.properties.spi.config.support.ConfigurationPropertiesManagementWithDefaults
All Implemented Interfaces:
ConfigurationProperties, ConfigurationPropertiesManagement, SerializableConfigurationProperties, SerializableConfigurationPropertiesManagement, ConfigurationPropertiesSpi, Serializable

public final class ConfigurationPropertiesManagementWithDefaults
     
     
extends AbstractConfigurationProperties
implements SerializableConfigurationPropertiesManagement

A configuration properties instance that contains the main configuration properties, which matches the key, and all the defaults that have a partial representation of the key.

This implementation is thread-safe as long as the passed in instances of ConfigurationPropertiesManagement are thread-safe.

See Also:
Serialized Form

Constructor Summary
ConfigurationPropertiesManagementWithDefaults(List<ConfigurationPropertiesManagement> configurationProperties)
          Default constructor.
 
Method Summary
 ConfigurationPropertiesManagement addDefinitions(Properties properties)
          Adds the given definitions to this configuration.
 void addDescriptors(Class<?> declaringType)
          Adds all property descriptors declared in the given type.
 void flush()
          Signal to flush properties changed in memory to be written to a secondary storage.
 PropertyDescriptor getDescriptor(PropertyKey key)
          Returns the descriptor for the given key.
 PropertyDescriptor getDescriptor(String key)
          Returns the descriptor for the given key.
 List<PropertyDescriptor> getMandatoryPropertyDescriptors()
          Returns the list of mandatory properties.
 Property getProperty(PropertyDescriptor descriptor, Object defaultValue)
          Returns the property for the given descriptor, allowing to transparently provide a default value to be returned in case the property has not been set.
 Property getProperty(String key, Object defaultValue)
          Returns the property for the given key, allowing to transparently provide a default value to be returned in case the property has not been set.
 ResolvedProperty getResolvedProperty(PropertyDescriptor descriptor, Object defaultValue)
          Returns the resolved property for the given descriptor's key, allowing to transparently provide a default value to be returned in case the property has not been set.
 Property setProperty(PropertyKey key, String value)
          Sets the property value for the given key.
 SerializableConfigurationPropertiesManagement toSerializable()
          Creates a serializable variant of this implementation.
 String toString()
          Returns the string representation of the object.
 Property unsetProperty(PropertyKey key)
          Unsets the property value for the given key.
 void validate(boolean lenient)
          Validates all properties in the given configuration.
 
Methods inherited from class de.smartics.properties.spi.config.support.AbstractConfigurationProperties
addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, getContext, getContext, getKey, getProperties, getProperties, getProperty, getProperty, getProperty, getPropertyDescriptor, getPropertyValue, getPropertyValue, getPropertyValue, getPropertyValue, getPropertyValue, getPropertyValueAsString, getPropertyValueAsString, getPropertyValueAsString, getPropertyValueAsString, getRegistry, getResolvedProperty, getResolvedProperty, removePropertyChangeListener, removePropertyChangeListener, resolveAndConvert, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.smartics.properties.api.config.domain.ConfigurationPropertiesManagement
getRegistry
 
Methods inherited from interface de.smartics.properties.api.config.domain.ConfigurationProperties
addPropertyChangeListener, addPropertyChangeListener, getContext, getContext, getKey, getProperties, getProperty, getProperty, getProperty, getPropertyValue, getPropertyValue, getPropertyValue, getPropertyValue, getPropertyValue, getPropertyValueAsString, getPropertyValueAsString, getPropertyValueAsString, getPropertyValueAsString, getResolvedProperty, getResolvedProperty, removePropertyChangeListener, removePropertyChangeListener, validate
 

Constructor Detail

ConfigurationPropertiesManagementWithDefaults

public ConfigurationPropertiesManagementWithDefaults(List<ConfigurationPropertiesManagement> configurationProperties)
                                              throws IllegalArgumentException
Default constructor.

Parameters:
configurationProperties - the list of configuration properties to consult on requests.
Throws:
IllegalArgumentException - if configurationProperties is null or empty.
Method Detail

getProperty

public Property getProperty(PropertyDescriptor descriptor,
                            Object defaultValue)
                     throws IllegalArgumentException,
                            UnknownPropertyException
Description copied from interface: ConfigurationProperties
Returns the property for the given descriptor, allowing to transparently provide a default value to be returned in case the property has not been set.

Specified by:
getProperty in interface ConfigurationProperties
Parameters:
descriptor - the descriptor containing the unique key of the property.
defaultValue - the default value to use in case no value has been specified.
Returns:
the requested property.
Throws:
UnknownPropertyException - if the key of the descriptor is not known.
IllegalArgumentException

getProperty

public Property getProperty(String key,
                            Object defaultValue)
                     throws IllegalArgumentException,
                            UnknownPropertyException
Description copied from interface: ConfigurationProperties
Returns the property for the given key, allowing to transparently provide a default value to be returned in case the property has not been set.

Specified by:
getProperty in interface ConfigurationProperties
Overrides:
getProperty in class AbstractConfigurationProperties
Parameters:
key - the unique key of the property.
defaultValue - the default value to use in case no value has been specified.
Returns:
the requested property.
Throws:
IllegalArgumentException - if key is blank.
UnknownPropertyException - if key is not known.

getResolvedProperty

public ResolvedProperty getResolvedProperty(PropertyDescriptor descriptor,
                                            Object defaultValue)
                                     throws IllegalArgumentException,
                                            UnknownPropertyException,
                                            PropertyValidationException
Description copied from interface: ConfigurationProperties
Returns the resolved property for the given descriptor's key, allowing to transparently provide a default value to be returned in case the property has not been set.

Specified by:
getResolvedProperty in interface ConfigurationProperties
Parameters:
descriptor - descriptor key to the property.
defaultValue - the default value to use in case no value has been specified.
Returns:
the resolved property. Never null, although the value / resolved value of the returned property may be null.
Throws:
IllegalArgumentException - if key is blank.
UnknownPropertyException - if key is not known.
PropertyValidationException - if the property is invalid according to its constraints.

validate

public void validate(boolean lenient)
              throws ConfigurationValidationException
Description copied from interface: ConfigurationProperties
Validates all properties in the given configuration.

Specified by:
validate in interface ConfigurationProperties
Parameters:
lenient - the lenient flag that tells the validation process to handle unknown properties gracefully if set to true. If the value is false unknown properties are reported as validation failures.
Throws:
ConfigurationValidationException - if the configuration contains properties that do not meet the required constraints.

flush

public void flush()
Description copied from interface: ConfigurationPropertiesManagement
Signal to flush properties changed in memory to be written to a secondary storage.

Implementations are not required to only write on a flush. They have to make sure that after the flush is called, all data is transfered to the secondary storage.

Specified by:
flush in interface ConfigurationPropertiesManagement

toSerializable

public SerializableConfigurationPropertiesManagement toSerializable()
Description copied from interface: ConfigurationProperties
Creates a serializable variant of this implementation.

Specified by:
toSerializable in interface ConfigurationProperties
Specified by:
toSerializable in interface ConfigurationPropertiesManagement
Returns:
a serializable variant of this implementation.
See Also:
ConfigurationPropertiesProxy, ConfigurationPropertiesManagementProxy

addDefinitions

public ConfigurationPropertiesManagement addDefinitions(Properties properties)
                                                 throws NullPointerException
Description copied from interface: ConfigurationPropertiesManagement
Adds the given definitions to this configuration.

Specified by:
addDefinitions in interface ConfigurationPropertiesManagement
Parameters:
properties - the property definitions to add.
Returns:
a reference to this configuration for chaining.
Throws:
NullPointerException - if properties is null.

setProperty

public Property setProperty(PropertyKey key,
                            String value)
                     throws NullPointerException,
                            PropertyValidationException,
                            ReadOnlyPropertyException
Sets the property value for the given key.

This method sets the property in the most defining representative. If the client wants to change a value in a specific defaulting representation by its configuration key, the client has to access this particular instance and set it manually.

Specified by:
setProperty in interface ConfigurationPropertiesManagement
Parameters:
key - the key to the property.
value - the value to the property.
Returns:
the old value to the property. A value of null is returned if the property had no value prior to this call.
Throws:
NullPointerException - if key is null.
PropertyValidationException - if the property value is invalid according to its constraints.
ReadOnlyPropertyException - if the property to update is read-only.

unsetProperty

public Property unsetProperty(PropertyKey key)
                       throws NullPointerException,
                              ReadOnlyPropertyException
Unsets the property value for the given key.

This method unsets the property in the most defining representative. If the client wants to change a value in a specific defaulting representation by its configuration key, the client has to access this particular instance and unset it manually.

Specified by:
unsetProperty in interface ConfigurationPropertiesManagement
Parameters:
key - the key to the property.
Returns:
the old value to the property. A value of null is returned if the property had no value prior to this call.
Throws:
NullPointerException - if key is null.
ReadOnlyPropertyException - if the property to update is read-only.

addDescriptors

public void addDescriptors(Class<?> declaringType)
                    throws DuplicatePropertyDeclarationsException
Description copied from interface: ConfigurationPropertiesManagement
Adds all property descriptors declared in the given type.

Specified by:
addDescriptors in interface ConfigurationPropertiesManagement
Parameters:
declaringType - the type that declares the descriptors.
Throws:
DuplicatePropertyDeclarationsException - if any of the descriptors declare the same property.

getDescriptor

public PropertyDescriptor getDescriptor(String key)
                                 throws UnknownPropertyException
Description copied from interface: ConfigurationPropertiesManagement
Returns the descriptor for the given key.

Specified by:
getDescriptor in interface ConfigurationPropertiesManagement
Parameters:
key - the of the requested descriptor.
Returns:
the descriptor whose key matches the given key.
Throws:
UnknownPropertyException - if the property is not known.

getDescriptor

public PropertyDescriptor getDescriptor(PropertyKey key)
                                 throws UnknownPropertyException
Description copied from interface: ConfigurationPropertiesManagement
Returns the descriptor for the given key.

Specified by:
getDescriptor in interface ConfigurationPropertiesManagement
Parameters:
key - the of the requested descriptor.
Returns:
the descriptor whose key matches the given key.
Throws:
UnknownPropertyException - if the property is not known.

getMandatoryPropertyDescriptors

public List<PropertyDescriptor> getMandatoryPropertyDescriptors()
Description copied from interface: ConfigurationPropertiesManagement
Returns the list of mandatory properties.

Returns a copy that can be edited.

Specified by:
getMandatoryPropertyDescriptors in interface ConfigurationPropertiesManagement
Returns:
the list of mandatory properties.

toString

public String toString()
Returns the string representation of the object.

Overrides:
toString in class AbstractConfigurationProperties
Returns:
the string representation of the object.


Copyright © 2012-2013 Kronseder & Reiner GmbH - smartics. All Rights Reserved.