com.ejie.r01f.xmlproperties
Class XMLExternalProperties

java.lang.Object
  extended bycom.ejie.r01f.xmlproperties.XMLExternalProperties

public class XMLExternalProperties
extends java.lang.Object

Maneja un fichero de propiedades DISTINTO de .properties.xml Las propiedades se definen en ficheros xml con cualquier estructura, pero con la restriccion de que han de empezar por el tag 'properties' Ejemplo: [Cualquier estructura de XML] el valor Las propiedades se consultan utilizando sentencias XPath desde properties Por ejemplo: XMLProperties.get(R01FConstants.FRAMEWORK_APPCODE,"misProps/miProp"); CARGA DE PROPIEDADES (ver clase XMLPropertiesManager.java) ----------------------------------------------------------

See Also:
XMLPropertiesManager

Constructor Summary
XMLExternalProperties(java.io.InputStream theFile)
          Constructor en base al fichero a leer
XMLExternalProperties(java.lang.String propsPathPattern)
          Constructor en base al nombre del fichero de propiedades.
 
Method Summary
 java.lang.String customize(java.lang.String appCode, java.lang.String propXPath, java.lang.String[] variables)
          Deprecated. Utilizar getCustomized() en su lugar...
 boolean existProperty(java.lang.String appCode, java.lang.String propXPath)
          Comprueba si una propiedad está definida en el fichero de propiedades
 java.lang.String get(java.lang.String appCode, java.lang.String propXPath)
          Obtiene una propiedad como un String
 java.lang.String get(java.lang.String appCode, java.lang.String propXPath, java.lang.String defValue)
          Obtiene una propiedad como String devolviendo un valor por defecto si la propiedad es nula
 boolean getBoolean(java.lang.String appCode, java.lang.String propXPath)
          Devuelve una propiedad como un boolean
 char getChar(java.lang.String appCode, java.lang.String propXPath)
          Devuelve una propiedad como caracter
 java.lang.String getCustomized(java.lang.String appCode, java.lang.String propXPath, java.lang.String[] variables)
          Permite obtener una propiedad y "personalizarla" sustituyendo las "variables" (partes con [?
 java.lang.String getDebugInfo()
          Obtiene información de depuracion
 double getDouble(java.lang.String appCode, java.lang.String propXPath)
          Devuelve la propiedad como un double
 float getFloat(java.lang.String appCode, java.lang.String propXPath)
          Devuelve la propiedad como un float
 int getInt(java.lang.String appCode, java.lang.String propXPath)
          Devuelve una propiedad como un entero
 long getLong(java.lang.String appCode, java.lang.String propXPath)
          Devuelve una propiedad como un long
 java.util.Properties getProperties(java.lang.String appCode, java.lang.String propXPath)
          Obtiene una serie de sub-propiedades en un objeto properties Ejemplo: <database> <connection name='myConx'> <class>weblogic.jdbc.oci.Driver</class> <uri>MyConection</uri> <user>>usuario</user> <password>pass</password> </connection> </database> Una llamada a getProperties("__","database/connection[@name='myConx']") devolverá un objeto Properties con la clase, el uri, el usuario y la clave de la base de datos
 java.lang.String getProperty(java.lang.String appCode, java.lang.String propXPath)
          Devuelve una propiedad como un String
 java.util.List getPropertyList(java.lang.String appCode, java.lang.String propXPath)
          Obtiene el valor de una lista de propiedades Ejemplo: <propiedades> <prop>Valor1</prop> <prop>Valor2</prop> <prop>Valor3</prop> </propiedades> Una llamada a getPropertyList("__","propiedades/prop") devolverá una lista con los valores de las propiedades
 org.w3c.dom.Node getPropertyNode(java.lang.String appCode, java.lang.String propXPath)
          Obtiene el nodo del arbol DOM de propiedades que corresponde con la ruta XPATH
 org.w3c.dom.traversal.NodeIterator getPropertyNodeIterator(java.lang.String appCode, java.lang.String propXPath)
          Obtiene un iterador sobre los nodos del arbol DOM que cumplen la ruta XPATH
 java.lang.String getString(java.lang.String appCode, java.lang.String propXPath)
          Devuelve una propiedad como string
static void main(java.lang.String[] args)
          Main Method
 void reload()
          Recarga todas las propiedades para ello, simplemente hay que hacer null el documento y el mapa de punteros a las entidades
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XMLExternalProperties

public XMLExternalProperties(java.lang.String propsPathPattern)
Constructor en base al nombre del fichero de propiedades. El fichero de propiedades tiene que tener como tag raiz [Cualquier estructura de XML]

Parameters:
propsPathPattern - Patrón a la ruta del fichero ej: /config/[entityCode]/[entityCode].businessDelegate.properties.xml

XMLExternalProperties

public XMLExternalProperties(java.io.InputStream theFile)
Constructor en base al fichero a leer

Parameters:
theFile - fichero a leer
Method Detail

existProperty

public boolean existProperty(java.lang.String appCode,
                             java.lang.String propXPath)
Comprueba si una propiedad está definida en el fichero de propiedades

Parameters:
appCode - codigo de aplicacion
propXPath - ruta xpth de la propiedad
Returns:
true si la propiedad está definida en el fichero, false en otro caso

getProperty

public java.lang.String getProperty(java.lang.String appCode,
                                    java.lang.String propXPath)
Devuelve una propiedad como un String

Parameters:
appCode - El codigo de aplicación
propXPath - La ruta XPath de la propiedad
Returns:
Un string con la propiedad o null si la propiedad no existe

get

public java.lang.String get(java.lang.String appCode,
                            java.lang.String propXPath)
Obtiene una propiedad como un String

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta XPath de la propiedad
Returns:
Un String con la propiedad o null si la propiedad no existe

get

public java.lang.String get(java.lang.String appCode,
                            java.lang.String propXPath,
                            java.lang.String defValue)
Obtiene una propiedad como String devolviendo un valor por defecto si la propiedad es nula

Parameters:
appCode - codigo de aplicacion
propXPath - ruta XPath de la propiedad
defValue - valor por defecto de la propiedad
Returns:
el valor de la propiedad o el valor por defecto si la propiedad es nula

customize

public java.lang.String customize(java.lang.String appCode,
                                  java.lang.String propXPath,
                                  java.lang.String[] variables)
Deprecated. Utilizar getCustomized() en su lugar...

Permite obtener una propiedad y "personalizarla" sustituyendo las "variables" (partes con [?x], con x siendo un entero, empezando en 0) por el contenido del array de variables Por ejemplo, un literal puede ser El perro [?0] se comio al gato [?1] Entonces se podria llamar a customize de la siguiente forma; XMLLiterals.customize("r01","literal/cast",new String[] {"Guau","Miau"})


getCustomized

public java.lang.String getCustomized(java.lang.String appCode,
                                      java.lang.String propXPath,
                                      java.lang.String[] variables)
Permite obtener una propiedad y "personalizarla" sustituyendo las "variables" (partes con [?x], con x siendo un entero, empezando en 0) por el contenido del array de variables Por ejemplo, un literal puede ser El perro [?0] se comio al gato [?1] Entonces se podria llamar a customize de la siguiente forma; XMLLiterals.customize("r01","literal/cast",new String[] {"Guau","Miau"})

Parameters:
appCode - codigo de aplicacion
propXPath - ruta xpath a la propiedad
variables - un array con los valores de las variables contenidas en el valor de la propiedad cada elemento es a su vez un array con dos Strings: variable, valor

getPropertyNode

public org.w3c.dom.Node getPropertyNode(java.lang.String appCode,
                                        java.lang.String propXPath)
Obtiene el nodo del arbol DOM de propiedades que corresponde con la ruta XPATH

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta XPath
Returns:
El nodo dentro del arbol DOM o null si no se encuentra

getPropertyNodeIterator

public org.w3c.dom.traversal.NodeIterator getPropertyNodeIterator(java.lang.String appCode,
                                                                  java.lang.String propXPath)
Obtiene un iterador sobre los nodos del arbol DOM que cumplen la ruta XPATH

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta xpath
Returns:
Un iterador a los nodos que cumplen la ruta xpath o null si no hay ninguno

getPropertyList

public java.util.List getPropertyList(java.lang.String appCode,
                                      java.lang.String propXPath)
Obtiene el valor de una lista de propiedades Ejemplo: <propiedades> <prop>Valor1</prop> <prop>Valor2</prop> <prop>Valor3</prop> </propiedades> Una llamada a getPropertyList("__","propiedades/prop") devolverá una lista con los valores de las propiedades

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta XPath para obtener la lista de propiedades
Returns:
Una lista de strings con las propiedades o null si la lista no se encuentra

getProperties

public java.util.Properties getProperties(java.lang.String appCode,
                                          java.lang.String propXPath)
Obtiene una serie de sub-propiedades en un objeto properties Ejemplo: <database> <connection name='myConx'> <class>weblogic.jdbc.oci.Driver</class> <uri>MyConection</uri> <user>>usuario</user> <password>pass</password> </connection> </database> Una llamada a getProperties("__","database/connection[@name='myConx']") devolverá un objeto Properties con la clase, el uri, el usuario y la clave de la base de datos

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta XPath a la propiedad
Returns:
Un objeto Properties con las propiedades o null si la propiedad no se encuentra

getString

public java.lang.String getString(java.lang.String appCode,
                                  java.lang.String propXPath)
Devuelve una propiedad como string

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta XPath para obtener la propiedad
Returns:
Un string con la propiedad o null si la propiedad no se encuentra

getChar

public char getChar(java.lang.String appCode,
                    java.lang.String propXPath)
Devuelve una propiedad como caracter

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta XPath a la propiedad
Returns:
un caracter con la propiedad o null si la propiedad no se encuentra

getBoolean

public boolean getBoolean(java.lang.String appCode,
                          java.lang.String propXPath)
Devuelve una propiedad como un boolean

Parameters:
appCode - El codigo de aplicación
propXPath - La ruta XPath para obtener la propiedad
Returns:
Un boolean con la propiead o false si la propiedad no se encuentra

getInt

public int getInt(java.lang.String appCode,
                  java.lang.String propXPath)
Devuelve una propiedad como un entero

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta XPath para obtener la propiedad
Returns:
Un entero con la propiedad o Integer.MIN_VALUE si la propiedad no se encuentra

getLong

public long getLong(java.lang.String appCode,
                    java.lang.String propXPath)
Devuelve una propiedad como un long

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta XPath para obtener la propiedad
Returns:
Un long con la propiedad o Long.MIN_VALUE si la propiedad no se encuentra

getDouble

public double getDouble(java.lang.String appCode,
                        java.lang.String propXPath)
Devuelve la propiedad como un double

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta XPath para obtener la propiedad
Returns:
Un double con la propiedad o Double.MIN_VALUE si la propiedad no se encuentra

getFloat

public float getFloat(java.lang.String appCode,
                      java.lang.String propXPath)
Devuelve la propiedad como un float

Parameters:
appCode - El codigo de aplicacion
propXPath - La ruta xpath para obtener la propiedad
Returns:
Un double con la propiedad o Float.MIN_VALUE si la propiedad no se encuentra

reload

public void reload()
Recarga todas las propiedades para ello, simplemente hay que hacer null el documento y el mapa de punteros a las entidades


getDebugInfo

public java.lang.String getDebugInfo()
Obtiene información de depuracion


main

public static void main(java.lang.String[] args)
Main Method

Parameters:
args - Probar con lo siguiente en dos ficheros properties.xml p03_elem p03_1 p03_2 p03_2 p03_e_1 p03_e_2 p03_e_3