package husacct.validate.domain.factory.violationtype; import husacct.ServiceProvider; import husacct.define.IDefineService; import husacct.validate.domain.configuration.ConfigurationServiceImpl; public class ViolationTypeFactory { private final IDefineService defineService = ServiceProvider.getInstance().getDefineService(); public AbstractViolationType getViolationTypeFactory(ConfigurationServiceImpl configuration) { String language = defineService.getApplicationDetails().projects.get(0).programmingLanguage; return getViolationTypeFactory(language, configuration); } public AbstractViolationType getViolationTypeFactory(String language, ConfigurationServiceImpl configuration) { if (language.toLowerCase().equals("java") || language.toLowerCase().equals("c#")) { return new ConcreteViolationTypeFactory(configuration, language); } else { return null; } } }