Author: andre
Date: 2009-11-23 20:40:10 +0100 (Mon, 23 Nov 2009)
New Revision: 39858

Added:
   openimages/trunk/src/main/java/eu/openimages/DeleteTranslationsProcessor.java
Modified:
   openimages/trunk/src/main/config/datatypes.xml
Log:
added processor to delete related translations when the original node is deleted

Modified: openimages/trunk/src/main/config/datatypes.xml
===================================================================
--- openimages/trunk/src/main/config/datatypes.xml      2009-11-23 18:52:16 UTC 
(rev 39857)
+++ openimages/trunk/src/main/config/datatypes.xml      2009-11-23 19:40:10 UTC 
(rev 39858)
@@ -4,16 +4,21 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
     xsi:schemaLocation="http://www.mmbase.org/xmlns/datatypes 
http://www.mmbase.org/xmlns/datatypes.xsd";>
 
-  <!-- @version $Id: datatypes.xml,v 1.11 2009-01-02 09:36:10 michiel Exp $
-
--->
+  <!-- 
+    @version $Id: datatypes.xml,v 1.11 2009-01-02 09:36:10 michiel Exp $ 
+  -->
+  
   <datatype id="oip_language"
             base="iso639" xmlns="http://www.mmbase.org/xmlns/datatypes";>
 
     <property name="inSelf" value="true" />
     <required value="true" />
     <pattern value="en|nl" />
+    
+    <deleteprocessor>
+      <class name="eu.openimages.DeleteTranslationsProcessor">  </class>
+    </deleteprocessor>
+    
   </datatype>
 
-
 </datatypes>

Added: 
openimages/trunk/src/main/java/eu/openimages/DeleteTranslationsProcessor.java
===================================================================
--- 
openimages/trunk/src/main/java/eu/openimages/DeleteTranslationsProcessor.java   
                            (rev 0)
+++ 
openimages/trunk/src/main/java/eu/openimages/DeleteTranslationsProcessor.java   
    2009-11-23 19:40:10 UTC (rev 39858)
@@ -0,0 +1,69 @@
+/*
+
+This file is part of the Open Images Platform.
+
+The Open Images Platform is free software: you can redistribute it and/or 
modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+The Open Images Platform is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with The Open Images Platform.  If not, see 
<http://www.gnu.org/licenses/>.
+
+*/
+
+package eu.openimages;
+
+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 nodes of the type 'mediafragments' and
+ * deletes associated 'mediasources' when a 'mediafragments' node is deleted.
+ * To a 'mediasources' belonging nodes of type 'streamsources' in Streams will 
be 
+ * deleted by org.mmbase.streams.DeleteCachesProcessor.
+ *
+ * @author André van Toly
+ * @version $Id$
+ */
+
+public class DeleteTranslationsProcessor implements CommitProcessor {
+    private static final long serialVersionUID = 0L;
+
+    public static String NOT = DeleteTranslationsProcessor.class.getName() + 
".DONOT";
+
+    private static final Logger LOG = 
Logging.getLoggerInstance(DeleteTranslationsProcessor.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 translations = SearchUtil.findRelatedNodeList(node, 
+                node.getNodeManager().getProperty("translations.builders"), 
"langrel");
+            LOG.info("Deleting " + translations.size() + " translations of #" 
+ node.getNumber());
+            for (Node tr : translations) {
+                if (tr.mayDelete()) {
+                    tr.delete(true);
+                } else {
+                    LOG.warn("May not delete #" + tr);
+                }
+            }            
+        }
+    }
+
+}


Property changes on: 
openimages/trunk/src/main/java/eu/openimages/DeleteTranslationsProcessor.java
___________________________________________________________________
Name: svn:keywords
   + Id

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to