Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.lib.conf
Class ConfigurationImpl

    java.lang.Object
      org.apache.openjpa.lib.conf.ConfigurationImpl

All Implemented Interfaces:
  BeanInfo, Externalizable, Serializable, Cloneable, Configuration, ValueListener, Closeable

Direct Known Subclasses:
  OpenJPAConfigurationImpl

    public class ConfigurationImpl

extends Object
implements Configuration, Externalizable, ValueListener

Default implementation of the `Configuration` interface. Subclasses can choose to obtain configuration information from JNDI, Properties, a Bean-builder, etc. This class provides base configuration functionality, including serialization, the `equals` and `hashCode` contracts, and default property loading. Property descriptors for `Value` instances are constructed from the `Localizer` for the package of the configuration class. The following localized strings will be used for describing a value, where name is the last token of the value's property string:

- name-name: The name that will be displayed for the option in a user interface; required.
- name-desc: A brief description of the option; required.
- name-type: The type or category name for this option; required.
- name-expert: True if this is an expert option, false otherwise; defaults to false.
- name-values: Set of expected or common values, excluding alias keys; optional.
- name-interface: The class name of an interface whose discoverable implementations should be included in the set of expected or common values; optional.
- name-cat: The hierarchical category for the property name, separated by ".".
- name-displayorder: The order in which the property should be displayer.

Author:
  Abe White
See Also:
  Serialized Form

Field Summary
`StringValue` | `id`
`ObjectValue` | `logFactoryPlugin`

Fields inherited from interface org.apache.openjpa.lib.conf.Configuration
`ATTRIBUTE_ALLOWED_VALUES, ATTRIBUTE_CATEGORY, ATTRIBUTE_INTERFACE, ATTRIBUTE_ORDER, ATTRIBUTE_TYPE, ATTRIBUTE_XML, INIT_STATE_FREEZING, INIT_STATE_FROZEN, INIT_STATE_LIQUID`

Fields inherited from interface java.beans.BeanInfo
`ICON_COLOR_16x16, ICON_COLOR_32x32, ICON_MONO_16x16, ICON_MONO_32x32`

Constructor Summary
`ConfigurationImpl()` Default constructor.
`ConfigurationImpl(boolean loadGlobals)` Constructor.

Method Summary
`BooleanValue` | `addBoolean(String property)` Add the given value to the set of configuration properties.
`DoubleValue` | `addDouble(String property)` Add the given value to the set of configuration properties.
`FileValue` | `addFile(String property)` Add the given value to the set of configuration properties.
`IntValue` | `addInt(String property)` Add the given value to the set of configuration properties.
`ObjectValue` | `addObject(String property)` Add the given value to the set of configuration properties.
`PluginValue` | `addPlugin(String property, boolean singleton)` Add the given value to the set of configuration properties.
`PluginListValue` | `addPluginList(String property)` Add the given value to the set of configuration properties.
`void` | `addPropertyChangeListener(PropertyChangeListener listener)` Adds a listener for any property changes.
`StringValue` | `addString(String property)` Add the given value to the set of configuration properties.
`StringListValue` | `addStringList(String property)` Add the given value to the set of configuration properties.
`
`<T extends Value> T`
` | `addValue(T val)` Add the given value to the set of configuration properties.
`Object` | `clone()` Uses `toProperties(boolean)` and `fromProperties(java.util.Map)` to clone configuration.
`void` | `close()` Closes all closeable values and plugins.
`boolean` | `equals(Object other)` Performs an equality check based on equality of values.
`(package private) String` | `fixPrefix(String key)` Adds a prefix `"openjpa."` to the given key, if necessary.
`void` | `fromProperties(Map map)` Set this Configuration via the given map.
`BeanInfo[]` | `getAdditionalBeanInfo()`
`BeanDescriptor` | `getBeanDescriptor()`
`Log` | `getConfigurationLog()` Returns the logging channel `openjpa.Runtime` by default.
`int` | `getDefaultEventIndex()`
`int` | `getDefaultPropertyIndex()`
`EventSetDescriptor[]` | `getEventSetDescriptors()`
`Image` | `getIcon(int kind)`
`String` | `getId()` An environment-specific identifier for this configuration.
`String` | `getLog()` Log plugin setting.
`Log` | `getLog(String category)` Return the log for the given category.
`LogFactory` | `getLogFactory()` The log factory.
`MethodDescriptor[]` | `getMethodDescriptors()`
`String` | `getProductName()` Return the product name.
`String` | `getPropertiesResource()` Return the resource that was set via auto-configuration methods `setProperties(java.lang.String)` or `setPropertiesFile(java.io.File)`, or null if none.
`PropertyDescriptor[]` | `getPropertyDescriptors()`
`Set<String>` | `getPropertyKeys()` Gets all known property keys.
`List<String>` | `getPropertyKeys(String propertyName)` Get the set of all known property keys, including any equivalent keys, appropriately prefixed.
`Value` | `getValue(String property)` Gets the registered Value for the given propertyName.
`Value[]` | `getValues()` Return the set of all `Value`s.
`int` | `hashCode()` Computes hash code based on the hashCodes of the values.
`(package private) boolean` | `hasKnownPrefix(String key)`
`void` | `instantiateAll()` Call the instantiating get methods for all values.
`boolean` | `isDeferResourceLoading()`
`protected boolean` | `isInvalidProperty(String propName)` Returns true if the specified property name should raise a warning if it is not found in the list of known properties.
`boolean` | `isReadOnly()` Return true if this configuration is immutable.
`boolean` | `loadGlobals()` Automatically load global values from the system's `ProductDerivation`s, and from System properties.
`protected void` | `preClose()` Invoked by final method `close()` after invoking the `ProductDerivation.beforeConfigurationClose(org.apache.openjpa.lib.conf.Configuration)` callbacks but before performing internal close operations.
`void` | `readExternal(ObjectInput in)` Implementation of the `Externalizable` interface to read from the properties written by `writeExternal(java.io.ObjectOutput)`.
`void` | `removePropertyChangeListener(PropertyChangeListener listener)` Removes a listener for any property changes.
`boolean` | `removeValue(Value val)` Remove the given value from the set of configuration properties.
`void` | `setDeferResourceLoading(boolean deferResourceLoading)`
`void` | `setId(String id)` An environment-specific identifier for this configuration.
`void` | `setLog(String log)` Log plugin setting.
`void` | `setLogFactory(LogFactory logFactory)` The log factory.
`void` | `setProductName(String name)` Set the product name.
`void` | `setProperties(String resourceName)` This method loads the named resource as a properties file.
`void` | `setPropertiesFile(File file)` This method loads the named file as a properties file.
`void` | `setReadOnly(int newState)` Lock down the configuration's state.
`Map` | `toProperties(boolean storeDefaults)` An internal method to retrieve properties, to support 2 public methods, getAllProperties() and toProperties(boolean).
`static String` | `toXMLName(String propName)` Convert `propName` to a lowercase-with-hyphens-style string.
`void` | `valueChanged(Value val)` Callback used by `Value` objects to notify listener of change.
`void` | `writeExternal(ObjectOutput out)` Implementation of the `Externalizable` interface to write the properties returned by `toProperties(boolean)`.

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### logFactoryPlugin

    public ObjectValue logFactoryPlugin

