[Yanel-commits] rev 22678 -
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet
michi at wyona.com
michi at wyona.com
Thu Feb 15 11:33:01 CET 2007
Author: michi
Date: 2007-02-15 11:33:00 +0100 (Thu, 15 Feb 2007)
New Revision: 22678
Removed:
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/CreateUsecaseHelper.java
Log:
obsolete
Deleted: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/CreateUsecaseHelper.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/CreateUsecaseHelper.java 2007-02-15 10:32:07 UTC (rev 22677)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/CreateUsecaseHelper.java 2007-02-15 10:33:00 UTC (rev 22678)
@@ -1,270 +0,0 @@
-/*
- * Copyright 2006 Wyona
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.wyona.org/licenses/APACHE-LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.wyona.yanel.servlet;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.net.URL;
-
-import org.apache.log4j.Logger;
-import org.w3c.dom.Element;
-import org.wyona.yanel.core.ResourceTypeDefinition;
-import org.wyona.yanel.core.Resource;
-import org.wyona.yanel.core.ResourceTypeRegistry;
-import org.wyona.yanel.core.Yanel;
-import org.wyona.yanel.core.map.Map;
-//import org.wyona.yanel.core.map.MapFactory;
-import org.wyona.yanel.core.api.attributes.ViewableV1;
-import org.wyona.yanel.core.api.attributes.ViewableV2;
-import org.wyona.yanel.core.api.attributes.CreatableV2;
-import org.wyona.yanel.core.util.PathUtil;
-import org.wyona.yanel.core.util.ResourceAttributeHelper;
-import org.wyona.yanel.core.Path;
-
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- *
- */
-public class CreateUsecaseHelper {
-
- private static Logger log = Logger.getLogger(CreateUsecaseHelper.class);
-
- /**
- * Creator web interface
- */
- public HttpServletResponse create(HttpServletRequest request, HttpServletResponse response, org.wyona.yanel.core.Yanel yanel) throws IOException {
-
- String createName = request.getParameter("create.name");
- String resourceType = request.getParameter("resource.type");
-
- PrintWriter w = response.getWriter();
- if (resourceType == null || createName == null) {
- w.print(resourcesTypeSelectScreen(createName));
- } else {
- String create = request.getParameter("create");
- if(create == null){
- if (resourceType.equals("") || createName.equals("")) {
- w.print(resourcesTypeSelectScreen(createName));
- } else {
- w.print(createResourceScreen(createName, resourceType));
- }
- } else{
- w.print(doCreate(resourceType, request, response, createName, yanel));
- }
- }
-
- // TODO: Should this really be set here ...
- response.setContentType("text/html");
- response.setStatus(javax.servlet.http.HttpServletResponse.SC_OK);
- return response;
- }
-
- /**
- * @return A XHTML page with the resource selection screen
- */
- public String resourcesTypeSelectScreen(String createName) {
- StringBuffer form = new StringBuffer();
- form.append("<?xml version=\"1.0\"?>");
- form.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
- form.append("<body>");
- form.append("<form>");
- form.append("<input type=\"hidden\" name=\"yanel.usecase\" value=\"create\"/>");
- if (createName != null) {
- form.append("Name: <input type=\"text\" name=\"create.name\" value=\"" + createName + "\"/>");
- } else {
- form.append("Name: <input type=\"text\" name=\"create.name\"/>");
- }
- form.append("<br/>Resource Type: <select name=\"resource.type\">");
-
- ResourceTypeRegistry rtr = new ResourceTypeRegistry();
- ResourceTypeDefinition[] rtds = rtr.getResourceTypeDefinitions();
- for (int i = 0; i < rtds.length; i++) {
- try {
- Resource resource = rtr.newResource(rtds[i].getResourceTypeUniversalName());
- if (resource != null && ResourceAttributeHelper.hasAttributeImplemented(resource, "Creatable", "2")) {
- form.append("<option value=\"" + rtds[i].getResourceTypeUniversalName() + "\">" + rtds[i].getResourceTypeLocalName() + "</option>");
- }
- } catch(Exception e) {
- log.error(e);
- }
- }
-
- form.append("</select>");
- form.append("<br/><input type=\"submit\" value=\"Next\"/>");
- form.append("</form>");
- form.append("</body>");
- form.append("</html>");
-
- return form.toString();
- }
-
- /**
- * @return a html page with the resource selction screen as a string
- */
- private String createResourceScreen(String createName, String rti) {
-
- String resourcesCreateScreen = null;
- String[] PropertyNames = null;
-
- ResourceTypeRegistry rtr = new ResourceTypeRegistry();
-
- try {
- Resource resource = rtr.newResource(rti);
- if (resource != null) {
- if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Creatable", "2")) {
- PropertyNames = ((CreatableV2) resource).getPropertyNames();
- ((CreatableV2) resource).setProperty("Name", createName);
-
- StringBuffer form = new StringBuffer();
- form.append("<?xml version=\"1.0\"?>");
- form.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
- form.append("<body>");
- form.append("<h1>Create new resource</h1>");
- if (createName == null) {
- form.append("Name: <input type=\"text\"/><br/>");
- } else {
- form.append("Name: " + createName + "<br/>");
- }
- form.append("Resource Type: " + rti + "<br/><br/>");
- form.append("<form>");
- form.append("<input type=\"hidden\" name=\"yanel.usecase\" value=\"create\"/>");
- form.append("<input type=\"hidden\" name=\"resource.type\" value=\""+rti+"\"/>");
- form.append("<input type=\"hidden\" name=\"create.name\" value=\""+createName+"\"/>");
- form.append("<input type=\"hidden\" name=\"create\" value=\"create.resource\"/>");
-
- if (PropertyNames != null && PropertyNames.length > 0) {
- form.append("<p>Resource specific properties:</p>");
- for (int i = 0; i < PropertyNames.length; i++) {
- form.append(PropertyNames[i] + ": <input name=\"rp." + PropertyNames[i]
- + "\" value=\""
- + ((CreatableV2) resource).getProperty(PropertyNames[i])
- + "\" size=\"60\"><br/>");
- }
- } else {
- form.append("<p>No resource specific properties!</p>");
- }
-
- form.append("<br/><br/><input type=\"submit\" value=\"Create Resource\"/>");
- form.append("</form>");
- form.append("</body>");
- form.append("</html>");
-
- resourcesCreateScreen = form.toString();
- return resourcesCreateScreen;
- }
-
- }
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- String message = e.toString();
- log.error(e.getMessage(), e);
- // Element exceptionElement = (Element)
- // rootElement.appendChild(doc.createElement("exception"));
- // exceptionElement.appendChild(doc.createTextNode(message));
- // setYanelOutput(response, doc);
- // response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- return message;
- }
-
- return resourcesCreateScreen;
- }
-
- /**
- * @param newResourceType Universal Name of Resource Type
- */
- private String doCreate(String newResourceType, HttpServletRequest request, HttpServletResponse response, String createName, org.wyona.yanel.core.Yanel yanel) {
- String responseAfterCreationScreen = null;
- String[] PropertyNames = null;
-
- try {
- org.wyona.yanel.core.map.Realm realm = yanel.getMap().getRealm(request.getServletPath());
- String pathFromWhereCreateUsecaseHasBeenIssued = yanel.getMap().getPath(realm, request.getServletPath());
- String parent = PathUtil.getParent(pathFromWhereCreateUsecaseHasBeenIssued);
- String newPath = null;
- if(parent.equals("null")) {
- // if pathFromWhereCreateUsecaseHasBeenIssued is ROOT
- newPath = "/" + createName;
- } else {
- newPath = parent + "/" + createName;
- }
-
- log.debug("New Path: " + newPath);
- Resource newResource = yanel.getResourceManager().getResource(request, response, realm, newPath, new ResourceTypeRegistry().getResourceTypeDefinition(newResourceType), new org.wyona.yanel.core.ResourceTypeIdentifier(newResourceType, null));
- if (newResource != null) {
- if (ResourceAttributeHelper.hasAttributeImplemented(newResource, "Creatable", "2")) {
- PropertyNames = ((CreatableV2) newResource).getPropertyNames();
-
- ((CreatableV2) newResource).create(request);
-
- // Create RTI
- StringBuffer rtiContent = new StringBuffer(newResource.getResourceTypeUniversalName() + "\n");
- java.util.HashMap rtiProperties = ((CreatableV2) newResource).createRTIProperties(request);
- if (rtiProperties != null) {
- log.error("DEBUG: " + rtiProperties + " " + PathUtil.getRTIPath(newResource.getPath()));
- java.util.Iterator iterator = rtiProperties.keySet().iterator();
- while (iterator.hasNext()) {
- String property = (String) iterator.next();
- String value = (String) rtiProperties.get(property);
- rtiContent.append(property + ": " + value + "\n");
- log.error("DEBUG: " + property + ", " + value);
- }
- } else {
- log.warn("No RTI properties: " + newResource.getPath());
- }
- java.io.Writer writer = newResource.getRealm().getRTIRepository().getWriter(new Path(PathUtil.getRTIPath(newResource.getPath())));
- writer.write(rtiContent.toString());
- writer.close();
-
-
- //response after creation, better would be a redirect to the fresh created resource
- StringBuffer form = new StringBuffer();
- form.append("<?xml version=\"1.0\"?>");
- form.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
- form.append("<body>");
- form.append("New resource has been created successfully: <a href=\"" + createName + "\">" + createName + "</a>");
- form.append("</body>");
- responseAfterCreationScreen = form.toString();
- } else {
- //response after creation failed
- StringBuffer form = new StringBuffer();
- form.append("<?xml version=\"1.0\"?>");
- form.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
- form.append("<body>");
- form.append("creation NOT successfull!");
- form.append("</body>");
- responseAfterCreationScreen = form.toString();
- }
- return responseAfterCreationScreen;
- }
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- String message = e.toString();
- log.error(e.getMessage(), e);
- // Element exceptionElement = (Element)
- // rootElement.appendChild(doc.createElement("exception"));
- // exceptionElement.appendChild(doc.createTextNode(message));
- // setYanelOutput(response, doc);
- // response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- return message;
- }
- return responseAfterCreationScreen;
- }
-}
More information about the Yanel-commits
mailing list