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.compiler;
20:
21: import java.util.ArrayList;
22: import java.util.HashMap;
23: import java.util.List;
24: import java.util.Map;
25:
26: import de.schlund.pfixcore.scriptedflow.vm.Instruction;
27: import de.schlund.pfixcore.scriptedflow.vm.VirtualRequestInstruction;
28: import de.schlund.pfixcore.scriptedflow.vm.pvo.ParamValueObject;
29:
30: /**
31: * Send a request to the context and use the resulting document for
32: * further processing.
33: *
34: * @author Sebastian Marsching <sebastian.marsching@1und1.de>
35: */
36: public class VirtualRequestStatement extends AbstractStatement
37: implements ParameterizedStatement {
38: private String pagename = null;
39: private boolean dointeractive = false;
40: private boolean reuseparams = false;
41: private Map<String, List<ParamValueObject>> params = new HashMap<String, List<ParamValueObject>>();
42:
43: private Instruction instr = null;
44:
45: public VirtualRequestStatement(Statement parent) {
46: super (parent);
47: }
48:
49: public void setPagename(String pagename) {
50: this .pagename = pagename;
51: }
52:
53: public void setDointeractive(String dointer) {
54: if (dointer != null && (dointer.equals("true"))) {
55: dointeractive = true;
56: reuseparams = false;
57: } else if (dointer != null && dointer.equals("reuse")) {
58: dointeractive = true;
59: reuseparams = true;
60: } else {
61: dointeractive = false;
62: reuseparams = false;
63: }
64: }
65:
66: public void addParam(String param, ParamValueObject value) {
67: List<ParamValueObject> list = this .params.get(param);
68: if (list == null) {
69: list = new ArrayList<ParamValueObject>();
70: this .params.put(param, list);
71: }
72: list.add(value);
73: }
74:
75: public Instruction[] getInstructions() {
76: if (instr == null) {
77: instr = new VirtualRequestInstruction(pagename, params,
78: reuseparams, dointeractive);
79: }
80: return new Instruction[] { instr };
81: }
82:
83: }
|