1 package net.sourceforge.pmd.sourcetypehandlers;
2
3 import net.sourceforge.pmd.SourceType;
4
5 import java.util.HashMap;
6 import java.util.Map;
7
8 /***
9 * Broker for SourceTypeHandler instances for specific SourceTypes.
10 *
11 * @author pieter_van_raemdonck - Application Engineers NV/SA - www.ae.be
12 */
13 public class SourceTypeHandlerBroker {
14
15 /***
16 * Map of SourceType on SourceTypeHandler.
17 */
18 private Map mapSourceTypeOnSourceTypeHandler = new HashMap();
19
20 /***
21 * Public constructor.
22 */
23 public SourceTypeHandlerBroker() {
24 initialize();
25 }
26
27 /***
28 * Initialize the mapSourceTypeOnVisitorsFactory.
29 */
30 private void initialize() {
31 mapSourceTypeOnSourceTypeHandler.put(SourceType.JAVA_13, new Java13Handler());
32 mapSourceTypeOnSourceTypeHandler.put(SourceType.JAVA_14, new Java14Handler());
33 mapSourceTypeOnSourceTypeHandler.put(SourceType.JAVA_15, new Java15Handler());
34 mapSourceTypeOnSourceTypeHandler.put(SourceType.JSP, new JspTypeHandler());
35 }
36
37 public SourceTypeHandler getVisitorsFactoryForSourceType(SourceType sourceType) {
38 SourceTypeHandler handler = (SourceTypeHandler) mapSourceTypeOnSourceTypeHandler.get(sourceType);
39
40 if (handler == null) {
41 throw new IllegalArgumentException("No VisitorsFactory is registered for SourceType [" + sourceType + "].");
42 } else {
43 return handler;
44 }
45 }
46
47 }