XMLConfig
Class FQN: it.greenvulcano.configuration.XMLConfig
Following the XMLConfig public static methods
/**
* Set the entity resolver used to resolve entities into the configuration
* files.
*
* @param entityResolver
* EntityResolver to use in order to resolve entity. If
* <code>null</code> is specified then the default XML mechanism is
* used.
*/
public static synchronized void setEntityResolver(EntityResolver entityResolver)
/**
* Use the default entity resolver to resolve entities into the
* configuration files. The default entity resolver does not resolve
* anything.
*
* @see #setEntityResolver(org.xml.sax.EntityResolver)
*/
public static synchronized void setDefaultEntityResolver()
/**
* Return the entity resolver for the configuration.
*
* @return the entity resolver for the configuration
*/
public static synchronized EntityResolver getEntityResolver()
/**
* Load a configuration file and, if necessary, notifies registered
* listeners. This method can be used in order to preload the configuration
* file.
*
* @param file
* the file to read
* @return the complete URL used to load the file.
* @exception XMLConfigException
* if error occurs
*/
public static synchronized URL load(String file) throws XMLConfigException
/**
* Load a configuration file and, if necessary, notifies registered
* listeners. This method can be used in order to preload the configuration
* file.
*
* @param file
* the file to read
* @param classLoader
* the class loader to use to retrieve the file to read
* @param force
* force the reload of file if already present in cache
* @param canBeReloaded
* flag that indicates if this file can be changed and can be
* reloaded
* @return the complete URL used to load the file.
* @exception XMLConfigException
* if error occurs
*/
public static synchronized URL load(String file, ClassLoader classLoader, boolean force, boolean canBeReloaded)
throws XMLConfigException
/**
* Discard all cached configuration files, notifies all registered
* listeners, reload discarded files and notifies all registered listeners.
*
* @exception XMLConfigException
* if error occurs
*/
public static synchronized void reloadAll() throws XMLConfigException
/**
* If loaded discard the given file and notifies all registered listeners,
* then reload the given file (only if it was previously loaded) and
* notifies all registered listeners.
*
* @param file
* the file to reload
* @exception XMLConfigException
* if error occurs
*/
public static synchronized void reload(String file) throws XMLConfigException
/**
* Discard all cached files and notifies all listeners.
*/
public static synchronized void discardAll()
/**
* Discard the given file. If the file was previously loaded then the
* listeners will be notified, otherwise no action will be taken.
*
* @param file
* the file to discard
*/
public static synchronized void discard(String file)
/**
* Returns an array of String s containing the names of the files
* currently loaded into XMLConfig private cache.
*
* @return an array of String s containing the names of the files
* currently loaded into XMLConfig private cache.
*/
public static synchronized String[] getLoadedFiles()
/**
* Return the value for a node.
*
* @param node
* input Node.
*
* @return the node value. The value for an Element is the concatenation of
* children values. For other nodes the value is
* <code>node.getNodeValue()</code>.
*/
public static String getNodeValue(Node node)
/**
* Return the value of a NodeList as concatenation of values of all nodes
* contained in the list.
*
* @param node
* the node list
* @return the nodes value
*/
public static String getNodeValue(NodeList node)
/**
* Reads a value. If the XPath selects many nodes the values are appended
* together.
*
* @param file
* file to read
* @param xpath
* parameter to read specified as absolute path to the root of the
* file.
*
* @return the searched value or <code>null</code> if the XPath select no
* node.
*
* @throws XMLConfigException
* if some error occurs.
*
*/
public static String get(String file, String xpath) throws XMLConfigException
/**
* Reads a value. If the XPath selects many nodes the values are appended
* together.
*
* @param node
* base for XPath
* @param xpath
* parameter to read specified as relative path to the node.
*
* @return the searched value or <code>null</code> if the XPath select no
* node.
*
* @throws XMLConfigException
* if some error occurs.
*
*/
public static String get(Node node, String xpath) throws XMLConfigException
/**
* Reads a value. If the XPath selects many nodes the values are appended
* together.
*
* @param file
* file to read
* @param xpath
* parameter to read specified as absolute path to the root of the
* file.
* @param defaultValue
* default value
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static String get(String file, String xpath, String defaultValue)
/**
* Reads a value. If the XPath selects many nodes the values are appended
* together.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
* @param defaultValue
* default value
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static String get(Node node, String xpath, String defaultValue)
/**
* Reads a single encrypted value.
*
* @param file
* file to read
* @param xpath
* parameter to read specified as absolute path to the root of the
* file.
* @param keyId
* the key id to be used for decryption, if null or empty is used
* DEFAULT_KEY_ID
* @param canBeClear
* if true the data can be unencrypted
*
* @return the searched value or <code>null</code> if the XPath select no
* node.
* @throws XMLConfigException
* if some error occurs.
*
*/
public static String getDecrypted(String file, String xpath, String keyId, boolean canBeClear)
throws XMLConfigException
/**
* Reads a single encrypted value.
*
* @param node
* base for XPath
* @param xpath
* parameter to read specified as relative path to the node.
* @param keyId
* the key id to be used for decryption, if null or empty is used
* DEFAULT_KEY_ID
* @param canBeClear
* if true the data can be unencrypted
*
* @return the searched value or <code>null</code> if the XPath select no
* node.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static String getDecrypted(Node node, String xpath, String keyId, boolean canBeClear)
throws XMLConfigException
/**
* Reads a single encrypted value.
*
* @param file
* file to read
* @param xpath
* parameter to read specified as absolute path to the root of the
* file.
* @param keyId
* the key id to be used for decryption, if null or empty is used
* DEFAULT_KEY_ID
* @param canBeClear
* if true the data can be unencrypted
* @param defaultValue
* default value
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static String getDecrypted(String file, String xpath, String keyId, boolean canBeClear, String defaultValue)
/**
* Reads a single encrypted value.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
* @param keyId
* the key id to be used for decryption, if null or empty is used
* DEFAULT_KEY_ID
* @param canBeClear
* if true the data can be unencrypted
* @param defaultValue
* default value
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static String getDecrypted(Node node, String xpath, String keyId, boolean canBeClear, String defaultValue)
/**
* Reads a single encrypted value.
*
* @param file
* file to read
* @param xpath
* parameter to read specified as absolute path to the root of the
* file.
*
* Sets the key id as DEFAULT_KEY_ID and canBeClear at true
*
* @return the searched value or <code>null</code> if the XPath select no
* node.
* @throws XMLConfigException
* if some error occurs.
*
*/
public static String getDecrypted(String file, String xpath) throws XMLConfigException
/**
* Reads a single encrypted value.
*
* @param node
* base for XPath
* @param xpath
* parameter to read specified as relative path to the node.
*
* Sets the key id as DEFAULT_KEY_ID and canBeClear at true
*
* @return the searched value or <code>null</code> if the XPath select no
* node.
*
* @throws XMLConfigException
* if some error occurs.
*
*/
public static String getDecrypted(Node node, String xpath) throws XMLConfigException
/**
* Reads a single encrypted value.
*
* @param file
* file to read
* @param xpath
* parameter to read specified as absolute path to the root of the
* file.
* @param defaultValue
* default value
*
* Sets the key id as DEFAULT_KEY_ID and canBeClear at true
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static String getDecrypted(String file, String xpath, String defaultValue)
/**
* Reads a single encrypted value.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
* @param defaultValue
* default value
*
* Sets the key id as DEFAULT_KEY_ID and canBeClear at true
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static String getDecrypted(Node node, String xpath, String defaultValue)
/**
* Decrypt a string encrypted by default XMLConfig key.
*
* @param value
* the value to decrypt
*
* @return the decrypted value or value if not encrypted
* @throws XMLConfigException
* if some error occurs.
*
*/
public static String getDecrypted(String value) throws XMLConfigException
/**
* Encrypt a string using default XMLConfig key.
*
* @param value
* the value to encrypt
*
* @return the encrypted value
* @throws XMLConfigException
* if some error occurs.
*
*/
public static String getEncrypted(String value) throws XMLConfigException
/**
* Return an integer parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to an integer.
*
* @param file
* @param xpath
* @return the searched integer value from the configuration.
*
* @throws XMLConfigException
* if any error occurs
*/
public static int getInteger(String file, String xpath) throws XMLConfigException
/**
* Return an integer parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to an integer.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
*
* @return the searched integer value from the configuration.
*
* @throws XMLConfigException
* if an error occurs
*/
public static int getInteger(Node node, String xpath) throws XMLConfigException
/**
* Return an integer parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to an integer.
*
* @param file
* the configuration file
* @param xpath
* the XPath to search
* @param defaultValue
* value to return if XPath not match
* @return the parameter value. If the parameter does not exists or an error
* occurs then the specified default value will be returned.
*
*/
public static int getInteger(final String file, final String xpath, final int defaultValue)
/**
* Return an integer parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to an integer.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
* @param defaultValue
* default value
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static int getInteger(Node node, String xpath, int defaultValue)
/**
* Return a long parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a long.
*
* @param file
* @param xpath
* @return the searched long value from the configuration.
*
* @throws XMLConfigException
* if an error occurs
*/
public static long getLong(String file, String xpath) throws XMLConfigException
/**
* Return a long parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a long.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
*
* @return the searched long value from the configuration.
*
* @throws XMLConfigException
* if an error occurs
*/
public static long getLong(Node node, String xpath) throws XMLConfigException
/**
* Return a long parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a long.
*
* @param file
* @param xpath
* @param defaultValue
*
* @return the parameter value. If the parameter does not exists or an error
* occurs then the specified default value will be returned.
*
*/
public static long getLong(String file, String xpath, long defaultValue)
/**
* Return a long parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a long.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
* @param defaultValue
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static long getLong(Node node, String xpath, long defaultValue)
/**
* Return a double parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a double.
*
* @param file
* @param xpath
* @return the searched double value from the configuration.
*
* @throws XMLConfigException
* if an error occurs
*/
public static double getDouble(String file, String xpath) throws XMLConfigException
/**
* Return a double parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a double.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
*
* @return the searched double value from the configuration.
*
* @throws XMLConfigException
* if an error occurs
*/
public static double getDouble(Node node, String xpath) throws XMLConfigException
/**
* Return a double parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a double.
*
* @param file
* @param xpath
* @param defaultValue
*
* @return the parameter value. If the parameter does not exists or an error
* occurs then the specified default value will be returned.
*
*/
public static double getDouble(String file, String xpath, double defaultValue)
/**
* Return a double parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a double.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
* @param defaultValue
* default value
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static double getDouble(Node node, String xpath, double defaultValue)
/**
* Return a float parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a float.
*
* @param file
* @param xpath
* @return the searched float value from the configuration.
*
* @throws XMLConfigException
* if an error occurs
*/
public static float getFloat(String file, String xpath) throws XMLConfigException
/**
* Return a float parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a float.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
*
* @return the searched float value from the configuration.
*
* @throws XMLConfigException
* if an error occurs
*/
public static float getFloat(Node node, String xpath) throws XMLConfigException
/**
* Return a float parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a float.
*
* @param file
* @param xpath
* @param defaultValue
*
* @return the parameter value. If the parameter does not exists or an error
* occurs then the specified default value will be returned.
*
*/
public static float getFloat(String file, String xpath, float defaultValue)
/**
* Return a float parameter. <br>
* This method uses <code>get()</code> to obtain the value, then convert it
* to a float.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
* @param defaultValue
* default value
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*
*/
public static float getFloat(Node node, String xpath, float defaultValue)
/**
* Returns a boolean parameter.
* <p>
* The value returned is true if and only if the parameter red is
* equal, ignoring case, to "true" or "yes" or "on". Otherwise, it returns
* <b>false</b>.
* <p>
*
* @param file
* @param xpath
* @return the boolean value of the parameter.
* @throws XMLConfigException
*/
public static boolean getBoolean(String file, String xpath) throws XMLConfigException
/**
* Returns a boolean parameter.
* <p>
* The value returned is <b>true</b> if and only if the parameter red is
* equal, ignoring case, to "true" or "yes" or "on". Otherwise, it returns
* <b>false</b>.
* <p>
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
*
* @return the searched boolean value from the configuration.
*
* @throws XMLConfigException
*/
public static boolean getBoolean(Node node, String xpath) throws XMLConfigException
/**
* Returns a boolean parameter.
* <p>
* The value returned is <b>true</b> if and only if the parameter red is
* equal, ignoring case, to "true" or "yes" or "on". Otherwise, it returns
* <b>false</b>.
* <p>
*
* @param file
* @param xpath
* @param defaultValue
* @return the boolean value of the parameter. If the parameter does not
* exists or an error occurs then the specified default value will
* be returned.
*/
public static boolean getBoolean(String file, String xpath, boolean defaultValue)
/**
* Returns a boolean parameter.
* <p>
* The value returned is <b>true</b> if and only if the parameter red is
* equal, ignoring case, to "true" or "yes" or "on". Otherwise, it returns
* <b>false</b>.
* <p>
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to node.
* @param defaultValue
* default value
*
* @return the searched value or the specified default value if the XPath
* select no node or an error occurs.
*/
public static boolean getBoolean(Node node, String xpath, boolean defaultValue)
/**
* Checks if the given parameter exists. <br>
* It checks that <code>get()</code> method does not return
* <code>null</code>.
*
* @param file
* @param xpath
* @return if the given parameter exists.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static boolean exists(String file, String xpath) throws XMLConfigException
/**
* Checks if the given parameter exists. <br>
* It checks that <code>get()</code> method does not return
* <code>null</code>.
*
* @param node
* @param xpath
* @return if the given parameter exists
*
* @throws XMLConfigException
* if some error occurs.
*/
public static boolean exists(Node node, String xpath) throws XMLConfigException
/**
* Obtains a list of nodes that match the given XPath.
*
* @param file
* file to read
* @param xpath
* parameter to read specified as absolute path to the root of the
* file.
* @return a list of nodes that match the given XPath.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static NodeList getNodeList(String file, String xpath) throws XMLConfigException
/**
* Obtains a list of nodes that match the given XPath.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to the node
* @return a list of nodes that match the given XPath.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static NodeList getNodeList(Node node, String xpath) throws XMLConfigException
/**
* Obtains a list of nodes that match the given XPath as a
* <code>Collection</code>.
*
* @param file
* file to read
* @param xpath
* parameter to read specified as absolute path to the root of the
* file.
* @return a list of nodes that match the given XPath as a
* <code>Collection</code>.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static Collection<Node> getNodeListCollection(String file, String xpath) throws XMLConfigException
/**
* Obtains a list of nodes that match the given XPath as a
* <code>Collection</code>.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to the node
* @return a list of nodes that match the given XPath as a
* <code>Collection</code>.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static Collection<Node> getNodeListCollection(Node node, String xpath) throws XMLConfigException
/**
* Obtains a single node that matches the given XPath.
*
* @param file
* file to read
* @param xpath
* parameter to read specified as absolute path to the root of the
* file.
* @return a single node that matches the given XPath.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static Node getNode(String file, String xpath) throws XMLConfigException
/**
* Obtains a single node that matches the given XPath.
*
* @param node
* base node for XPath
* @param xpath
* parameter to read specified as relative path to the node
* @return a single node that matches the given XPath.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static Node getNode(Node node, String xpath) throws XMLConfigException
/**
* Add a ConfigurationListener.
*
* @param listener
*/
public static void addConfigurationListener(ConfigurationListener listener)
/**
* Add a ConfigurationListener listening for events related to a single
* particular file.
*
* @param listener
* a <tt>ConfigurationListener</tt> object
* @param filename
* a <tt>String</tt> containing the name of a file whose changes must
* be notified to the given listener
*/
public static void addConfigurationListener(ConfigurationListener listener, String filename)
/**
* Add a ConfigurationListener listening for events related to a particular
* set of files.
*
* @param listener
* a <tt>ConfigurationListener</tt> object
* @param fileList
* a <tt>List</tt> of <tt>String</tt> s containing the name of files
* whose changes must be notified to the given listener
*/
public static void addConfigurationListener(ConfigurationListener listener, List<String> fileList)
/**
* Remove a ConfigurationListener
*
* @param listener
*/
public static void removeConfigurationListener(ConfigurationListener listener)
/**
* Remove a ConfigurationListener listening for changes on a single file
*
* @param listener
* a <tt>ConfigurationListener</tt> object
* @param filename
* a <tt>String</tt> containing the name of a file whose changes must
* be notified to the given listener
*/
public static void removeConfigurationListener(ConfigurationListener listener, String filename)
/**
* Remove a ConfigurationListener listening for changes on a subset of files
*
* @param listener
* a <tt>ConfigurationListener</tt> object
* @param fileList
* a <tt>List</tt> of <tt>String</tt> s containing the name of files
* whose changes must be notified to the given listener
*/
public static void removeConfigurationListener(ConfigurationListener listener, List<String> fileList)
/**
* Fires a ConfigurationEvent to all registered ConfigurationListener.
*
* @param event
* event to fire
* @param immediate
* if true the event is fired immediately
*/
protected static synchronized void prepareConfigurationEvent(ConfigurationEvent event, boolean immediate)
/**
* Fires the ConfigurationEvents to all registered ConfigurationListener.
*
*/
protected static synchronized void fireConfigurationEvents()
/**
* Return the URL to be used in order to load the given file.
*
* @param file
* the file to read
* @return the URL to be used in order to load the given file.
* @exception XMLConfigException
* if the file could not be found.
*/
public static synchronized URL getURL(String file) throws XMLConfigException
/**
* Return the URL to be used in order to load the given file.
*
* @param file
* the file to read
* @param classLoader
* the class loader to use to retrieve the file to read
* @param force
* force the reload of file if already present in cache
* @param canBeReloaded
* flag that indicates if this file can be changed and can be
* reloaded
* @return the URL to be used in order to load the given file.
* @exception XMLConfigException
* if the file could not be found.
*/
public static synchronized URL getURL(String file, ClassLoader classLoader, boolean force, boolean canBeReloaded)
throws XMLConfigException
/**
* Reads a configuration file and caches it.
* <p>
* The file is searched into the Java class path as another Java resource.
* See Java class loader documentation to understand this mechanism.
*
* @param file
* the file to read
* @return the read configuration as {@link org.w3c.dom.Document Document}.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static synchronized Document getDocument(String file) throws XMLConfigException
/**
* Reads a configuration file and caches it.
* <p>
* The file is searched into the Java class path as another Java resource.
* See Java class loader documentation to understand this mechanism.
*
* @param file
* the file to read
* @param classLoader
* the class loader to use to retrieve the file to read
* @param force
* force the reload of file if already present in cache
* @param canBeReloaded
* flag that indicates if this file can be changed and can be
* reloaded
* @return the read configuration as {@link org.w3c.dom.Document Document}.
*
* @throws XMLConfigException
* if some error occurs.
*/
public static synchronized Document getDocument(String file, ClassLoader classLoader, boolean force,
boolean canBeReloaded) throws XMLConfigException
/**
* Checks if configuration is composed by multiple files.
*
* @param document
* @return if configuration is composed by multiple files.
*/
public static boolean isCompositeXMLConfig(Document document)
/**
* @param baseUrl
* @param document
* @return the read configuration as {@link org.w3c.dom.Document Document}
* @throws XMLConfigException
*/
public static synchronized Document readCompositeXMLConfig(URL baseUrl, Document document)
throws XMLConfigException
/**
* @param masterURL
* @param xml
* @return the input with replaced properties
*/
public static synchronized byte[] replaceXMLProperties(URL masterURL, byte[] xml)
/**
* @param baseConfigPath
*/
public static void setBaseConfigPath(String baseConfigPath)
/**
* @return the base configuration path
*/
public static String getBaseConfigPath()