You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2006/10/26 12:37:24 UTC

svn commit: r467952 - /lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java

Author: andreas
Date: Thu Oct 26 03:37:22 2006
New Revision: 467952

URL: http://svn.apache.org/viewvc?view=rev&rev=467952
Log:
Invoke workflow event when changing meta data. This fixes bug 40568.

Modified:
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java

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?view=diff&rev=467952&r1=467951&r2=467952
==============================================================================
--- 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 Thu Oct 26 03:37:22 2006
@@ -25,9 +25,13 @@
 
 import org.apache.lenya.cms.metadata.MetaData;
 import org.apache.lenya.cms.metadata.MetaDataRegistry;
+import org.apache.lenya.cms.metadata.dublincore.DublinCoreHelper;
+import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.site.usecases.SiteUsecase;
 import org.apache.lenya.cms.usecase.UsecaseException;
+import org.apache.lenya.cms.workflow.WorkflowUtil;
 
 /**
  * Usecase to edit metadata for a resource.
@@ -105,20 +109,16 @@
 
     }
 
-    /**
-     * Validates the request parameters.
-     * 
-     * @throws UsecaseException if an error occurs.
-     */
-    void validate() throws UsecaseException {
-        // do nothing
-    }
-
-    /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckExecutionConditions()
-     */
-    protected void doCheckExecutionConditions() throws Exception {
-        validate();
+    protected void doCheckPreconditions() throws Exception {
+        super.doCheckPreconditions();
+        Document doc = getSourceDocument();
+        if (!getSourceDocument().getArea().equals(Publication.AUTHORING_AREA)) {
+            addErrorMessage("This usecase can only be invoked in the authoring area!");
+        }
+        if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), doc, getEvent())) {
+            String title = DublinCoreHelper.getTitle(doc);
+            addErrorMessage("error-workflow-document", new String[] { getEvent(), title });
+        }
     }
 
     /**
@@ -137,11 +137,11 @@
             namespace2num.put(num2namespace.get(key), key);
         }
         
-        
-        String[] namespaces = getSourceDocument().getMetaDataNamespaceUris();
+        Document document = getSourceDocument();
+        String[] namespaces = document.getMetaDataNamespaceUris();
 
         for (int nsIndex = 0; nsIndex < namespaces.length; nsIndex++) {
-            MetaData meta = getSourceDocument().getMetaData(namespaces[nsIndex]);
+            MetaData meta = document.getMetaData(namespaces[nsIndex]);
             String orgNsIndex = (String)namespace2num.get(namespaces[nsIndex]);
 
             if (orgNsIndex != null) {
@@ -155,6 +155,11 @@
             }
         }
 
+        WorkflowUtil.invoke(this.manager, getSession(), getLogger(), document, getEvent());
+    }
+
+    protected String getEvent() {
+        return "edit";
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org