Author: andre
Date: 2009-11-23 16:39:59 +0100 (Mon, 23 Nov 2009)
New Revision: 39853

Added:
   
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/DeleteSourcesProcessor.java
Modified:
   
mmbase/trunk/applications/media/src/main/config/builders/media/mediafragments.fields.xml
Log:
added a deleteprocessor om mediafragments to delete related sources and images

Modified: 
mmbase/trunk/applications/media/src/main/config/builders/media/mediafragments.fields.xml
===================================================================
--- 
mmbase/trunk/applications/media/src/main/config/builders/media/mediafragments.fields.xml
    2009-11-23 14:55:55 UTC (rev 39852)
+++ 
mmbase/trunk/applications/media/src/main/config/builders/media/mediafragments.fields.xml
    2009-11-23 15:39:59 UTC (rev 39853)
@@ -27,6 +27,9 @@
         <description xml:lang="nl">Een titel is verplicht en moet tenminste 2 
karakters lang zijn</description>
       </minLength>
       <maxLength value="255" enforce="never" />
+      <deleteprocessor>
+        <class name="org.mmbase.media.DeleteSourcesProcessor">  </class>
+      </deleteprocessor>
     </datatype>
   </field>
 

Added: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/DeleteSourcesProcessor.java
===================================================================
--- 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/DeleteSourcesProcessor.java
                             (rev 0)
+++ 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/DeleteSourcesProcessor.java
     2009-11-23 15:39:59 UTC (rev 39853)
@@ -0,0 +1,66 @@
+/*
+
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+The license (Mozilla version 1.0) can be read at the MMBase site.
+See http://www.MMBase.org/license
+
+*/
+package org.mmbase.media;
+
+import org.mmbase.bridge.*;
+import org.mmbase.bridge.util.SearchUtil;
+import org.mmbase.storage.search.*;
+import org.mmbase.bridge.util.Queries;
+import org.mmbase.datatypes.processors.*;
+import org.mmbase.util.logging.*;
+
+
+/**
+ * This commit-processor is used on node of the type 'mediafragments', and is 
used to delete
+ * associated 'streamsources' and 'images' when a 'mediafragments' is deleted.
+ * Nodes of type 'streamssources' will be deleted by DeleteCachesProcessor.
+ *
+ * @author André van Toly
+ * @version $Id$
+ */
+
+public class DeleteSourcesProcessor implements CommitProcessor {
+    private static final long serialVersionUID = 0L;
+
+    public static String NOT = DeleteSourcesProcessor.class.getName() + 
".DONOT";
+
+    private static final Logger LOG = 
Logging.getLoggerInstance(DeleteSourcesProcessor.class);
+    
+    
+    public void commit(final Node node, final Field field) {
+        if (node.getCloud().getProperty(NOT) != null) {
+            LOG.service("Not doing because of property");
+            return;
+        }
+        if (node.getNumber() > 0) {
+            NodeList sources = SearchUtil.findRelatedNodeList(node, 
node.getNodeManager().getProperty("org.mmbase.media.cointaintype"), "related");
+            LOG.info("Deleting " + sources.size() + " sources");
+            for (Node src : sources) {
+                if (src.mayDelete()) {
+                    src.delete(true);
+                } else {
+                    LOG.warn("May not delete " + src);
+                }
+            }
+            
+            NodeList images = SearchUtil.findRelatedNodeList(node, "images", 
"related");
+            LOG.info("Deleting " + images.size() + " sources");
+            for (Node img : images) {
+                if (img.mayDelete()) {
+                    img.delete(true);
+                } else {
+                    LOG.warn("May not delete " + img);
+                }
+            }
+            
+        }
+    }
+
+}


Property changes on: 
mmbase/trunk/applications/media/src/main/java/org/mmbase/applications/media/DeleteSourcesProcessor.java
___________________________________________________________________
Name: svn:keywords
   + Id

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to