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 }