### id

    public StringValue id

Constructor Detail

### ConfigurationImpl

    public ConfigurationImpl()

  Default constructor. Attempts to load default properties through system's configured `ProductDerivation`s.

### ConfigurationImpl

    public ConfigurationImpl(boolean loadGlobals)

  Constructor.

  Parameters:
    `loadGlobals` - whether to attempt to load the global properties

Method Detail

### loadGlobals

    public boolean loadGlobals()

  Automatically load global values from the system's `ProductDerivation`s, and from System properties.

### getProductName

    public String getProductName()

  Description copied from interface: `Configuration`
  Return the product name. Defaults to `openjpa`.

  Specified by:
    `getProductName` in interface `Configuration`

### setProductName

    public void setProductName(String name)

  Description copied from interface: `Configuration`
  Set the product name.

  Specified by:
    `setProductName` in interface `Configuration`

### getLogFactory

    public LogFactory getLogFactory()

  Description copied from interface: `Configuration`
  The log factory. If no log factory has been set explicitly, this method will create one.

  Specified by:
    `getLogFactory` in interface `Configuration`

### setLogFactory

    public void setLogFactory(LogFactory logFactory)

  Description copied from interface: `Configuration`
  The log factory.

  Specified by:
    `setLogFactory` in interface `Configuration`

### getLog

    public String getLog()

  Description copied from interface: `Configuration`
  Log plugin setting.

  Specified by:
    `getLog` in interface `Configuration`

### setLog

    public void setLog(String log)

  Description copied from interface: `Configuration`
  Log plugin setting.

  Specified by:
    `setLog` in interface `Configuration`

### getLog

    public Log getLog(String category)

  Description copied from interface: `Configuration`
  Return the log for the given category.

  Specified by:
    `getLog` in interface `Configuration`
  See Also:
    `Configuration.getLogFactory()`

### getId

    public String getId()

  Description copied from interface: `Configuration`
  An environment-specific identifier for this configuration. This might correspond to a JPA persistence-unit name, or to some other more-unique value available in the current environment.

  Specified by:
    `getId` in interface `Configuration`

### setId

    public void setId(String id)

  Description copied from interface: `Configuration`
  An environment-specific identifier for this configuration. This might correspond to a JPA persistence-unit name, or to some other more-unique value available in the current environment.

  Specified by:
    `setId` in interface `Configuration`

