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