com.ejie.r01f.xmlproperties
Class XMLLiterals

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

public final class XMLLiterals
extends java.lang.Object

Maneja los textos del sistema Los textos se definen en ficheros xml con cualquier estructura, pero con la restriccion de que han de empezar por el tag 'localeText' y de tener en al final de cada estructura los valores indexados por idioma Ejemplo: [Cualquier estructura de XML] Texto en castellano Texto en euskera Los textos se consultan utilizando sentencias XPath desde localeText Lo normal es inicializar un XMLLiterals en base a un idioma y luego utilizarlo: XMLLiterals esLits = new XMLLiterals(R01FConstants.FRAMEWORK_APPCODE,"es"); esLits.get("miSeccion/miSubSeccion/miElemento); // Consultara el elemento es Lost textos se cargan y cachean por CODIGO DE APLICACION. CARGA DE PROPIEDADES (ver clase XMLPropertiesManager.java) ----------------------------------------------------------

See Also:
PATH A LOS FICHEROS DE LITERALES ---------------------------------- Además del loader a utilizar, se puede especificar un PATRON para el path de los ficheros de textos. Este patrón puede contener la variable "[entityCode]" que se sustituirá dinámicamente por el código de aplicación. System.setProperty("EJIE_LITERALS_PATTERN","/[entityCode]/[entityCode].text.xml") o estableciendo la propiedad -DEJIE_LITERALS_PATTERN=/[entityCode]/[entityCode].text.xml en el arranque de la jvm Ejemplo: Si el patrón es /[entityCode]/[entityCode].text.xml y se están cargando las propiedades de la aplicación k01, estas se buscarán en /k01/k01.text.xml, bien accediendo directamente al fichero en /k01/k01.text.xml (si el loader es via ficheros) o bien accediendo al fichero /k01/k01.text.xml en cualquier ruta en el classPath (si el loader es via classPath) IMPORTANTE!! Si no se indica el patrón a los ficheros de literales, se utilizan las siguientes reglas para obtenerlos: - Loader en base a ficheros (por defecto) Windows: d:/eAdmin/aplic/[entityCode]/html/datos/[entityCode].text.xml Unix: /aplic/html/datos/[entityCode]/[entityCode].text.xml - Loader en base a ClassPath Windows / UNIX: /html/datos/[entityCode].text.xml IMPORTANTE: Obviamente para que funcione, es necesario que /html/datos esté en una ruta del classPath de la jvm Independientemente del lodader utilizado, debajo de esta raiz, las propiedades se organizan en carpetas para cada codigo de aplicacion que contienen los ficheros de propiedades con el nombre codApp.text.xml Ejemplo: (Windows - fileLoader) d:/eAdmin/aplic/ r01f/html/datos r01.text.xml s03a/html/datos s03a.text.xml TRUKO: Carga de literales en un WorkSpace de eclipse ---------------------------------------------------- Para que se carguen los literales de una aplicación directamente desde el workSpace de eclipse hay que hacer dos cosas: - Especificar que la carga de propiedades es via ficheros estableciendo la variable de entorno: System.setProperty("EJIE_PROPERTY_LOADER","fileLoader"); o estableciendo la propiedad -DEJIE_PROPERTY_LOADER=fileLoader en el arranque de la máquina virtual NOTA: Esto NO es estrictamente necesario en WINDOWS ya que si no se establece se toma el fileLoader por defecto - Especificar el patron para encontrar los ficheros de propiedades en el workSpace System.setProperty("EJIE_PROPERTIES_PATTERN","d:/tools/workSpaces/eAdmin/[entityCode]Classes/[entityCode]/[entityCode].properties.xml") o estableciendo la propiedad -DEJIE_PROPERTIES_PATTERN=d:/tools/workSpaces/eAdmin/[entityCode]Classes/[entityCode]/[entityCode].properties.xml en el arranque de la maquina virtual De esta forma se buscará el fichero de propiedades de la aplicación k01 en: d:/tools/workSpaces/eAdmin/k01Classes/k01/k01.properties.xml sin necesidad de tener que exportarlo fuera del workSpace

Constructor Summary
XMLLiterals(java.lang.String entityCode, java.lang.String lang)
          Constructor en base al codigo de entidad y el lenguaje
 
Method Summary
 java.lang.String customize(java.lang.String propXPath, java.lang.String[] variables)
          El mismo método que customize pero para ser utilizado en contextos no estáticos, cuando se predefine la entidad y el lenguage
static java.lang.String customize(java.lang.String entityCode, java.lang.String propXPath, java.lang.String[] variables)
          Permite obtener una propiedad y "personalizarla" sustituyendo las "variables" (partes con [?
 java.lang.String get(java.lang.String propXPath)
          El mismo método que get pero para ser utilizado en contextos no estáticos, cuando se predefine la entidad y el lenguage
static java.lang.String get(java.lang.String entityCode, java.lang.String propXPath)
          Devuelve una propiedad existente, para ello utiliza el camino XPath de entrada para buscar la propiedad en el arbol DOM
static java.lang.String getDebugInfo()
          Obtiene información de depuracion
 java.util.List getList(java.lang.String propXPath)
          El mismo método que getList pero para ser utilizado en contextos no estáticos, cuando se predefine la entidad y el lenguage
static java.util.List getList(java.lang.String entityCode, java.lang.String propXPath)
           
static void main(java.lang.String[] argv)
          Metodo main (para probar el temilla...)
static 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

XMLLiterals

public XMLLiterals(java.lang.String entityCode,
                   java.lang.String lang)
Constructor en base al codigo de entidad y el lenguaje

Parameters:
entityCode - Codigo de entidad (codigo de aplicacion)
lang - Lenguaje
Method Detail

get

public java.lang.String get(java.lang.String propXPath)
El mismo método que get pero para ser utilizado en contextos no estáticos, cuando se predefine la entidad y el lenguage


getList

public static java.util.List getList(java.lang.String entityCode,
                                     java.lang.String propXPath)

getList

public java.util.List getList(java.lang.String propXPath)
El mismo método que getList pero para ser utilizado en contextos no estáticos, cuando se predefine la entidad y el lenguage


customize

public java.lang.String customize(java.lang.String propXPath,
                                  java.lang.String[] variables)
El mismo método que customize pero para ser utilizado en contextos no estáticos, cuando se predefine la entidad y el lenguage


get

public static java.lang.String get(java.lang.String entityCode,
                                   java.lang.String propXPath)
Devuelve una propiedad existente, para ello utiliza el camino XPath de entrada para buscar la propiedad en el arbol DOM

Returns:
(String)El texto del nodo si lo encuentra o null si no lo encuentra

customize

public static java.lang.String customize(java.lang.String entityCode,
                                         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"})


reload

public static 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 static java.lang.String getDebugInfo()
Obtiene información de depuracion


main

public static void main(java.lang.String[] argv)
Metodo main (para probar el temilla...) Probar con lo siguiente en dos ficheros properties.xml valor_p03_1_cast valor_p03_2_eusk lista_p03_1_cast lista_p03_1_eusk lista_p03_2_cast lista_p03_2_eusk lista_p03_3_cast lista_p03_3_eusk