Class ConfigurationUtils
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidappend(Configuration source, Configuration target) Append all properties from the source configuration to the target configuration.static voidappend(ImmutableConfiguration source, Configuration target) Append all properties from the source configuration to the target configuration.static EventSourceasEventSource(Object obj, boolean mockIfUnsupported) Casts the specified object to anEventSourceif possible.static ConfigurationcloneConfiguration(Configuration config) Clones the given configuration object if this is possible.static ObjectcloneIfPossible(Object obj) Returns a clone of the passed in object if cloning is supported or the object itself if not.static SynchronizerCreates a clone of the specifiedSynchronizer.static HierarchicalConfiguration<?> Converts the passed in configuration to a hierarchical one.static HierarchicalConfiguration<?> convertToHierarchical(Configuration conf, ExpressionEngine engine) Converts the passed inConfigurationobject to a hierarchical one using the specifiedExpressionEngine.static voidcopy(Configuration source, Configuration target) Copy all properties from the source configuration to the target configuration.static voidcopy(ImmutableConfiguration source, Configuration target) Copy all properties from the source configuration to the target configuration.static voiddump(Configuration configuration, PrintStream out) Dump the configuration key/value mappings to some ouput stream.static voiddump(Configuration configuration, PrintWriter out) Dump the configuration key/value mappings to some writer.static voiddump(ImmutableConfiguration configuration, PrintStream out) Dump the configuration key/value mappings to some ouput stream.static voiddump(ImmutableConfiguration configuration, PrintWriter out) Dump the configuration key/value mappings to some writer.static voidEnables runtime exceptions for the specified configuration object.static Class<?> Loads the class with the given name.static Class<?> loadClassNoEx(String clsName) Loads the class with the specified name re-throwingClassNotFoundExceptionexceptions as runtime exceptions.static StringtoString(Configuration configuration) Gets a string representation of the key/value mappings of a configuration.static StringtoString(ImmutableConfiguration configuration) Gets a string representation of the key/value mappings of a configuration.static ImmutableConfigurationCreates anImmutableConfigurationfrom the givenConfigurationobject.Creates anImmutableHierarchicalConfigurationfrom the givenHierarchicalConfigurationobject.
-
Method Details
-
append
Append all properties from the source configuration to the target configuration. Properties in the source configuration are appended to the properties with the same key in the target configuration.
Note: This method is not able to handle some specifics of configurations derived from
AbstractConfiguration(for example list delimiters). For a full support of all of these features thecopy()method ofAbstractConfigurationshould be used. In a future release this method might become deprecated.- Parameters:
source- the source configurationtarget- the target configuration- Since:
- 1.1
-
append
Append all properties from the source configuration to the target configuration. Properties in the source configuration are appended to the properties with the same key in the target configuration.
Note: This method is not able to handle some specifics of configurations derived from
AbstractConfiguration(for example list delimiters). For a full support of all of these features thecopy()method ofAbstractConfigurationshould be used. In a future release this method might become deprecated.- Parameters:
source- the source configurationtarget- the target configuration- Since:
- 2.2
-
asEventSource
Casts the specified object to anEventSourceif possible. The boolean argument determines the method's behavior if the object does not implement theEventSourceevent: if set to false, aConfigurationRuntimeExceptionis thrown; if set to true, a dummyEventSourceis returned; on this object all methods can be called, but they do not have any effect.- Parameters:
obj- the object to be cast asEventSourcemockIfUnsupported- a flag whether a mock object should be returned if necessary- Returns:
- an
EventSource - Throws:
ConfigurationRuntimeException- if the object cannot be cast toEventSourceand the mock flag is false- Since:
- 2.0
-
cloneConfiguration
public static Configuration cloneConfiguration(Configuration config) throws ConfigurationRuntimeException Clones the given configuration object if this is possible. If the passed in configuration object implements theCloneableinterface, itsclone()method will be invoked. Otherwise an exception will be thrown.- Parameters:
config- the configuration object to be cloned (can be null)- Returns:
- the cloned configuration (null if the argument was null, too)
- Throws:
ConfigurationRuntimeException- if cloning is not supported for this object- Since:
- 1.3
-
cloneIfPossible
Returns a clone of the passed in object if cloning is supported or the object itself if not. This method checks whether the passed in object implements theCloneableinterface. If this is the case, theclone()method is invoked. Otherwise, the object is directly returned. Errors that might occur during reflection calls are caught and also cause this method to return the original object.- Parameters:
obj- the object to be cloned- Returns:
- the result of the cloning attempt
- Since:
- 2.0
-
cloneSynchronizer
Creates a clone of the specifiedSynchronizer. This method can be called byclone()implementations in configuration classes that also need to copy theSynchronizerobject. This method can handle some well-knownSynchronizerimplementations directly. For other classes, it uses the following algorithm:- If the class of the
Synchronizerhas a standard constructor, a new instance is created using reflection. - If this is not possible, it is tried whether the object can be cloned.
ConfigurationRuntimeExceptionis thrown.- Parameters:
sync- theSynchronizerobject to be cloned- Returns:
- the clone of this
Synchronizer - Throws:
ConfigurationRuntimeException- if no clone can be createdIllegalArgumentException- if null is passed in
- If the class of the
-
convertToHierarchical
Converts the passed in configuration to a hierarchical one. If the configuration is already hierarchical, it is directly returned. Otherwise all properties are copied into a new hierarchical configuration.- Parameters:
conf- the configuration to convert- Returns:
- the new hierarchical configuration (the result is null if and only if the passed in configuration is null)
- Since:
- 1.3
-
convertToHierarchical
public static HierarchicalConfiguration<?> convertToHierarchical(Configuration conf, ExpressionEngine engine) Converts the passed inConfigurationobject to a hierarchical one using the specifiedExpressionEngine. This conversion works by adding the keys found in the configuration to a newly created hierarchical configuration. When adding new keys to a hierarchical configuration the keys are interpreted by itsExpressionEngine. If they contain special characters (for example brackets) that are treated in a special way by the default expression engine, it may be necessary using a specific engine that can deal with such characters. Otherwise null can be passed in for theExpressionEngine; then the default expression engine is used. If the passed in configuration is already hierarchical, it is directly returned. (However, theExpressionEngineis set if it is not null.) Otherwise all properties are copied into a new hierarchical configuration.- Parameters:
conf- the configuration to convertengine- theExpressionEnginefor the hierarchical configuration or null for the default- Returns:
- the new hierarchical configuration (the result is null if and only if the passed in configuration is null)
- Since:
- 1.6
-
copy
Copy all properties from the source configuration to the target configuration. Properties in the target configuration are replaced with the properties with the same key in the source configuration.
Note: This method is not able to handle some specifics of configurations derived from
AbstractConfiguration(for example list delimiters). For a full support of all of these features thecopy()method ofAbstractConfigurationshould be used. In a future release this method might become deprecated.- Parameters:
source- the source configurationtarget- the target configuration- Since:
- 1.1
-
copy
Copy all properties from the source configuration to the target configuration. Properties in the target configuration are replaced with the properties with the same key in the source configuration.
Note: This method is not able to handle some specifics of configurations derived from
AbstractConfiguration(for example list delimiters). For a full support of all of these features thecopy()method ofAbstractConfigurationshould be used. In a future release this method might become deprecated.- Parameters:
source- the source configurationtarget- the target configuration- Since:
- 2.2
-
dump
Dump the configuration key/value mappings to some ouput stream. This version of the method exists only for backwards compatibility reason.- Parameters:
configuration- the configurationout- the output stream to dump the configuration to
-
dump
Dump the configuration key/value mappings to some writer. This version of the method exists only for backwards compatibility reason.- Parameters:
configuration- the configurationout- the writer to dump the configuration to
-
dump
Dump the configuration key/value mappings to some ouput stream.- Parameters:
configuration- the configurationout- the output stream to dump the configuration to- Since:
- 2.2
-
dump
Dump the configuration key/value mappings to some writer.- Parameters:
configuration- the configurationout- the writer to dump the configuration to- Since:
- 2.2
-
enableRuntimeExceptions
Enables runtime exceptions for the specified configuration object. This method can be used for configuration implementations that may face errors on normal property access, for exampleDatabaseConfigurationorJNDIConfiguration. Per default such errors are simply logged and then ignored. This implementation will register a specialEventListenerthat throws a runtime exception (namely aConfigurationRuntimeException) on each received error event.- Parameters:
src- the configuration, for which runtime exceptions are to be enabled; this configuration must implementEventSource
-
loadClass
Loads the class with the given name. This method is used whenever a class has to be loaded dynamically. It first tries the current thread's context class loader. If this fails, the class loader of this class is tried.- Parameters:
clsName- the name of the class to be loaded- Returns:
- the loaded class
- Throws:
ClassNotFoundException- if the class cannot be resolved- Since:
- 2.0
-
loadClassNoEx
Loads the class with the specified name re-throwingClassNotFoundExceptionexceptions as runtime exceptions. This method works likeloadClass(String). However, checked exceptions are caught and re-thrown asConfigurationRuntimeException.- Parameters:
clsName- the name of the class to be loaded- Returns:
- the loaded class
- Throws:
ConfigurationRuntimeException- if the class cannot be resolved- Since:
- 2.0
-
toString
Gets a string representation of the key/value mappings of a configuration. This version of the method exists only for backwards compatibility reason.- Parameters:
configuration- the configuration- Returns:
- a string representation of the configuration
-
toString
Gets a string representation of the key/value mappings of a configuration.- Parameters:
configuration- the configuration- Returns:
- a string representation of the configuration
- Since:
- 2.2
-
unmodifiableConfiguration
Creates anImmutableConfigurationfrom the givenConfigurationobject. This method creates a proxy object wrapping the original configuration and making it available under theImmutableConfigurationinterface. Through this interface the configuration cannot be manipulated. It is also not possible to cast the returned object back to aConfigurationinstance to circumvent this protection.- Parameters:
c- theConfigurationto be wrapped (must not be null)- Returns:
- an
ImmutableConfigurationview on the specifiedConfigurationobject - Throws:
NullPointerException- if the passed inConfigurationis null- Since:
- 2.0
-
unmodifiableConfiguration
public static ImmutableHierarchicalConfiguration unmodifiableConfiguration(HierarchicalConfiguration<?> c) Creates anImmutableHierarchicalConfigurationfrom the givenHierarchicalConfigurationobject. This method works exactly like the method with the same name, but it operates on hierarchical configurations.- Parameters:
c- theHierarchicalConfigurationto be wrapped (must not be null)- Returns:
- an
ImmutableHierarchicalConfigurationview on the specifiedHierarchicalConfigurationobject - Throws:
NullPointerException- if the passed inHierarchicalConfigurationis null- Since:
- 2.0
-