package jcircus.complementaryenvs; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Stack; import java.util.Vector; import jcircus.environment.NameTypeEnv; public class MuStackEnv { private HashMap > map; public MuStackEnv () { this.map = new LinkedHashMap > (); } private Vector keys () { Vector keys = new Vector (); Object [] objkeys = this.map.keySet().toArray(); for (int i = 0; i < objkeys.length; i++) { keys.addElement((String) objkeys [i]); } return keys; } public void push (String muname, NameTypeEnv nte) { if (map.containsKey(muname)) { this.map.get(muname).push(nte); } else { Stack stack = new Stack (); stack.push(nte); this.map.put(muname, stack); } if (muname.equals("XActivateZone")) { System.out.print (""); } } public void pop (String muname) { if (map.containsKey(muname)) { this.map.get(muname).pop(); } if (muname.equals("XActivateZone")) { System.out.print (""); } } public NameTypeEnv getCurrentNameTypeEnv (String muname) { if (this.map.get(muname).size() == 0) { System.out.print (""); } return this.map.get(muname).lastElement(); } }