01: /*
02: * This file is part of PFIXCORE.
03: *
04: * PFIXCORE is free software; you can redistribute it and/or modify
05: * it under the terms of the GNU Lesser General Public License as published by
06: * the Free Software Foundation; either version 2 of the License, or
07: * (at your option) any later version.
08: *
09: * PFIXCORE is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public License
15: * along with PFIXCORE; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: */
18:
19: package de.schlund.pfixcore.scriptedflow.vm;
20:
21: import java.util.Collections;
22: import java.util.HashMap;
23: import java.util.Map;
24:
25: /**
26: * Stores the state of a scripted flow VM. Can be used to keep the state
27: * of a VM between several requests in the same session.
28: *
29: * @author Sebastian Marsching <sebastian.marsching@1und1.de>
30: */
31: public class VMState {
32: private Script script;
33: private int ip;
34: private Map<String, String> variables;
35:
36: // We don't want other classes to mess up with a state
37: // as this might have funny effects (like having an invalid
38: // instruction pointer). So we make all methods visible within
39: // this package only.
40:
41: int getIp() {
42: return ip;
43: }
44:
45: void setIp(int ip) {
46: this .ip = ip;
47: }
48:
49: Script getScript() {
50: return script;
51: }
52:
53: void setScript(Script script) {
54: this .script = script;
55: }
56:
57: public Map<String, String> getVariables() {
58: return Collections.unmodifiableMap(variables);
59: }
60:
61: public void setVariables(Map<String, String> vars) {
62: this .variables = new HashMap<String, String>();
63: this.variables.putAll(vars);
64: }
65: }
|