1 package net.sourceforge.pmd.sourcetypehandlers; 2 3 import java.util.Map; 4 5 import net.sourceforge.pmd.SourceType; 6 import net.sourceforge.pmd.util.CollectionUtil; 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 private static final Map<SourceType, SourceTypeHandler> mapSourceTypeOnSourceTypeHandler = CollectionUtil 16 .mapFrom(new SourceType[] { SourceType.JAVA_13, SourceType.JAVA_14, 17 SourceType.JAVA_15, SourceType.JAVA_16, SourceType.JAVA_17, SourceType.JSP, }, 18 19 new SourceTypeHandler[] { new Java13Handler(), new Java14Handler(), 20 new Java15Handler(), new Java16Handler(), 21 new Java17Handler(), new JspTypeHandler(), }); 22 23 /** 24 * Never create one 25 */ 26 private SourceTypeHandlerBroker() { } 27 28 public static SourceTypeHandler getVisitorsFactoryForSourceType(SourceType sourceType) { 29 SourceTypeHandler handler = mapSourceTypeOnSourceTypeHandler.get(sourceType); 30 31 if (handler == null) { 32 throw new IllegalArgumentException("No VisitorsFactory is registered for SourceType [" + sourceType + "]."); 33 } 34 return handler; 35 } 36 37 }