Validators for XPages


package uk.co.pipalia;

/*
 * Copyright 2013 Pipalia LTD
 * Licensed under the Apache License, Version 2.0
 * 
 * * * * * * * * * * * * * * * * * * * *
 * Implementing Validators for XPages  *
 * * * * * * * * * * * * * * * * * * * *
 * 
 * 1. Download Apache Commons Validator from http://commons.apache.org/proper/commons-validator/
 * 
 * 2. Add the JAR file "commons-validator-1.4.0.jar" in the build path of your database. 
 *    If you need help regarding how to add JAR files to your database refer this link 
 *    http://stackoverflow.com/q/14464827/1047998
 * 
 * 3. Copy this Java file in your Code > Java.
 * 
 * 4. Add the below XML code snippet to your faces-config.xml.
 * 
<managed-bean>
<managed-bean-name>validators</managed-bean-name>
<managed-bean-class>uk.co.pipalia.Validators</managed-beanclass>
<managed-bean-scope>view</managed-bean-scope>
</managed-bean>
 * 
 * And you are ready to use Validators for XPages.
 * 
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
 * Field to be validated  * Code  *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
 * Email  validator="#{validators.validateEmail}"
 * IP Address  validator="#{validators.validateIPAddress}"
 * URL  validator="#{validators.validateUrl}"
 * ISBN  validator="#{validators.validateISBN}"
 * Credit Card (Any)  validator="#{validators.validateAnyCreditCard}"
 * Credit Card (AMEX)  validator="#{validators.validateAmexCreditCard}"
 * Credit Card (Diners)  validator="#{validators.validateDinersCreditCard}"
 * Credit Card (Discover)  validator="#{validators.validateDiscoverCreditCard}"
 * Credit Card (Master)  validator="#{validators.validateMasterCardCreditCard}"
 * Credit Card (VISA)  validator="#{validators.validateVisaCreditCard}"
 * 
 * For more refer this: http://www.openntf.org/Projects/pmt.nsf/B7E623839C4CC95786257C11005FD614/%24file/Validators%20for%20XPages.pdf
 * 
 */

import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import org.apache.commons.validator.routines.CreditCardValidator;
import org.apache.commons.validator.routines.EmailValidator;
import org.apache.commons.validator.routines.ISBNValidator;
import org.apache.commons.validator.routines.InetAddressValidator;
import org.apache.commons.validator.routines.UrlValidator;

public class Validators implements Serializable {
private static final long serialVersionUID = 7300894679566868915L;

public void validateEmail(FacesContext facesContext, UIComponent component, Object value) {
EmailValidator emailValidator = EmailValidator.getInstance();
if (!emailValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("Email is invalid.");
throw new ValidatorException(message);
}
}

public void validateIPAddress(FacesContext facesContext, UIComponent component, Object value) {
InetAddressValidator ipValidator = InetAddressValidator.getInstance();
if (!ipValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("IP address is invalid.");
throw new ValidatorException(message);
}
}

public void validateUrl(FacesContext facesContext, UIComponent component, Object value) {
UrlValidator urlValidator = UrlValidator.getInstance();
if (!urlValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("URL is invalid.");
throw new ValidatorException(message);
}
}

public void validateISBN(FacesContext facesContext, UIComponent component, Object value) {
ISBNValidator isbnValidator = ISBNValidator.getInstance();
if (!isbnValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("ISBN is invalid.");
throw new ValidatorException(message);
}
}

public void validateAnyCreditCard(FacesContext facesContext, UIComponent component, Object value) {
CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.AMEX + CreditCardValidator.DINERS + CreditCardValidator.DISCOVER + CreditCardValidator.MASTERCARD + CreditCardValidator.VISA);
if (!ccValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("Credit card number is invalid.");
throw new ValidatorException(message);
}
}

public void validateAmexCreditCard(FacesContext facesContext, UIComponent component, Object value) {
CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.AMEX);
if (!ccValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("American Express credit card number is invalid.");
throw new ValidatorException(message);
}
}

public void validateDinersCreditCard(FacesContext facesContext, UIComponent component, Object value) {
CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.DINERS);
if (!ccValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("Credit card number is invalid.");
throw new ValidatorException(message);
}
}

public void validateDiscoverCreditCard(FacesContext facesContext, UIComponent component, Object value) {
CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.DISCOVER);
if (!ccValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("Discover credit card number is invalid.");
throw new ValidatorException(message);
}
}

public void validateMasterCardCreditCard(FacesContext facesContext, UIComponent component, Object value) {
CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.MASTERCARD + CreditCardValidator.VISA);
if (!ccValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("MasterCard credit card number is invalid.");
throw new ValidatorException(message);
}
}

public void validateVisaCreditCard(FacesContext facesContext, UIComponent component, Object value) {
CreditCardValidator ccValidator = new CreditCardValidator(CreditCardValidator.VISA);
if (!ccValidator.isValid(value.toString())) {
FacesMessage message = new FacesMessage("Visa credit card number is invalid.");
throw new ValidatorException(message);
}
}
}
All code submitted to OpenNTF XSnippets, whether submitted as a "Snippet" or in the body of a Comment, is provided under the Apache License Version 2.0. See Terms of Use for full details.
No comments yetLogin first to comment...