svn commit: r641118 - in /lenya/trunk/src/modules-core: metadata/config/ metadata/config/cocoon-xconf/ metadata/java/src/org/apache/lenya/modules/metadata/ sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Tue Mar 25 19:34:09 2008
New Revision: 641118

URL: http://svn.apache.org/viewvc?rev=641118&view=rev
Log:
Adding workflow handling to ChangeMetaData usecase.

Modified:
    lenya/trunk/src/modules-core/metadata/config/cocoon-xconf/usecase-change.xconf
    lenya/trunk/src/modules-core/metadata/config/module.xml
    lenya/trunk/src/modules-core/metadata/java/src/org/apache/lenya/modules/metadata/ChangeMetaData.java
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java

Modified: lenya/trunk/src/modules-core/metadata/config/cocoon-xconf/usecase-change.xconf
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/metadata/config/cocoon-xconf/usecase-change.xconf?rev=641118&r1=641117&r2=641118&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/metadata/config/cocoon-xconf/usecase-change.xconf (original)
+++ lenya/trunk/src/modules-core/metadata/config/cocoon-xconf/usecase-change.xconf Tue Mar 25 19:34:09 2008
@@ -24,5 +24,6 @@
   <xconf xpath="/cocoon/usecases" unless="/cocoon/usecases/component-instance[@name = 'metadata.change']">
     <component-instance name="metadata.change" logger="lenya.metadata" class="org.apache.lenya.modules.metadata.ChangeMetaData">
       <view uri="cocoon://modules/metadata/change" createContinuation="false"/>
+      <event id="edit"/>
     </component-instance>
   </xconf>

Modified: lenya/trunk/src/modules-core/metadata/config/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/metadata/config/module.xml?rev=641118&r1=641117&r2=641118&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/metadata/config/module.xml (original)
+++ lenya/trunk/src/modules-core/metadata/config/module.xml Tue Mar 25 19:34:09 2008
@@ -19,6 +19,7 @@
   <id>org.apache.lenya.modules.metadata</id>
   <export package="org.apache.lenya.modules.metadata"/>
   <depends module="org.apache.lenya.modules.usecase"/>
+  <depends module="org.apache.lenya.modules.workflow"/>
   <package>org.apache.lenya.modules</package>
   <version>2.0.2-dev</version>
   <name>Meta Data</name>

Modified: lenya/trunk/src/modules-core/metadata/java/src/org/apache/lenya/modules/metadata/ChangeMetaData.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/metadata/java/src/org/apache/lenya/modules/metadata/ChangeMetaData.java?rev=641118&r1=641117&r2=641118&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/metadata/java/src/org/apache/lenya/modules/metadata/ChangeMetaData.java (original)
+++ lenya/trunk/src/modules-core/metadata/java/src/org/apache/lenya/modules/metadata/ChangeMetaData.java Tue Mar 25 19:34:09 2008
@@ -18,14 +18,17 @@
 package org.apache.lenya.modules.metadata;
 
 import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
 import org.apache.lenya.cms.usecase.UsecaseInvoker;
+import org.apache.lenya.cms.workflow.usecases.InvokeWorkflow;
 import org.apache.lenya.util.Assert;
 
 /**
  * Save a meta data element.
  */
-public class ChangeMetaData extends DocumentUsecase {
+public class ChangeMetaData extends InvokeWorkflow {
     
     protected static final String PARAM_NAMESPACE = "namespace";
     protected static final String PARAM_ELEMENT = "element";
@@ -48,6 +51,16 @@
 
     protected void doCheckPreconditions() throws Exception {
         super.doCheckPreconditions();
+        
+        Document doc = getSourceDocument();
+        if (doc == null) {
+            return;
+        }
+        if (!doc.getArea().equals(Publication.AUTHORING_AREA)) {
+            addErrorMessage("This usecase can only be invoked in the authoring area!");
+            return;
+        }
+
         String namespace = getParameterAsString(PARAM_NAMESPACE);
         Assert.notNull("namespace", namespace);
         String element = getParameterAsString(PARAM_ELEMENT);
@@ -71,6 +84,8 @@
 
     protected void doExecute() throws Exception {
         
+        super.doExecute();
+        
         String namespace = getParameterAsString(PARAM_NAMESPACE);
         Assert.notNull("namespace", namespace);
         String element = getParameterAsString(PARAM_ELEMENT);
@@ -83,5 +98,4 @@
         MetaData meta = getSourceDocument().getMetaData(namespace);
         meta.setValue(element, value);
     }
-
 }

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java?rev=641118&r1=641117&r2=641118&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java Tue Mar 25 19:34:09 2008
@@ -121,64 +121,6 @@
                 this.manager.release(registry);
             }
         }
-
-    }
-
-    protected void doCheckPreconditions() throws Exception {
-        super.doCheckPreconditions();
-        Document doc = getSourceDocument();
-        if (doc == null) {
-            return;
-        }
-        
-        if (!doc.getArea().equals(Publication.AUTHORING_AREA)) {
-            addErrorMessage("This usecase can only be invoked in the authoring area!");
-        }
-        UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), doc,
-                getLogger());
-    }
-
-    /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
-     */
-    protected void doExecute() throws Exception {
-        super.doExecute();
-
-        // we need a reverse lookup to get the correct ns index:
-        Map num2namespace = (Map) getParameter("namespaces");
-        Map namespace2num = new HashMap();
-
-        Iterator iter = num2namespace.keySet().iterator();
-        while (iter.hasNext()) {
-            String key = (String) iter.next();
-            namespace2num.put(num2namespace.get(key), key);
-        }
-
-        Document document = getSourceDocument();
-        String[] namespaces = document.getMetaDataNamespaceUris();
-
-        for (int nsIndex = 0; nsIndex < namespaces.length; nsIndex++) {
-            MetaData meta = document.getMetaData(namespaces[nsIndex]);
-            String orgNsIndex = (String) namespace2num.get(namespaces[nsIndex]);
-
-            String[] keys = meta.getPossibleKeys();
-            for (int keyIndex = 0; keyIndex < keys.length; keyIndex++) {
-                String key = keys[keyIndex];
-                Element element = meta.getElementSet().getElement(key);
-                if (element.isEditable()) {
-                    Object value = getParameter("ns" + orgNsIndex + "." + key);
-                    if (value != null && value instanceof String) {
-                        meta.setValue(key, (String) value);
-                    }
-                }
-            }
-        }
-
-        WorkflowUtil.invoke(this.manager, getSession(), getLogger(), document, getEvent());
-    }
-
-    protected String getEvent() {
-        return "edit";
     }
 
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.