r01f.xmlproperties
Class XMLPropertiesForComponentContainer

java.lang.Object
  extended by r01f.xmlproperties.XMLPropertiesForComponentContainer

 class XMLPropertiesForComponentContainer
extends java.lang.Object

Maneja las properties de una aplicación, manteniendo una caché de los Documentos XML de cada componente de esa aplicación(recordar que una aplicación puede tener varios ficheros XML de propiedades -componentes-) leídos desde su almacenamiento (ver XMLPropertiesCache para saber cómo funcionan las cachés).

Las propiedades de un componente se pueden cargar desde varias fuentes que se especifican en la definición del componente (ver XMLPropertiesComponentDef).

Ver ResourcesLoaderDef.

Además de indicarse cómo se CARGAN las propiedades, se puede indicar cómo han de ser RECARGADAS, por ejemplo:

Ver ResourcesReloadControlDef.


Nested Class Summary
private  class XMLPropertiesForComponentContainer.ComponentCacheKey
           
private  class XMLPropertiesForComponentContainer.ComponentCacheXML
           
 
Field Summary
private  java.lang.String _appCode
          Código de aplicación para los XMLs de componentes almacenados en esta caché.
private  XMLPropertiesComponentLoadedListener _componentLoadedListener
          Listener de los eventos que indican que se ha cargado un componente.
private  java.util.Map<XMLPropertiesForComponentContainer.ComponentCacheKey,XMLPropertiesForComponentContainer.ComponentCacheXML> _componentsXMLCache
          Mapa donde se guarda un DOM con el XML de cada componente de propiedades.
(package private)  ResourcesLoaderFactory _resourcesLoaderFactory
          Factoría de ResourcesLoader necesaria para crear el ResourcesLoader indicado en la configuración del componente (que SIEMPRE se carga desde el classPath).
 
Constructor Summary
XMLPropertiesForComponentContainer(XMLPropertiesComponentLoadedListener componentLoadedListener, ResourcesLoaderFactory resourcesLoaderFactory, java.lang.String appCode, int componentsNumberEstimation)
          Constructor en base al tamaño de la caché y el modo de depuración.
 
Method Summary
private  org.w3c.dom.Document _loadComponentXML(XMLPropertiesComponentDef compDef)
          Carga el XML de propiedades de appCode/component según lo indicado en la definición del componente.
private  ResourcesReloadControl _loadReloadControlImpl(XMLPropertiesComponentDef compDef)
           
private  XMLPropertiesForComponentContainer.ComponentCacheXML _retrieveComponent(java.lang.String component)
          Obtiene un componente de la cache o bien lo carga si es que NO estaba cargado.
(package private)  int clear(java.lang.String component)
          Elimina las propiedades de la caché forzando su recarga.
(package private)  org.w3c.dom.Node getPropertyNode(java.lang.String component, java.lang.String xPath)
          Obtiene el Node del DOM que corresponde con el xpath aplicado sobre el XML de la app/componente que se pasan.
(package private)  java.lang.Object getPropertyNode(java.lang.String component, java.lang.String propXPath, javax.xml.namespace.QName returnType)
          Obtiene el Node del DOM que corresponde con el xpath aplicado sobre el XML de la app/componente que se pasan.
(package private)  org.w3c.dom.NodeList getPropertyNodeList(java.lang.String component, java.lang.String xPath)
           
(package private)  boolean reloadIfNecessary(java.lang.String component)
          Recarga la configuración si es necesario, para lo que compara el timeStamp de la última recarga y el timeStamp de modificación del properties que es proporcionado por la clase especificada en la configuración del componente.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_resourcesLoaderFactory

ResourcesLoaderFactory _resourcesLoaderFactory
Factoría de ResourcesLoader necesaria para crear el ResourcesLoader indicado en la configuración del componente (que SIEMPRE se carga desde el classPath).


_appCode

private java.lang.String _appCode
Código de aplicación para los XMLs de componentes almacenados en esta caché.


_componentsXMLCache

private java.util.Map<XMLPropertiesForComponentContainer.ComponentCacheKey,XMLPropertiesForComponentContainer.ComponentCacheXML> _componentsXMLCache
Mapa donde se guarda un DOM con el XML de cada componente de propiedades.


_componentLoadedListener

private XMLPropertiesComponentLoadedListener _componentLoadedListener
Listener de los eventos que indican que se ha cargado un componente.

Constructor Detail

XMLPropertiesForComponentContainer

XMLPropertiesForComponentContainer(XMLPropertiesComponentLoadedListener componentLoadedListener,
                                   ResourcesLoaderFactory resourcesLoaderFactory,
                                   java.lang.String appCode,
                                   int componentsNumberEstimation)
Constructor en base al tamaño de la caché y el modo de depuración.

Parameters:
componentLoadedListener - Listener de los eventos que indican que se ha cargado un componente.
resourcesLoaderFactory - Factoria de las clases responsables de cargar los XMLs.
appCode - Código de aplicación.
componentsNumberEstimation - Tamaño de la caché de componentes.
Method Detail

clear

int clear(java.lang.String component)
Elimina las propiedades de la caché forzando su recarga.

Parameters:
appCode - Código de aplicación.
component - Componente.
Returns:
El número de entradas eliminadas.

reloadIfNecessary

boolean reloadIfNecessary(java.lang.String component)
Recarga la configuración si es necesario, para lo que compara el timeStamp de la última recarga y el timeStamp de modificación del properties que es proporcionado por la clase especificada en la configuración del componente.

Parameters:
component - Componente.
Returns:
true si es necesario recargar la configuración.

getPropertyNode

org.w3c.dom.Node getPropertyNode(java.lang.String component,
                                 java.lang.String xPath)
Obtiene el Node del DOM que corresponde con el xpath aplicado sobre el XML de la app/componente que se pasan.

Parameters:
component - Componente de la aplicación.
xPath - La ruta XPath.
Returns:
El nodo dentro del arbol DOM o null si no se encuentra.

getPropertyNodeList

org.w3c.dom.NodeList getPropertyNodeList(java.lang.String component,
                                         java.lang.String xPath)

getPropertyNode

java.lang.Object getPropertyNode(java.lang.String component,
                                 java.lang.String propXPath,
                                 javax.xml.namespace.QName returnType)
Obtiene el Node del DOM que corresponde con el xpath aplicado sobre el XML de la app/componente que se pasan.

Parameters:
component - Componente de la aplicación.
propXPath - La ruta XPath.
returnType - El tipo de objeto devuelto por XPath (boolean, number, string, node o nodeSet).
Returns:
El nodo dentro del arbol DOM o null si no se encuentra.

_retrieveComponent

private XMLPropertiesForComponentContainer.ComponentCacheXML _retrieveComponent(java.lang.String component)
Obtiene un componente de la cache o bien lo carga si es que NO estaba cargado.

Parameters:
component - Componente.
Returns:
El componente.

_loadComponentXML

private org.w3c.dom.Document _loadComponentXML(XMLPropertiesComponentDef compDef)
                                        throws XMLPropertiesException
Carga el XML de propiedades de appCode/component según lo indicado en la definición del componente.

Parameters:
component - Componente.
compDef - Definición del componente.
Returns:
El XML.
Throws:
XMLPropertiesException - Si no se puede cargar el XML o este está mal formado.

_loadReloadControlImpl

private ResourcesReloadControl _loadReloadControlImpl(XMLPropertiesComponentDef compDef)