blob: 8eded7449ae9a9287671d601d3bf4ca1c1151959 (
plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/*
* Oreka -- A media capture and retrieval platform
*
* Copyright (C) 2005, orecx LLC
*
* http://www.orecx.com
*
* This program is free software, distributed under the terms of
* the GNU General Public License.
* Please refer to http://www.gnu.org/copyleft/gpl.html
*
*/
package net.sf.oreka.serializers;
import javax.servlet.http.*;
import net.sf.oreka.OrkException;
import net.sf.oreka.OrkObject;
import net.sf.oreka.OrkObjectFactory;
public class ServletRequestSerializer extends OrkSerializer {
HttpServletRequest request = null;
final String classMarker = "cmd";
public OrkObject deSerialize(HttpServletRequest request) throws OrkException
{
this.request = request;
deserialize = true; // Set DeSerialize mode
// Instanciate the right object
String classMarker2 = (String)request.getParameterNames().nextElement();
String orkClass = null;
if(classMarker2 != null)
{
orkClass = request.getParameter(classMarker2);
}
if(orkClass == null) {
throw (new OrkException("ServletRequestSerializer.deSerialize: where is the command in:" + request.getQueryString()));
}
OrkObject obj = OrkObjectFactory.instance().newOrkObject(orkClass.toLowerCase());
obj.define(this);
obj.validate();
return obj;
}
@Override
public void addClassName(String value) {
; // not needed, this serializer is only a de-serializer
}
@Override
void addString(String key, String value) {
; // not needed, this serializer is only a de-serializer
}
@Override
String getString(String key, String oldValue, boolean required) throws OrkException {
String value = request.getParameter(key);
if(value == null) {
if (required) {
throw (new OrkException("ServletRequestSerializer.getString: parameter not found:" + key));
}
else {
value = oldValue;
}
}
return value;
}
@Override
public OrkObject objectValue(String key, OrkObject value, boolean required) throws OrkException {
throw (new OrkException("ServletRequestSerializer.objectValue: Nested objects not allowed"));
}
}
|