Professional Documents
Culture Documents
/**
* Método que retorna un nodo hijo con ciertos atributos
* @param nombreElementHijo String
* @param atributosElementHijo Hashtable key=nombreAtributo, value=valor
Atributo o null
* @param elementPadre Element
* @return Element nodo hijo o si no se encuentra null
* @throws Throwable
*/
public static Element dameNodoHijoConAtributos(String nombreElementHijo,
Hashtable atributosElementHijo, Element elementPadre) throws Throwable {
try{
List listaHijos = elementPadre.getChildren(nombreElement
Hijo);
for(Iterator itr = listaHijos.iterator(); itr.hasNext();
){
Element elementHijo = (Element)itr.next();
if(testNodoTieneEstosAtributos(elementHijo, atri
butosElementHijo)){
return elementHijo;
}
}
}
catch(Throwable e){
logger.error("EncapsuladorJDOM.dameNodoHijoConAtributos(
nombreElementHijo, atributosElementHijo, elementPadre)", e);
throw new Throwable("EncapsuladorJDOM.dameNodoHijoConAtr
ibutos(nombreElementHijo, atributosElementHijo, elementPadre)", e);
}
return null;
}
/**
* Método que comprueba que un nodo tenga todos los atributos atributosN
odo Hashtable
* @param nodo Element
* @param atributosNodo Hashtable key=nombreAtributo, value=valorAtribu
to o null
* @return true tiene los mismos atributos, false en caso contrario
* @throws Throwable
*/
public static boolean testNodoTieneEstosAtributos(Element nodo, Hashtabl
e atributosNodo) throws Throwable {
try{
if(atributosNodo == null || atributosNodo.isEmpty()){
return true;
}
else{
Enumeration enumeration = atributosNodo.keys();
while(enumeration.hasMoreElements()){
String nombreAtributo = (String)enumerat
ion.nextElement();
String valorAtributo = (String)atributos
Nodo.get(nombreAtributo);
if(valorAtributo.equalsIgnoreCase(nodo.g
etAttributeValue(nombreAtributo))){
return true;
}
}
}
}
catch(Throwable e){
logger.error("EncapsuladorJDOM.testNodoTieneEstosAtribut
os(nodo="+nodo+", atributosNodo)", e);
throw new Throwable("EncapsuladorJDOM.testNodoTieneEstos
Atributos(nodo="+nodo+", atributosNodo)", e);
}
return false;
}
/**
* Método que retorna el contenido (String) del primer nodo hijo ciertos
atributos
* @param nombreElementHijo String
* @param atributos Hashtable [key=nombreAtributo, value=valorAtributo]
o null
* @param elementPadre Element
* @return String con el contenido y "" en caso contrario.
* @throws Throwable
*/
public static String dameContenidoEtiquetaConAtributos(String nombreElem
entHijo, Hashtable atributos, Element elementPadre) throws Throwable {
try{
List listaHijos = elementPadre.getChildren(nombreElement
Hijo);
for(Iterator itr = listaHijos.iterator(); itr.hasNext();
){
Element elementHijo = (Element)itr.next();
if(testNodoTieneEstosAtributos(elementHijo, atri
butos)){
return dameNodoTieneEstosAtributos(eleme
ntHijo, atributos);
}
}
}catch (Throwable e) {
String mensaje ="JDOMUtils.dameContenidoEtiquetaConAtrib
utos(nombreEtiquetaABuscar, atributos, raiz)";
logger.error(mensaje, e);
throw new Throwable(mensaje);
}
return "";
}
/**
* Método que retorna el contenido del primer nodo que tenga ciertos atr
ibutos
* @param nodo Element
* @param atributosNodo Hashtable [key=nombreAtributo, value=valorAtrib
uto] o null
* @return String con el contenido y "" en caso contrario.
* @throws Throwable
*/
public static String dameNodoTieneEstosAtributos(Element nodo, Hashtable
atributosNodo) throws Throwable {
try{
if(atributosNodo == null || atributosNodo.isEmpty()){
return nodo.getTextTrim();
}
else{
Enumeration enumeration = atributosNodo.keys();
while(enumeration.hasMoreElements()){
String nombreAtributo = (String)enumerat
ion.nextElement();
String valorAtributo = (String)atributos
Nodo.get(nombreAtributo);
if(valorAtributo.equalsIgnoreCase(nodo.g
etAttributeValue(nombreAtributo))){
return nodo.getTextTrim();
}
}
}
}
catch(Throwable e){
logger.error("EncapsuladorJDOM.dameNodoTieneEstosAtribut
os(nodo="+nodo+", atributosNodo)", e);
throw new Throwable("EncapsuladorJDOM.dameNodoTieneEstos
Atributos(nodo="+nodo+", atributosNodo)", e);
}
return "";
}