1 /*** 2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html 3 */ 4 package net.sourceforge.pmd.cpd; 5 6 import java.util.Properties; 7 8 public class LanguageFactory { 9 10 public static final String JAVA_KEY = "java"; 11 public static final String CPP_KEY = "cpp"; 12 public static final String PHP_KEY = "php"; 13 public static final String RUBY_KEY = "ruby"; 14 public static final String EXTENSION = "extension"; 15 public static final String BY_EXTENSION = "by_extension"; 16 17 public Language createLanguage(String language) { 18 return createLanguage(language, new Properties()); 19 } 20 21 public Language createLanguage(String language, Properties properties) { 22 if (language.equals(CPP_KEY)) { 23 return new CPPLanguage(); 24 } else if (language.equals(JAVA_KEY)) { 25 return new JavaLanguage(properties); 26 } else if (language.equals(BY_EXTENSION)) { 27 return new AnyLanguage(properties.getProperty(EXTENSION)); 28 } else if (language.equals(PHP_KEY)) { 29 return new PHPLanguage(); 30 } else if (language.equals(RUBY_KEY)) { 31 return new RubyLanguage(); 32 } 33 return new AnyLanguage(language); 34 } 35 }