craigmcc    01/08/19 14:25:18

  Modified:    workflow/src/java/org/apache/commons/workflow Context.java
               workflow/src/java/org/apache/commons/workflow/base
                        BaseContext.java
               workflow/src/test/org/apache/commons/workflow/base
                        BaseContextTestCase.java
  Log:
  When adding additional scopes, register them in LOCAL_SCOPE under the same
  name.  This allows for a single unified namespace to be presented to
  expression languages that can get and put corresponding values.
  
  Revision  Changes    Path
  1.4       +13 -6     
jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/Context.java
  
  Index: Context.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/Context.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Context.java      2001/08/18 21:06:50     1.3
  +++ Context.java      2001/08/19 21:25:18     1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/Context.java,v
 1.3 2001/08/18 21:06:50 craigmcc Exp $
  - * $Revision: 1.3 $
  - * $Date: 2001/08/18 21:06:50 $
  + * $Header: 
/home/cvs/jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/Context.java,v
 1.4 2001/08/19 21:25:18 craigmcc Exp $
  + * $Revision: 1.4 $
  + * $Date: 2001/08/19 21:25:18 $
    *
    * ====================================================================
    * 
  @@ -87,7 +87,7 @@
    * the Step implementations that are executed to maintain the stack's
    * integrity.</p>
    *
  - * @version $Revision: 1.3 $ $Date: 2001/08/18 21:06:50 $
  + * @version $Revision: 1.4 $ $Date: 2001/08/19 21:25:18 $
    * @author Craig R. McClanahan
    */
   
  @@ -221,9 +221,16 @@
   
   
       /**
  -     * Register a Scope implementation under the specified identifier.
  +     * <p>Register a Scope implementation under the specified identifier.
        * It is not legal to replace the LOCAL_SCOPE implementation that is
  -     * provided by the Context implementation.
  +     * provided by the Context implementation.</p>
  +     *
  +     * <p>In addition to registering the new Scope such that it can be
  +     * accessed dirctly via calls like <code>Context.get(String,int)</code>,
  +     * the Scope <code>impl</code> object will also be added to the LOCAL
  +     * Scope under the same name.  This makes possible a single unified
  +     * namespace of all accessible objects that can be navigated by
  +     * expression languages.</p>
        *
        * @param scope Scope identifier to register under
        * @param name Scope name to register under
  
  
  
  1.4       +15 -6     
jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/base/BaseContext.java
  
  Index: BaseContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/base/BaseContext.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- BaseContext.java  2001/08/18 21:06:50     1.3
  +++ BaseContext.java  2001/08/19 21:25:18     1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/base/BaseContext.java,v
 1.3 2001/08/18 21:06:50 craigmcc Exp $
  - * $Revision: 1.3 $
  - * $Date: 2001/08/18 21:06:50 $
  + * $Header: 
/home/cvs/jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/base/BaseContext.java,v
 1.4 2001/08/19 21:25:18 craigmcc Exp $
  + * $Revision: 1.4 $
  + * $Date: 2001/08/19 21:25:18 $
    *
    * ====================================================================
    * 
  @@ -83,7 +83,7 @@
    * class.  If it is used in a multiple thread environment, callers must
    * take suitable precations.</p>
    *
  - * @version $Revision: 1.3 $ $Date: 2001/08/18 21:06:50 $
  + * @version $Revision: 1.4 $ $Date: 2001/08/19 21:25:18 $
    * @author Craig R. McClanahan
    */
   
  @@ -327,10 +327,17 @@
   
   
       /**
  -     * Register a Scope implementation under the specified identifier.
  +     * <p>Register a Scope implementation under the specified identifier.
        * It is not legal to replace the LOCAL_SCOPE implementation that is
  -     * provided by the Context implementation.
  +     * provided by the Context implementation.</p>
        *
  +     * <p>In addition to registering the new Scope such that it can be
  +     * accessed dirctly via calls like <code>Context.get(String,int)</code>,
  +     * the Scope <code>impl</code> object will also be added to the LOCAL
  +     * Scope under the same name.  This makes possible a single unified
  +     * namespace of all accessible objects that can be navigated by
  +     * expression languages.</p>
  +     *
        * @param scope Scope identifier to register under
        * @param name Scope name to register under
        * @param impl Scope implementation to be registered (or null to
  @@ -343,9 +350,11 @@
           if (scope == LOCAL_SCOPE)
               throw new IllegalArgumentException("Cannot replace local scope");
           if (impl == null) {
  +            getScope(LOCAL_SCOPE).remove(name);
               names[scope] = null;
               scopes[scope] = null;
           } else {
  +            getScope(LOCAL_SCOPE).put(name, impl);
               names[scope] = name;
               scopes[scope] = impl;
           }
  
  
  
  1.3       +6 -4      
jakarta-commons-sandbox/workflow/src/test/org/apache/commons/workflow/base/BaseContextTestCase.java
  
  Index: BaseContextTestCase.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/workflow/src/test/org/apache/commons/workflow/base/BaseContextTestCase.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BaseContextTestCase.java  2001/08/17 20:37:00     1.2
  +++ BaseContextTestCase.java  2001/08/19 21:25:18     1.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-commons-sandbox/workflow/src/test/org/apache/commons/workflow/base/BaseContextTestCase.java,v
 1.2 2001/08/17 20:37:00 craigmcc Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/08/17 20:37:00 $
  + * $Header: 
/home/cvs/jakarta-commons-sandbox/workflow/src/test/org/apache/commons/workflow/base/BaseContextTestCase.java,v
 1.3 2001/08/19 21:25:18 craigmcc Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/08/19 21:25:18 $
    *
    * ====================================================================
    *
  @@ -76,7 +76,7 @@
    * functions that are not dependent upon an associated Activity.</p>
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.2 $ $Date: 2001/08/17 20:37:00 $
  + * @version $Revision: 1.3 $ $Date: 2001/08/19 21:25:18 $
    */
   
   public class BaseContextTestCase extends TestCase {
  @@ -165,6 +165,8 @@
                        context.getScope(Context.LOCAL_SCOPE + 1));
           assertEquals("Should match 'extra' scope by name", scope,
                        context.getScope("extra"));
  +        assertEquals("Should find 'extra' scope in 'local' scope", scope,
  +                     context.get("extra", Context.LOCAL_SCOPE));
           commonDirectScope(Context.LOCAL_SCOPE + 1);
   
       }
  
  
  

Reply via email to