01: package net.sourceforge.pmd.sourcetypehandlers;
02:
03: import java.util.Map;
04:
05: import net.sourceforge.pmd.SourceType;
06: import net.sourceforge.pmd.util.CollectionUtil;
07:
08: /**
09: * 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: private static final Map<SourceType, SourceTypeHandler> mapSourceTypeOnSourceTypeHandler = CollectionUtil
16: .mapFrom(new SourceType[] { SourceType.JAVA_13,
17: SourceType.JAVA_14, SourceType.JAVA_15,
18: SourceType.JAVA_16, SourceType.JAVA_17,
19: SourceType.JSP, },
20:
21: new SourceTypeHandler[] { new Java13Handler(),
22: new Java14Handler(), new Java15Handler(),
23: new Java16Handler(), new Java17Handler(),
24: new JspTypeHandler(), });
25:
26: /**
27: * Never create one
28: */
29: private SourceTypeHandlerBroker() {
30: }
31:
32: public static SourceTypeHandler getVisitorsFactoryForSourceType(
33: SourceType sourceType) {
34: SourceTypeHandler handler = mapSourceTypeOnSourceTypeHandler
35: .get(sourceType);
36:
37: if (handler == null) {
38: throw new IllegalArgumentException(
39: "No VisitorsFactory is registered for SourceType ["
40: + sourceType + "].");
41: }
42: return handler;
43: }
44:
45: }
|