[Yanel-commits] rev 23602 -
public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources
michi at wyona.com
michi at wyona.com
Thu Apr 5 10:58:22 CEST 2007
Author: michi
Date: 2007-04-05 10:58:19 +0200 (Thu, 05 Apr 2007)
New Revision: 23602
Modified:
public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java
Log:
XML output fixed
Modified: public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java
===================================================================
--- public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java 2007-04-05 06:41:38 UTC (rev 23601)
+++ public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource2.java 2007-04-05 08:58:19 UTC (rev 23602)
@@ -19,13 +19,18 @@
import java.util.Calendar;
import java.util.HashMap;
import java.io.StringBufferInputStream;
+import java.io.ByteArrayOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import org.apache.log4j.Category;
@@ -42,6 +47,8 @@
private static Category log = Category.getInstance(AddRealmResource2.class);
+ String NAMESPACE = "http://www.wyona.org/yanel/1.0";
+
/**
*
*/
@@ -68,16 +75,40 @@
}
/**
- *
+ * Get view
*/
public View getView(HttpServletRequest request, String viewId) throws Exception {
String addType = getConfiguration().getProperty("add-type");
if (addType != null && addType.equals("from-scratch")) {
- return null;
+ return getFromScratchView(request, viewId);
} else if (addType != null && addType.equals("from-existing-website")) {
- return null;
+ return getFromExistingWebsiteView(request, viewId);
} else {
+ return getExceptionView("No such type: " + addType);
+ }
+ }
+
+ /**
+ * Get DOM document
+ */
+ public Document getDocument() {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ Document document = null;
+ try {
+ DocumentBuilder parser = dbf.newDocumentBuilder();
+ document = parser.parse(new java.io.StringBufferInputStream("<yanel:add-realm xmlns:yanel=\""+NAMESPACE+"\" xmlns=\""+NAMESPACE+"\"/>"));
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ }
+ return document;
+ }
+
+ /**
+ * Get exception view
+ */
+ private View getExceptionView(String message) {
View view = new View();
StringBuffer sb = new StringBuffer("<?xml version=\"1.0\"?>");
sb.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
@@ -86,7 +117,7 @@
sb.append("</head>");
sb.append("<body>");
sb.append("<div id=\"contenBody\">");
- sb.append("<h1>No such type: " + addType + "</h1>");
+ sb.append("<h1>" + message + "</h1>");
sb.append("</div>");
sb.append("</body>");
sb.append("</html>");
@@ -94,23 +125,40 @@
view.setMimeType("application/xhtml+xml");
view.setInputStream(new StringBufferInputStream(sb.toString()));
return view;
- }
}
/**
- * Get DOM document
+ * Get from scratch view
*/
- public Document getDocument() {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- String NAMESPACE = "http://www.wyona.org/yanel/1.0";
- Document document = null;
- try {
- DocumentBuilder parser = dbf.newDocumentBuilder();
- document = parser.parse(new java.io.StringBufferInputStream("<yanel:add-realm xmlns:yanel=\""+NAMESPACE+"\" xmlns=\""+NAMESPACE+"\"/>"));
- } catch (Exception e) {
- log.error(e.getMessage(), e);
+ public View getFromScratchView(HttpServletRequest request, String viewId) throws Exception {
+ Document document = getFromScratchInputDocument();
+
+ if (viewId.equals("xml")) {
+ View view = new View();
+ view.setMimeType("application/xml");
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ TransformerFactory.newInstance().newTransformer().transform(new DOMSource(document), new StreamResult(byteArrayOutputStream));
+ view.setInputStream(new java.io.ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
+ return view;
+ } else {
+ return null;
}
- return document;
}
+
+ /**
+ * Get from existing website view
+ */
+ public View getFromExistingWebsiteView(HttpServletRequest request, String viewId) throws Exception {
+ return null;
+ }
+
+ /**
+ *
+ */
+ private Document getFromScratchInputDocument() {
+ Document doc = getDocument();
+ Element rootElement = doc.getDocumentElement();
+ rootElement.appendChild(doc.createElementNS(NAMESPACE, "from-scratch"));
+ return doc;
+ }
}
More information about the Yanel-commits
mailing list