[jboss-svn-commits] JBL Code SVN: r25039 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Feb 1 22:03:18 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-02-01 22:03:17 -0500 (Sun, 01 Feb 2009)
New Revision: 25039
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
Log:
-Default GlobalResolver does not change, it now just adds a secondary delegate to a user provided GlobalResolver instead.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2009-02-02 00:39:51 UTC (rev 25038)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2009-02-02 03:03:17 UTC (rev 25039)
@@ -135,7 +135,8 @@
protected Map queryResults;
/** Global values which are associated with this memory. */
- protected GlobalResolver globalResolver;
+ protected GlobalResolver defaultGlobalResolver;
+ protected GlobalResolver delegateGlobalResolver;
/** The eventSupport */
protected WorkingMemoryEventSupport workingMemoryEventSupport;
@@ -244,7 +245,7 @@
this.config = config;
this.ruleBase = ruleBase;
this.handleFactory = handleFactory;
- this.globalResolver = new MapGlobalResolver();
+ this.defaultGlobalResolver = new MapGlobalResolver();
final RuleBaseConfiguration conf = this.ruleBase.getConfiguration();
@@ -489,7 +490,7 @@
throw new RuntimeException( "Illegal class for global. " + "Expected [" + type.getName() + "], " + "found [" + value.getClass().getName() + "]." );
} else {
- this.globalResolver.setGlobal( identifier,
+ this.defaultGlobalResolver.setGlobal( identifier,
value );
}
} finally {
@@ -500,14 +501,14 @@
public void setGlobalResolver(final GlobalResolver globalResolver) {
try {
this.lock.lock();
- this.globalResolver = globalResolver;
+ this.delegateGlobalResolver = globalResolver;
} finally {
this.lock.unlock();
}
}
public GlobalResolver getGlobalResolver() {
- return this.globalResolver;
+ return this.delegateGlobalResolver;
}
public long getId() {
@@ -521,7 +522,11 @@
public Object getGlobal(final String identifier) {
try {
this.lock.lock();
- return this.globalResolver.resolveGlobal( identifier );
+ Object object = this.defaultGlobalResolver.resolveGlobal( identifier );
+ if ( object == null && this.delegateGlobalResolver != null ) {
+ object = this.delegateGlobalResolver.resolveGlobal( identifier );
+ }
+ return object;
} finally {
this.lock.unlock();
}
More information about the jboss-svn-commits
mailing list