Java tutorial
package com.webbfontaine.valuewebb.model.validators; import com.webbfontaine.valuewebb.action.rimm.RefSelect; import com.webbfontaine.valuewebb.model.constants.Messages; import com.webbfontaine.valuewebb.model.rimm.Rate; import com.webbfontaine.valuewebb.validation.ErrorHandling; import org.apache.commons.lang3.StringUtils; import org.jboss.seam.Component; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.Validator; import javax.faces.validator.ValidatorException; import java.util.Date; /** * Copyrights 2002-2012 Webb Fontaine * This software is the proprietary information of Webb Fontaine. * Its use is subject to License terms. * Developer: nigiyan * Date: 13/03/2012 */ public abstract class CurrencyRateValidator implements Validator { @Override public void validate(FacesContext facesContext, UIComponent uiComponent, Object o) throws ValidatorException { ErrorHandling.getInstance().removeErrorByMessage(Messages.EXC_RATE_INVALID); String cod = (String) o; if (isValid(cod, getDate())) { ErrorHandling.getInstance().removeErrorByMessage(Messages.EXC_RATE_INVALID); } else { ErrorHandling.addFacesMessageError(uiComponent.getClientId(FacesContext.getCurrentInstance()), Messages.EXC_RATE_INVALID); } } public static boolean isValid(String currencyCode, Date date) { boolean isValid; if (StringUtils.isEmpty(currencyCode)) { isValid = true; } else { RefSelect refSelect = (RefSelect) Component.getInstance(RefSelect.class, true); isValid = !refSelect.getRate(date, currencyCode).equals(Rate.EMPTY_INSTANCE); } return isValid; } protected abstract Date getDate(); }