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 package info.rolandkrueger.roklib.webapps.urldispatching.urlparameters;
26
27 import info.rolandkrueger.roklib.webapps.urldispatching.AbstractURLActionCommand;
28
29 import java.util.List;
30 import java.util.Map;
31
32 public class SingleDoubleURLParameter extends AbstractSingleURLParameter<Double>
33 {
34 private static final long serialVersionUID = - 8782412809369726453L;
35
36 public SingleDoubleURLParameter (String parameterName)
37 {
38 super (parameterName);
39 }
40
41 public SingleDoubleURLParameter (String parameterName, Double defaultValue)
42 {
43 super (parameterName);
44 setDefaultValue (defaultValue);
45 }
46
47 protected boolean consumeImpl (Map<String, List<String>> parameters)
48 {
49 List<String> valueList = parameters.remove (getParameterName ());
50 if (valueList == null || valueList.isEmpty ())
51 {
52 return false;
53 }
54 return consumeValue (valueList.get (0));
55 }
56
57 @Override
58 protected boolean consumeListImpl (String[] values)
59 {
60 if (values == null || values.length == 0)
61 return false;
62 return consumeValue (values[0]);
63 }
64
65 private boolean consumeValue (String stringValue)
66 {
67 try
68 {
69 setValue (Double.valueOf (stringValue));
70 return true;
71 } catch (NumberFormatException nfExc)
72 {
73 mError = EnumURLParameterErrors.CONVERSION_ERROR;
74 return false;
75 }
76 }
77
78 public AbstractURLActionCommand getErrorCommandIfInvalid ()
79 {
80 return null;
81 }
82 }