### getConfigurationLog

    public Log getConfigurationLog()

  Returns the logging channel `openjpa.Runtime` by default.

  Specified by:
    `getConfigurationLog` in interface `Configuration`

### getValues

    public Value[] getValues()

  Description copied from interface: `Configuration`
  Return the set of all `Value`s.

  Specified by:
    `getValues` in interface `Configuration`

### getValue

    public Value getValue(String property)

  Gets the registered Value for the given propertyName.

  Specified by:
    `getValue` in interface `Configuration`
  Parameters:
    `propertyName` - can be either fully-qualified name or the simple name with which the value has been registered. A value may have multiple equivalent names and this method searches with all equivalent names.

### setReadOnly

    public void setReadOnly(int newState)

  Description copied from interface: `Configuration`
  Lock down the configuration's state. Attempting to set state on a read-only configuration results in an exception.

  Specified by:
    `setReadOnly` in interface `Configuration`

### isDeferResourceLoading

    public boolean isDeferResourceLoading()

### setDeferResourceLoading

    public void setDeferResourceLoading(boolean deferResourceLoading)

### instantiateAll

    public void instantiateAll()

  Description copied from interface: `Configuration`
  Call the instantiating get methods for all values. Up-front instantiation allows one to avoid the synchronization necessary with lazy instantiation.

  Specified by:
    `instantiateAll` in interface `Configuration`

### isReadOnly

    public boolean isReadOnly()

  Description copied from interface: `Configuration`
  Return true if this configuration is immutable.

  Specified by:
    `isReadOnly` in interface `Configuration`

### addPropertyChangeListener

    public void addPropertyChangeListener(PropertyChangeListener listener)

  Description copied from interface: `Configuration`
  Adds a listener for any property changes. The property events fired will not include the old value.

  Specified by:
    `addPropertyChangeListener` in interface `Configuration`
  Parameters:
    `listener` - the listener to receive notification of property changes

### removePropertyChangeListener

    public void removePropertyChangeListener(PropertyChangeListener listener)

  Description copied from interface: `Configuration`
  Removes a listener for any property changes.

  Specified by:
    `removePropertyChangeListener` in interface `Configuration`
  Parameters:
    `listener` - the listener to remove

### valueChanged

    public void valueChanged(Value val)

  Description copied from interface: `ValueListener`
  Callback used by `Value` objects to notify listener of change.

  Specified by:
    `valueChanged` in interface `ValueListener`

### close

    public final void close()

  Closes all closeable values and plugins.

  Specified by:
    `close` in interface `Configuration`
  Specified by:
    `close` in interface `Closeable`

### preClose

    protected void preClose()

  Invoked by final method `close()` after invoking the `ProductDerivation.beforeConfigurationClose(org.apache.openjpa.lib.conf.Configuration)` callbacks but before performing internal close operations.

  Since:
    0.9.7

### getAdditionalBeanInfo

    public BeanInfo[] getAdditionalBeanInfo()

  Specified by:
    `getAdditionalBeanInfo` in interface `BeanInfo`

### getBeanDescriptor

    public BeanDescriptor getBeanDescriptor()

  Specified by:
    `getBeanDescriptor` in interface `BeanInfo`

### getDefaultEventIndex

    public int getDefaultEventIndex()

  Specified by:
    `getDefaultEventIndex` in interface `BeanInfo`

### getDefaultPropertyIndex

    public int getDefaultPropertyIndex()

  Specified by:
    `getDefaultPropertyIndex` in interface `BeanInfo`

### getEventSetDescriptors

    public EventSetDescriptor[] getEventSetDescriptors()

  Specified by:
    `getEventSetDescriptors` in interface `BeanInfo`

### getIcon

    public Image getIcon(int kind)

  Specified by:
    `getIcon` in interface `BeanInfo`

### getMethodDescriptors

    public MethodDescriptor[] getMethodDescriptors()

  Specified by:
    `getMethodDescriptors` in interface `BeanInfo`

### getPropertyDescriptors

    public PropertyDescriptor[] getPropertyDescriptors()

  Specified by:
    `getPropertyDescriptors` in interface `BeanInfo`

### toProperties

    public Map toProperties(boolean storeDefaults)

  An internal method to retrieve properties, to support 2 public methods, getAllProperties() and toProperties(boolean).

  Specified by:
    `toProperties` in interface `Configuration`
  Parameters:
    `storeDefaults` - whether or not to retrieve a property if its value is the default value.
  Returns:

### fromProperties

    public void fromProperties(Map map)

  Description copied from interface: `Configuration`
  Set this Configuration via the given map. Any keys missing from the given map will not be set. Note that changes made to this map will not be automatically reflected in this Configuration object. IMPORTANT: If the map contains instantiated objects(rather than string values), only the string representation of those objects are considered in this configuration's `equals` and `hashCode` methods. If the object's property has no string form(such as an `ObjectValue`), the object is not part of the equality and hashing calculations.

  Specified by:
    `fromProperties` in interface `Configuration`

