|
From: <tr...@us...> - 2003-07-16 02:10:59
|
Update of /cvsroot/babeldoc/babeldoc/modules/sql/src/com/babeldoc/sql/pipeline/stage
In directory sc8-pr-cvs1:/tmp/cvs-serv24426
Modified Files:
SqlQueryPipelineStage.java
Log Message:
updated so that the output xml can have a schema applied to it.
Index: SqlQueryPipelineStage.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/sql/src/com/babeldoc/sql/pipeline/stage/SqlQueryPipelineStage.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** SqlQueryPipelineStage.java 15 Jul 2003 22:46:56 -0000 1.2
--- SqlQueryPipelineStage.java 16 Jul 2003 02:10:57 -0000 1.3
***************
*** 96,99 ****
--- 96,115 ----
private IResource resource = null;
+ // Various constants for the xml document
+ public static final String XML_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
+ public static final String ROOT_ELEMENT_START = "<queryresults>\n";
+ public static final String ROW_ELEMENT_START = "<row>\n";
+ public static final String COLUMN_ELEMNENT_END = "</column>\n";
+ public static final String ROW_ELEMENT_END = "</row>\n";
+ public static final String ROOT_ELEMENT_END = "</queryresults>\n";
+ public static final String XML_MIME_TYPE = "text/xml";
+ public static final String COLUMN_ELEMENT_START1 = "<column column-name=\"";
+ public static final String COLUMN_ELEMENT_START2 = "\" column-number=\"";
+ public static final String COLUMN_ELEMENT_START3 = "\">";
+ public static final String QUERY_ELEMENT_START1 = "<query query-name=\"";
+ public static final String QUERY_ELEMENT_START2 = "\" query-number=\"";
+ public static final String QUERY_ELEMENT_START3 = "\">\n";
+ public static final String QUERY_ELEMENT_END = "</query>\n";
+
/**
* Construct with this stages info
***************
*** 139,146 ****
NameValuePair[] queries = this.getOptionList(new String[]{SQL});
StringBuffer xml = new StringBuffer();
! xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
! xml.append("<queryresults>\n");
Connection conn = null;
--- 155,174 ----
NameValuePair[] queries = this.getOptionList(new String[]{SQL});
+ PipelineDocument newDoc = createQueryDocument(queries);
+ return super.processHelper(newDoc);
+ }
+ /**
+ * For each of the queries provided in the name-value pair, execute the sql and create an xml
+ * document with the rows and columns for each result for each query.
+ *
+ * @param queries
+ * @return
+ * @throws PipelineException
+ */
+ private PipelineDocument createQueryDocument(NameValuePair[] queries) throws PipelineException {
StringBuffer xml = new StringBuffer();
! xml.append(XML_HEADER);
! xml.append(ROOT_ELEMENT_START);
Connection conn = null;
***************
*** 155,159 ****
for (int i = 0; i < queries.length; ++i) {
String queryName = queries[i].getName();
! xml.append("<" + queryName + ">\n");
sql = queries[i].getValue();
stmt = conn.createStatement();
--- 183,187 ----
for (int i = 0; i < queries.length; ++i) {
String queryName = queries[i].getName();
! xml.append(QUERY_ELEMENT_START1+queryName+QUERY_ELEMENT_START2+i+QUERY_ELEMENT_START3);
sql = queries[i].getValue();
stmt = conn.createStatement();
***************
*** 162,176 ****
ResultSetMetaData metaData = rs.getMetaData();
while (rs.next()) {
! xml.append("<row>\n");
for (int j = 1, count = metaData.getColumnCount(); j <= count; j++) {
String name = metaData.getColumnLabel(j).toLowerCase();
Object value = rs.getObject(j);
! xml.append("<" + name + ">");
xml.append(value);
! xml.append("</" + name + ">\n");
}
! xml.append("</row>\n");
}
! xml.append("</" + queryName + ">\n");
}
}
--- 190,204 ----
ResultSetMetaData metaData = rs.getMetaData();
while (rs.next()) {
! xml.append(ROW_ELEMENT_START);
for (int j = 1, count = metaData.getColumnCount(); j <= count; j++) {
String name = metaData.getColumnLabel(j).toLowerCase();
Object value = rs.getObject(j);
! xml.append(COLUMN_ELEMENT_START1+name+COLUMN_ELEMENT_START2+j+COLUMN_ELEMENT_START3);
xml.append(value);
! xml.append(COLUMN_ELEMNENT_END);
}
! xml.append(ROW_ELEMENT_END);
}
! xml.append(QUERY_ELEMENT_END);
}
}
***************
*** 201,211 ****
}
}
!
! xml.append("</queryresults>\n");
PipelineDocument newDoc = new PipelineDocument(this.getDocument(), xml.toString().getBytes());
! newDoc.setMimeType("text/xml");
!
! return super.processHelper(newDoc);
}
--- 229,237 ----
}
}
! xml.append(ROOT_ELEMENT_END);
PipelineDocument newDoc = new PipelineDocument(this.getDocument(), xml.toString().getBytes());
! newDoc.setMimeType(XML_MIME_TYPE);
! return newDoc;
}
|