KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > cve > util > ElementXML


1 /*
2 * @(#)ElementXML.java 1.00 09/2003
3 *
4 * @Author Francesco Guerrisi
5 */

6 package cve.util;
7
8 import java.io.File JavaDoc;
9 import java.io.IOException JavaDoc;
10 import java.io.*;
11 import java.util.*;
12
13 import org.jdom.*;
14 import org.jdom.Document;
15 import org.jdom.Element;
16 import org.jdom.JDOMException;
17 import org.jdom.input.SAXBuilder;
18 import org.jdom.output.XMLOutputter;
19
20 import org.apache.log4j.Logger;
21
22 import cve.staticLayout.Cve;
23
24 /**
25 * It require xml file, a element, a tag and a condition. It retuns the parameter value.
26 *
27 *@version 1.0
28 *@author Francesco Guerrisi
29 */

30 public class ElementXML {
31
32    private Document document;
33    private Element root = null;
34    private boolean primoAccesso = true;
35    private boolean trovato = false;
36    private String JavaDoc appoParameter = null;
37
38    /**
39    * Costructor
40    *
41    * #param fileXML path XML File
42    */

43    public ElementXML (String JavaDoc fileXML) {
44       try {
45          Cve.errLog.debug("");
46          // vanno messi i controlli di correttezza
47
SAXBuilder builder = new SAXBuilder(false);
48          document = builder.build(new File JavaDoc(fileXML));
49       } catch (JDOMException e) {
50          if (e.getRootCause() != null) {
51             Cve.errLog.error(e.toString());
52             //e.getRootCause().printStackTrace();
53
}
54          e.printStackTrace();
55       } catch (Exception JavaDoc e) {
56          Cve.errLog.error(e.toString());
57       }
58       //Prelevo la root
59
root=document.getRootElement();
60    }
61
62    /**
63    *
64    * @return root Element
65    */

66    public Element getRootDocument() {
67       Cve.errLog.debug("");
68       return root;
69    };
70
71    /**
72    * It find the parameter for:
73    * @param rootElement Root (Anche diverso da quello del Documento)
74    * @param parameter Parameter
75    * @param condAtt conditional Attribute (facoltativo)
76    * @param condValue value condAtt deve avere (facoltativo)
77    * @return String element value else return null
78    */

79    public String JavaDoc getParameter(Element rootElement, String JavaDoc element, String JavaDoc parameter, String JavaDoc condAtt, String JavaDoc condValue){
80
81       boolean avviaRicerca = false;
82       appoParameter = null;
83       trovato = false;
84
85       //Prelevo tutti i figli
86
Cve.errLog.debug("");
87       java.util.List JavaDoc setElement = rootElement.getChildren();
88       for (int j=0; j<setElement.size();j++){
89          Element elementFind=(Element)(setElement.get(j));
90
91          String JavaDoc nomeElement = elementFind.getName();
92          nomeElement = nomeElement.trim();
93
94          //System.out.println(" Nome figlio = " + nomeElement);
95

96          //Verifico se l'elemento figlio è tra quelli ricercati
97
if( nomeElement.equals(element)){
98
99             //Prelevo gli attributi dell'elemento trovato
100
java.util.List JavaDoc attList = elementFind.getAttributes();
101
102             //Verifico se Condizione inserita
103
if (condAtt != null){
104
105                //Verifico se la condizione è verificata
106
for (int i=0; i<attList.size();i++){
107                   Attribute appoAttr = (Attribute)attList.get(i);
108
109                   String JavaDoc appoAttrName = appoAttr.getName();
110                   appoAttrName = appoAttrName.trim();
111
112                   String JavaDoc appoAttrValue = appoAttr.getValue();
113                   appoAttrValue = appoAttrValue.trim();
114
115                   //System.out.println(" attributo Condizionato = "+ appoAttrName + " Value = " + appoAttrValue);
116

117                   //Controllo se il parametro di condizione esiste
118
if (appoAttrName.equals(condAtt)){
119
120                      //verifico se valore di condizione verificato
121
if (appoAttrValue.equals(condValue)){
122                         avviaRicerca = true;
123                      } else {
124                         avviaRicerca = false;
125                      }
126                   }
127                }
128             } else {
129                avviaRicerca = true;
130             }
131             //AVVIO RICERCA
132
if (avviaRicerca){
133                //Prelevo attributi del Figlio
134
for (int i=0; i<attList.size();i++){
135
136                   Attribute appoAttr = (Attribute)attList.get(i);
137
138                   String JavaDoc appoAttrName = appoAttr.getName();
139                   appoAttrName = appoAttrName.trim();
140
141                   String JavaDoc appoAttrValue = appoAttr.getValue();
142                   appoAttrValue = appoAttrValue.trim();
143
144                   //System.out.println(" attributo = "+ appoAttrName + " Value = " + appoAttrValue);
145

146                   //Controllo se il parametro è quello ricercato
147
if (appoAttrName.equals(parameter)){
148                      //Prelevo il parametro
149
trovato = true;
150                      appoParameter = appoAttrValue;
151                   }
152                } //for parametri
153

154             } //if avvia ricerca
155

156          } //if figlio in lista
157

158          if (trovato == false){
159             //Se non l'ho trovato avvio la ricerca per i nipoti
160
getParameter(elementFind,element, parameter, condAtt, condValue);
161          }
162       } //for figli
163
return appoParameter;
164    } //fine ricerca
165

166    //TEST
167
public static void main(String JavaDoc[] args){
168       String JavaDoc fileXML="D:/CVE_HOME/VisualLanguage/SpecificheWippog/AssFileSem_Sent_PetriLanguageSemASS.xml";
169       System.out.println("");
170       System.out.println(" SIMULAZIONE RICERCA VALORE PARAMETRO IN FILE XML");
171       System.out.println("");
172       ElementXML obj=new ElementXML(fileXML);
173       System.out.println("VALORE TROVATO = " + obj.getParameter(obj.getRootDocument(),"SemanticFile","path",null,null));
174       System.out.println("VALORE TROVATO = " + obj.getParameter(obj.getRootDocument(),"SyntaxFile","path",null,null));
175
176    }
177
178
179 }
180
Popular Tags