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