1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cms.beans.runtime;
35
36 import org.apache.commons.lang.StringUtils;
37
38 import java.io.File;
39 import java.util.Enumeration;
40 import java.util.Hashtable;
41 import java.util.Map;
42
43
44
45
46
47
48 public class MultipartForm {
49
50
51
52
53 public static final String REQUEST_ATTRIBUTE_NAME = "multipartform";
54
55 private final Map<String, String[]> parameters;
56
57 private final Map<String, Document> documents;
58
59 private final Map parameterList;
60
61 public MultipartForm() {
62 this.parameters = new Hashtable<String, String[]>();
63 this.documents = new Hashtable<String, Document>();
64 this.parameterList = new Hashtable();
65 }
66
67
68
69
70 public void addParameter(String name, Object value) {
71 if (value instanceof String[]) {
72 this.parameters.put(name, (String[]) value);
73 } else {
74 this.parameters.put(name, new String[]{(String) value });
75 }
76 }
77
78
79
80
81 public void removeParameter(String name) {
82 this.parameters.remove(name);
83 }
84
85
86
87
88 public Map<String, String[]> getParameters() {
89 return this.parameters;
90 }
91
92
93
94
95 public String getParameter(String name) {
96 try {
97 String[] params = this.parameters.get(name);
98 if (params != null && params.length > 0) {
99 return params[0];
100 }
101 return null;
102 } catch (Exception e) {
103 return null;
104 }
105 }
106
107
108
109
110 public String[] getParameterValues(String name) {
111 try {
112 return ((String[]) this.parameterList.get(name));
113 } catch (Exception e) {
114 return null;
115 }
116 }
117
118
119
120
121 public void addparameterValues(String name, String[] values) {
122 this.parameterList.put(name, values);
123 }
124
125 public void addDocument(String atomName, String fileName, String type, File file) {
126 if (StringUtils.isEmpty(fileName)) {
127 return;
128 }
129 Document document = new Document();
130 document.setAtomName(atomName);
131 document.setType(type);
132 document.setFile(file);
133 if (!StringUtils.contains(fileName, ".")) {
134 document.setExtension(StringUtils.EMPTY);
135 document.setFileName(fileName);
136 } else {
137 document.setExtension(StringUtils.substringAfterLast(fileName, "."));
138 document.setFileName(StringUtils.substringBeforeLast(fileName, "."));
139 }
140 this.documents.put(atomName, document);
141 }
142
143 public Document getDocument(String name) {
144 return this.documents.get(name);
145 }
146
147 public Map<String, Document> getDocuments() {
148 return this.documents;
149 }
150
151
152
153
154 public Enumeration<String> getParameterNames() {
155 return ((Hashtable<String, String[]>) this.parameters).keys();
156 }
157 }