public class ConfigurationImpl extends Object implements Configuration, Externalizable, ValueListener
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:
Modifier and Type | Field and Description |
---|---|
StringValue |
id |
ObjectValue |
logFactoryPlugin |
ATTRIBUTE_ALLOWED_VALUES, ATTRIBUTE_CATEGORY, ATTRIBUTE_INTERFACE, ATTRIBUTE_ORDER, ATTRIBUTE_TYPE, ATTRIBUTE_XML, INIT_STATE_FREEZING, INIT_STATE_FROZEN, INIT_STATE_LIQUID
ICON_COLOR_16x16, ICON_COLOR_32x32, ICON_MONO_16x16, ICON_MONO_32x32
Constructor and Description |
---|
ConfigurationImpl()
Default constructor.
|
ConfigurationImpl(boolean loadGlobals)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
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> |
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.
|
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.
|
ClassLoader |
getUserClassLoader()
Gets a class loader that can be additionally used to load custom plugin values.
|
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.
|
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.
|
void |
setUserClassLoader(ClassLoader cl)
Sets an additional classloader to load custom plugin values.
|
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) . |
public ObjectValue logFactoryPlugin
public StringValue id
public ConfigurationImpl()
ProductDerivation
s.public ConfigurationImpl(boolean loadGlobals)
loadGlobals
- whether to attempt to load the global propertiespublic boolean loadGlobals()
ProductDerivation
s, and from System properties.public String getProductName()
Configuration
openjpa
.getProductName
in interface Configuration
public void setProductName(String name)
Configuration
setProductName
in interface Configuration
public LogFactory getLogFactory()
Configuration
getLogFactory
in interface Configuration
public void setLogFactory(LogFactory logFactory)
Configuration
setLogFactory
in interface Configuration
public String getLog()
Configuration
getLog
in interface Configuration
public void setLog(String log)
Configuration
setLog
in interface Configuration
public Log getLog(String category)
Configuration
getLog
in interface Configuration
Configuration.getLogFactory()
public String getId()
Configuration
getId
in interface Configuration
public void setId(String id)
Configuration
setId
in interface Configuration
public Log getConfigurationLog()
openjpa.Runtime
by default.getConfigurationLog
in interface Configuration
public Value[] getValues()
Configuration
Value
s.getValues
in interface Configuration
public Value getValue(String property)
getValue
in interface Configuration
property
- 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.public void setReadOnly(int newState)
Configuration
setReadOnly
in interface Configuration
public boolean isDeferResourceLoading()
public void setDeferResourceLoading(boolean deferResourceLoading)
public void instantiateAll()
Configuration
instantiateAll
in interface Configuration
public boolean isReadOnly()
Configuration
isReadOnly
in interface Configuration
public void addPropertyChangeListener(PropertyChangeListener listener)
Configuration
addPropertyChangeListener
in interface Configuration
listener
- the listener to receive notification of property changespublic void removePropertyChangeListener(PropertyChangeListener listener)
Configuration
removePropertyChangeListener
in interface Configuration
listener
- the listener to removepublic void valueChanged(Value val)
ValueListener
Value
objects to notify listener of change.valueChanged
in interface ValueListener
public final void close()
close
in interface Configuration
close
in interface Closeable
protected void preClose()
close()
after invoking the
ProductDerivation.beforeConfigurationClose(org.apache.openjpa.lib.conf.Configuration)
callbacks
but before performing internal close operations.public BeanInfo[] getAdditionalBeanInfo()
getAdditionalBeanInfo
in interface BeanInfo
public BeanDescriptor getBeanDescriptor()
getBeanDescriptor
in interface BeanInfo
public int getDefaultEventIndex()
getDefaultEventIndex
in interface BeanInfo
public int getDefaultPropertyIndex()
getDefaultPropertyIndex
in interface BeanInfo
public EventSetDescriptor[] getEventSetDescriptors()
getEventSetDescriptors
in interface BeanInfo
public MethodDescriptor[] getMethodDescriptors()
getMethodDescriptors
in interface BeanInfo
public PropertyDescriptor[] getPropertyDescriptors()
getPropertyDescriptors
in interface BeanInfo
public Map toProperties(boolean storeDefaults)
toProperties
in interface Configuration
storeDefaults
- whether or not to retrieve a property if its value is the
default value.public void fromProperties(Map map)
Configuration
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.fromProperties
in interface Configuration
public List<String> getPropertyKeys(String propertyName)
Configuration
getPropertyKeys
in interface Configuration
propertyName
- the name of the property for which the keys are
to be retrieved.public Set<String> getPropertyKeys()
getPropertyKeys
in interface Configuration
The Values that are {@linkplain Value#makePrivate() marked private} are filtered out.
protected boolean isInvalidProperty(String propName)
public void setProperties(String resourceName) throws IOException
properties
value with the name of a resource.IOException
public void setPropertiesFile(File file) throws IOException
propertiesFile
value with the name of a file.IOException
public String getPropertiesResource()
setProperties(java.lang.String)
or setPropertiesFile(java.io.File)
, or null if none.public boolean equals(Object other)
public int hashCode()
public static String toXMLName(String propName)
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.public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
Externalizable
interface to read from
the properties written by writeExternal(java.io.ObjectOutput)
.readExternal
in interface Externalizable
IOException
ClassNotFoundException
public void writeExternal(ObjectOutput out) throws IOException
Externalizable
interface to write
the properties returned by toProperties(boolean)
.writeExternal
in interface Externalizable
IOException
public Object clone()
toProperties(boolean)
and fromProperties(java.util.Map)
to clone
configuration.clone
in interface Configuration
clone
in class Object
public boolean removeValue(Value val)
Configuration
removeValue
in interface Configuration
public <T extends Value> T addValue(T val)
Configuration
addValue
in interface Configuration
public StringValue addString(String property)
public FileValue addFile(String property)
public IntValue addInt(String property)
public DoubleValue addDouble(String property)
public BooleanValue addBoolean(String property)
public StringListValue addStringList(String property)
public ObjectValue addObject(String property)
public PluginValue addPlugin(String property, boolean singleton)
public PluginListValue addPluginList(String property)
public ClassLoader getUserClassLoader()
Configuration
getUserClassLoader
in interface Configuration
Configurations.newInstance(String, ClassLoader)
public void setUserClassLoader(ClassLoader cl)
Configuration
setUserClassLoader
in interface Configuration
cl
- a class loader to load custom plugin valuesPersistenceProviderImpl.createEntityManagerFactory(String, Map)
Copyright © 2006–2020 Apache Software Foundation. All rights reserved.