1 package org.sapia.soto.state; 2 3 import org.sapia.soto.state.config.Globals; 4 5 import gnu.trove.THashMap; 6 7 import java.util.ArrayList ; 8 import java.util.List ; 9 import java.util.Map ; 10 11 12 21 public class StaticContext { 22 protected THashMap _states = new THashMap(); 23 protected List _listeners = new ArrayList (); 24 protected Globals _globals = new Globals(); 25 protected THashMap _modules = new THashMap(); 26 protected List _anonymousModules = new ArrayList (); 27 protected StateMachine _parent; 28 protected boolean _inheritModules; 29 30 public StateMachine getParent() { 31 return _parent; 32 } 33 34 void init(){ 35 _states.compact(); 36 _modules.compact(); 37 } 38 39 Map getStates() { 40 return _states; 41 } 42 43 StateHolder getStateFor(String stateId){ 44 StateHolder sh = (StateHolder)_states.get(stateId); 45 if(sh == null){ 46 Module m; 47 for(int i = 0; i < _anonymousModules.size(); i++){ 48 m = (Module)_anonymousModules.get(i); 49 sh = m.getStateMachine(true).getStmContext().getStateFor(stateId); 50 if(sh != null){ 51 break; 52 } 53 } 54 } 55 return sh; 56 } 57 58 List getStateListeners() { 59 return _listeners; 60 } 61 62 Globals getGlobals() { 63 return _globals; 64 } 65 66 Map getModules() { 67 return _modules; 68 } 69 70 List getAnonymousModules(){ 71 return _anonymousModules; 72 } 73 74 void setParent(StateMachine parent) { 75 _parent = parent; 76 } 77 } 78 | Popular Tags |