View Javadoc

1   /*
2    *
3    *   Copyright 2005 The Apache Software Foundation.
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   *
17   */
18  package org.apache.commons.scxml;
19  
20  import java.util.Map;
21  
22  /***
23   * A Context or "scope" for storing variables; usually tied to
24   * a SCXML root or State object.
25   */
26  public interface Context {
27      /***
28       * Assigns a new value to an existing variable or creates a new one.
29       * The method searches the chain of parent Contexts for variable
30       * existence.
31       *
32       * @param name The variable name
33       * @param value The variable value
34       */
35      void set(String name, Object value);
36  
37      /***
38       * Assigns a new value to an existing variable or creates a new one.
39       * The method allows to shaddow a variable of the same name up the
40       * Context chain.
41       *
42       * @param name The variable name
43       * @param value The variable value
44       */
45      void setLocal(String name, Object value);
46  
47      /***
48       * Get the value of this variable; delegating to parent.
49       *
50       * @param name The name of the variable
51       * @return The value (or null)
52       */
53      Object get(String name);
54  
55      /***
56       * Check if this variable exists, delegating to parent.
57       *
58       * @param name The name of the variable
59       * @return Whether a variable with the name exists in this Context
60       */
61      boolean has(String name);
62  
63      /***
64       * Get the Map of all variables in this Context.
65       *
66       * @return Local variable entries Map
67       * To get variables in parent Context, call getParent().getVars().
68       * @see #getParent()
69       */
70      Map getVars();
71  
72      /***
73       * Clear this Context.
74       */
75      void reset();
76  
77      /***
78       * Get the parent Context, may be null.
79       *
80       * @return The parent Context in a chained Context environment
81       */
82      Context getParent();
83  
84  }