Author: michiel
Date: 2010-04-20 15:25:42 +0200 (Tue, 20 Apr 2010)
New Revision: 41977

Modified:
   mmbase/trunk/core/src/main/java/org/mmbase/module/corebuilders/TypeRel.java
Log:
MMB-1653 (default searchdir)

Modified: 
mmbase/trunk/core/src/main/java/org/mmbase/module/corebuilders/TypeRel.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/module/corebuilders/TypeRel.java 
2010-04-20 13:23:19 UTC (rev 41976)
+++ mmbase/trunk/core/src/main/java/org/mmbase/module/corebuilders/TypeRel.java 
2010-04-20 13:25:42 UTC (rev 41977)
@@ -11,12 +11,12 @@
 
 import java.util.*;
 
+import javax.servlet.ServletContext;
 import org.mmbase.bridge.Field;
 import org.mmbase.util.*;
 import org.mmbase.module.core.*;
 import org.mmbase.core.CoreField;
-import org.mmbase.core.event.Event;
-import org.mmbase.core.event.NodeEvent;
+import org.mmbase.core.event.*;
 import org.mmbase.core.util.Fields;
 import org.mmbase.cache.*;
 import org.mmbase.storage.search.implementation.BasicRelationStep;
@@ -42,7 +42,7 @@
  * @see InsRel
  * @see org.mmbase.module.core.MMBase
  */
-public class TypeRel extends MMObjectBuilder {
+public class TypeRel extends MMObjectBuilder implements SystemEventListener {
 
     private static final Logger log = Logging.getLoggerInstance(TypeRel.class);
 
@@ -85,15 +85,27 @@
     public boolean init() {
         if (oType != -1) return true;
         super.init();
-        // during init not yet all builder are available so inhertiance is not
+        // during init not yet all builder are available so inheritance is not
         // yet possible
         // This means that calls to getAllowedRelations do not consider
         // inheritance during initializion of MMBase.
         // This occurs e.g. in one of the Community-builders.
         readCache(false);
+        EventManager.getInstance().addEventListener(this);
         return true;
     }
 
+    public void notify(SystemEvent se) {
+        if (se instanceof SystemEvent.ServletContext) {
+            ServletContext sx = ((SystemEvent.ServletContext) 
se).getServletContext();
+            String def = 
sx.getInitParameter("mmbase.defaultRelationStepDirection");
+            if (def != null && def.length() > 0) {
+                defaultRelationStepDirection = 
org.mmbase.bridge.util.Queries.getRelationStepDirection(def);
+                log.info("Found default relation step direction " + def);
+            }
+        }
+    }
+
     /**
      * The TypeRel cache contains all TypeRels MMObjectNodes. Called after 
init by MMBase, and when
      * something changes.
@@ -592,7 +604,9 @@
             if (sourceToDestination) {
                 // there is ALSO a typed relation from src to destination - 
make
                 // a more complex query
-                relationStep.setDirectionality(RelationStep.DIRECTIONS_BOTH);
+                // http://www.mmbase.org/jira/browse/MMB-1653
+
+                relationStep.setDirectionality(defaultRelationStepDirection);
             } else {
                 // there is ONLY a typed relation from destination to src -
                 // optimized query

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

Reply via email to