Author: michiel
Date: 2010-05-31 18:03:05 +0200 (Mon, 31 May 2010)
New Revision: 42350

Modified:
   mmbase/trunk/bridge/src/main/java/org/mmbase/core/event/NodeEvent.java
Log:
added NodeEvent#isRelation

Modified: mmbase/trunk/bridge/src/main/java/org/mmbase/core/event/NodeEvent.java
===================================================================
--- mmbase/trunk/bridge/src/main/java/org/mmbase/core/event/NodeEvent.java      
2010-05-31 15:59:28 UTC (rev 42349)
+++ mmbase/trunk/bridge/src/main/java/org/mmbase/core/event/NodeEvent.java      
2010-05-31 16:03:05 UTC (rev 42350)
@@ -248,7 +248,25 @@
         return nodeNumber;
     }
 
+    private static final Set<String> relationBuilders = new HashSet<String>();
 
+    /**
+     * Especially events of the type NEW can also be about relations. You may 
want to know this. This determines it efficiently without actually
+     * getting the node from the database.
+     * @since MMBase-1.9.4
+     */
+    public boolean isRelation() {
+        if (relationBuilders.isEmpty()) {
+            org.mmbase.bridge.NodeManager insrel = 
org.mmbase.bridge.ContextProvider.getDefaultCloudContext().getCloud("mmbase", 
"class", null).getNodeManager("insrel");
+            relationBuilders.add("insrel");
+            for (org.mmbase.bridge.NodeManager desc : insrel.getDescendants()) 
{
+                relationBuilders.add(desc.getName());
+            }
+        }
+        return relationBuilders.contains(getBuilderName());
+    }
+
+
     @Override
     public String toString() {
         StringBuilder buf = new StringBuilder("Node event: '");

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

Reply via email to