1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.seasar.cubby.spi.impl;
18
19 import static org.seasar.cubby.internal.util.LogMessages.format;
20
21 import java.util.Collection;
22 import java.util.Map;
23
24 import javax.servlet.http.HttpServletRequest;
25
26 import org.seasar.cubby.controller.RequestParser;
27 import org.seasar.cubby.controller.impl.DefaultRequestParser;
28 import org.seasar.cubby.spi.RequestParserProvider;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32
33
34
35
36
37
38
39
40 public abstract class AbstractRequestParserProvider implements
41 RequestParserProvider {
42
43
44 private static final Logger logger = LoggerFactory
45 .getLogger(AbstractRequestParserProvider.class);
46
47
48 private final RequestParser defaultRequestParser = new DefaultRequestParser();
49
50
51
52
53 public Map<String, Object[]> getParameterMap(
54 final HttpServletRequest request) {
55 final RequestParser requestParser = findRequestParser(request);
56 if (logger.isDebugEnabled()) {
57 logger.debug(format("DCUB0016", requestParser));
58 }
59 final Map<String, Object[]> parameterMap = requestParser
60 .getParameterMap(request);
61 return parameterMap;
62 }
63
64
65
66
67
68
69
70
71 protected RequestParser findRequestParser(final HttpServletRequest request) {
72 for (final RequestParser requestParser : getRequestParsers()) {
73 if (requestParser.isParsable(request)) {
74 return requestParser;
75 }
76 }
77 return defaultRequestParser;
78 }
79
80
81
82
83
84
85 protected abstract Collection<RequestParser> getRequestParsers();
86
87 }