/Users/detro/workspace-nb/JAEBI-SwingClient/src/clientswing/comunicationsystem/XMLBuilder.java

Vai alla documentazione di questo file.
00001 package clientswing.comunicationsystem;
00002 
00003 import java.io.*;
00004 import clientswing.model.*;
00005 import javax.xml.parsers.*;
00006 import javax.xml.transform.*;
00007 import javax.xml.transform.dom.DOMSource;
00008 import javax.xml.transform.stream.StreamResult;
00009 import org.w3c.dom.*;
00010 import org.w3c.dom.Element;
00011 import org.xml.sax.*;
00012 import java.util.Iterator;
00013 
00015 public class XMLBuilder
00016 {
00018   private Document doc;
00019 
00020   private DocumentBuilderFactory factory;
00021   private DocumentBuilder builder;
00022   private InputSource source;
00023 
00024   public XMLBuilder()
00025   {
00026 
00027   }
00028 
00029   void init() throws ParserConfigurationException {
00030     factory = DocumentBuilderFactory.newInstance();
00031     factory.setNamespaceAware(true);
00032     factory.setValidating(true);
00033     builder = factory.newDocumentBuilder();
00034     doc = builder.newDocument();
00035 
00036   }
00037 
00038   public String xmlToString(Document doc) throws
00039       TransformerConfigurationException, TransformerException {
00040     TransformerFactory tFactory = TransformerFactory.newInstance();
00041 
00042     Transformer t = tFactory.newTransformer();
00043 
00044     StringWriter sw = new StringWriter();
00045 
00046     t.transform(new DOMSource(doc), new StreamResult(sw));
00047 
00048     return sw.toString();
00049   }
00054   public Element xmlColumn(Iterator colIt)
00055   {
00056      Element columns = doc.createElement("columns");
00057      Element column;
00058      Element columnName;
00059      Element columnValue;
00060      Column col;
00061 
00062      while (colIt.hasNext()){
00063        column = doc.createElement("column");
00064        columnName  = doc.createElement("name");
00065 
00066        col = (Column) colIt.next();
00067 
00068        columnName.appendChild(doc.createTextNode(col.getName()));
00069        column.appendChild(columnName);
00070 
00071        if (col.getValue()!=null){
00072          columnValue = doc.createElement("value");
00073          columnValue.appendChild(doc.createTextNode(col.getValue()));
00074          column.appendChild(columnValue);
00075 
00076        }
00077        columns.appendChild(column);
00078      }
00079      return columns;
00080   }
00081 
00083   public synchronized String build (XRequestQuery query) throws
00084       ParserConfigurationException, TransformerConfigurationException,
00085       TransformerException {
00086 
00087     init();
00088     Iterator colIt = query.getColumns().iterator();
00089     Iterator colItWhere = query.getWhere().iterator();
00090     Element root =  doc.createElement("xrequest");
00091 
00092     Element queryNameTable = doc.createElement("table");
00093     queryNameTable.appendChild(doc.createTextNode(query.getTableName()));
00094     root.appendChild(queryNameTable);
00095     if (!query.getColumns().isEmpty()){
00096       Element columns = xmlColumn(colIt);
00097 
00098       root.appendChild(columns);
00099     }
00100 
00101     if (!query.getWhere().isEmpty()){
00102       Element queryWhereClause = doc.createElement("where");
00103       Element columnsWhere = xmlColumn(colItWhere);
00104       System.out.println("\n*** ");
00105       //queryWhereClause.appendChild(columnsWhere);
00106       queryWhereClause.appendChild(columnsWhere);
00107       root.appendChild(queryWhereClause);
00108 
00109     }
00110 
00111     root.setAttribute("xmlns","http://xml.netbeans.org/examples/targetNS");
00112     root.setAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");
00113     root.setAttribute("xsi:schemaLocation","http://xml.netbeans.org/examples/targetNS xrequest.xsd");
00114     root.setAttribute("type",query.getService());
00115 
00116     doc.appendChild(root);
00117 
00118     root.normalize();
00119 
00120     return xmlToString(doc);
00121 
00122 
00123   }
00124 
00125   public static void main(String[] argv){
00126 
00127     XRequestQuery req = new XRequestQuery();
00128 
00129     req.setTableName("PippoTable");
00130     //req.setWhereClause("WHERE pippo = ","paperoga");
00131     req.setService("select");
00132 
00133     req.addColumn(new Column("nome","aldo"));
00134     req.addColumn(new Column("cognome"));
00135     try{
00136       System.out.print(new XMLBuilder().build(req));
00137     }catch(Exception e){
00138       e.printStackTrace();
00139     }
00140 
00141   }
00142 
00143 
00144 
00145 }

Generato il Wed Jun 22 16:42:57 2005 per JAEBI - Swing Client da  doxygen 1.4.3