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