1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.jxpath.ri.compiler;
19
20 import org.apache.commons.jxpath.AbstractFactory;
21 import org.apache.commons.jxpath.JXPathContext;
22 import org.apache.commons.jxpath.Pointer;
23 import org.apache.commons.jxpath.TestBean;
24
25
26
27
28 public class VariableFactory extends AbstractFactory {
29
30
31
32 @Override
33 public boolean createObject(final JXPathContext context, final Pointer pointer, final Object parent, final String name, final int index) {
34 switch (name) {
35 case "testArray":
36 ((TestBean[]) parent)[index] = new TestBean();
37 return true;
38 case "stringArray":
39 ((String[]) parent)[index] = "";
40 return true;
41 case "array":
42 ((String[]) parent)[index] = "";
43 return true;
44 default:
45 break;
46 }
47 return false;
48 }
49
50
51
52
53 @Override
54 public boolean declareVariable(final JXPathContext context, final String name) {
55 switch (name) {
56 case "test":
57 context.getVariables().declareVariable(name, new TestBean());
58 return true;
59 case "testArray":
60 context.getVariables().declareVariable(name, new TestBean[0]);
61 return true;
62 case "stringArray":
63 context.getVariables().declareVariable(name, new String[] { "Value1" });
64 return true;
65 default:
66 break;
67 }
68 context.getVariables().declareVariable(name, null);
69 return true;
70 }
71 }