/** * TNTConcept Easy Enterprise Management by Autentia Real Bussiness Solution S.L. * Copyright (C) 2007 Autentia Real Bussiness Solution S.L. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.autentia.tnt.validator; import java.util.HashMap; import javax.faces.validator.Validator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.autentia.tnt.util.ConfigurationUtil; public class ValidatorFactory { private static final Log log = LogFactory.getLog(ValidatorFactory.class); private static ValidatorFactory instance = null; private HashMap<String, Class> tableValidators = new HashMap<String, Class>(); private ValidatorFactory() { } private static void init() { if (instance == null) { synchronized (ValidatorFactory.class) { if (instance == null) { instance = new ValidatorFactory(); } } } } public static ValidatorFactory getFactory() { init(); return instance; } private Validator getValidator(String className) { Class classFinal = null; Validator validator = null; try { if (tableValidators.containsKey(className)) { classFinal = (Class) tableValidators.get(className); } else { ClassLoader cl = Thread.currentThread().getContextClassLoader(); classFinal = cl.loadClass(className); tableValidators.put(className, classFinal); } validator = (Validator) classFinal.newInstance(); } catch (Exception ex) { log.error("Error creating Validator: " + ex.getMessage()); } return validator; } public Validator getIdentityCardValidator() { // conseguir nombre de clase por propiedar en properties String className = ConfigurationUtil.getDefault().getIdentityCardValidator(); return getValidator(className); } public Validator getMoneyValidator() { // conseguir nombre de clase por propiedar en properties String className = ConfigurationUtil.getDefault().getMoneyValidator(); return getValidator(className); } public Validator getAccountEntryValidator() { String className = ConfigurationUtil.getDefault().getAccountEntryValidator(); return getValidator(className); } public Validator getPeriodicalAccountEntryValidator() { String className = ConfigurationUtil.getDefault().getPeriodicalAccountEntryValidator(); return getValidator(className); } public Validator getDateValidator() { String className = ConfigurationUtil.getDefault().getDateValidator(); return getValidator(className); } }