1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.oxclient.communication.json;
17
18 import java.util.ArrayList;
19 import java.util.HashMap;
20 import java.util.List;
21 import java.util.Map;
22 import java.util.StringTokenizer;
23 import java.util.Map.Entry;
24
25 import net.sf.oval.constraint.NotNull;
26 import net.sf.oval.guard.Guarded;
27
28
29
30
31
32 @Guarded
33 public class SimpleParameterGenerator implements IParameterGenerator {
34
35 private static final String COLUMNS_PARAMETERNAME = "columns";
36
37
38
39
40 public List<String> generateColumnList(final Map<String, String> generatedParams,
41 final Map<Integer, String> columns) {
42 final List<String> result = new ArrayList<String>();
43 final StringTokenizer st = new StringTokenizer(generatedParams.get(SimpleParameterGenerator.COLUMNS_PARAMETERNAME), ",");
44 while (st.hasMoreElements()) {
45 final String token = st.nextToken();
46 final String column = columns.get(Integer.valueOf(token));
47 result.add(column);
48 }
49 return result;
50 }
51
52
53
54
55 public Map<String, String> generateParameter(
56 @NotNull final Map<String, String> origParams,
57 final Map<Integer, String> columns) {
58 final Map<String, String> resMap = new HashMap<String, String>();
59 for (final Entry<String, String> entry : origParams.entrySet()) {
60 resMap.put(entry.getKey(), entry.getValue());
61 }
62 final String columnsValu = generateColumnsValue(columns);
63 resMap.put(SimpleParameterGenerator.COLUMNS_PARAMETERNAME, columnsValu);
64 return resMap;
65 }
66
67
68
69
70
71 private String generateColumnsValue(final Map<Integer, String> columns) {
72 final StringBuffer sb = new StringBuffer();
73 for (final Integer key : columns.keySet()) {
74 sb.append(key);
75 sb.append(",");
76 }
77 sb.deleteCharAt(sb.length() -1);
78 return sb.toString();
79 }
80
81 }