### getPropertyKeys

    public List<String> getPropertyKeys(String propertyName)

  Description copied from interface: `Configuration`
  Get the set of all known property keys, including any equivalent keys, appropriately prefixed.

  Specified by:
    `getPropertyKeys` in interface `Configuration`
  Parameters:
    `propertyName` - the name of the property for which the keys are to be retrieved.

### getPropertyKeys

    public Set<String> getPropertyKeys()

  Gets all known property keys. The keys are harvested from the property names (including the equivalent names) of the registered values. A key may be prefixed if the corresponding property name was without a prefix.

  Specified by:
    `getPropertyKeys` in interface `Configuration`
  See Also:
    `The Values that are {@linkplain Value#makePrivate() marked private} are filtered out.`

### fixPrefix

    String fixPrefix(String key)

  Adds a prefix `"openjpa."` to the given key, if necessary. A key is considered without prefix if it starts neither of `"openjpa."`, `"java."` and `"javax."`.

### hasKnownPrefix

    boolean hasKnownPrefix(String key)

### isInvalidProperty

    protected boolean isInvalidProperty(String propName)

  Returns true if the specified property name should raise a warning if it is not found in the list of known properties.

### setProperties

    public void setProperties(String resourceName)
                       throws IOException

  This method loads the named resource as a properties file. It is useful for auto-configuration tools so users can specify a `properties` value with the name of a resource.

  Throws:
    `IOException`

### setPropertiesFile

    public void setPropertiesFile(File file)
                           throws IOException

  This method loads the named file as a properties file. It is useful for auto-configuration tools so users can specify a `propertiesFile` value with the name of a file.

  Throws:
    `IOException`

### getPropertiesResource

    public String getPropertiesResource()

  Return the resource that was set via auto-configuration methods `setProperties(java.lang.String)` or `setPropertiesFile(java.io.File)`, or null if none.

### equals

    public boolean equals(Object other)

  Performs an equality check based on equality of values. `Equality` of Values varies if the Value is `dynamic`.

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Computes hash code based on the hashCodes of the values. `HashCode` of a Value varies if the Value is `dynamic`.

  Overrides:
    `hashCode` in class `Object`

### toXMLName

    public static String toXMLName(String propName)

  Convert `propName` to a lowercase-with-hyphens-style string. This algorithm is only designed for mixes of uppercase and lowercase letters and lone digits. A more sophisticated conversion should probably be handled by a proper parser generator or regular expressions.

### readExternal

    public void readExternal(ObjectInput in)
                      throws IOException,
                             ClassNotFoundException

  Implementation of the `Externalizable` interface to read from the properties written by `writeExternal(java.io.ObjectOutput)`.

  Specified by:
    `readExternal` in interface `Externalizable`
  Throws:
    `IOException`
    `ClassNotFoundException`

### writeExternal

    public void writeExternal(ObjectOutput out)
                       throws IOException

  Implementation of the `Externalizable` interface to write the properties returned by `toProperties(boolean)`.

  Specified by:
    `writeExternal` in interface `Externalizable`
  Throws:
    `IOException`

### clone

    public Object clone()

  Uses `toProperties(boolean)` and `fromProperties(java.util.Map)` to clone configuration.

  Specified by:
    `clone` in interface `Configuration`
  Overrides:
    `clone` in class `Object`

### removeValue

    public boolean removeValue(Value val)

  Description copied from interface: `Configuration`
  Remove the given value from the set of configuration properties.

  Specified by:
    `removeValue` in interface `Configuration`

### addValue

    public <T extends Value> T addValue(T val)

  Description copied from interface: `Configuration`
  Add the given value to the set of configuration properties. This method replaces any existing value under the same property.

  Specified by:
    `addValue` in interface `Configuration`

### addString

    public StringValue addString(String property)

  Add the given value to the set of configuration properties.

### addFile

    public FileValue addFile(String property)

  Add the given value to the set of configuration properties.

### addInt

    public IntValue addInt(String property)

  Add the given value to the set of configuration properties.

### addDouble

    public DoubleValue addDouble(String property)

  Add the given value to the set of configuration properties.

### addBoolean

    public BooleanValue addBoolean(String property)

  Add the given value to the set of configuration properties.

### addStringList

    public StringListValue addStringList(String property)

  Add the given value to the set of configuration properties.

### addObject

    public ObjectValue addObject(String property)

  Add the given value to the set of configuration properties.

### addPlugin

    public PluginValue addPlugin(String property,
                                 boolean singleton)

  Add the given value to the set of configuration properties.

### addPluginList

    public PluginListValue addPluginList(String property)

  Add the given value to the set of configuration properties.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.