1
19
20 package com.liferay.taglib.faces.validator;
21
22 import com.liferay.portal.kernel.language.LanguageUtil;
23 import com.liferay.portal.kernel.util.Validator;
24
25 import java.util.Locale;
26
27 import javax.faces.application.FacesMessage;
28 import javax.faces.component.StateHolder;
29 import javax.faces.component.UIComponent;
30 import javax.faces.context.ExternalContext;
31 import javax.faces.context.FacesContext;
32 import javax.faces.validator.ValidatorException;
33
34 import org.apache.commons.validator.EmailValidator;
35
36
42 public class EmailAddressValidator
43 implements StateHolder, javax.faces.validator.Validator {
44
45 public void restoreState(FacesContext facesContext, Object obj) {
46 }
47
48 public Object saveState(FacesContext facesContext) {
49 return null;
50 }
51
52 public void validate(
53 FacesContext facesContext, UIComponent uiComponent, Object obj)
54 throws ValidatorException {
55
56 ExternalContext externalContext = facesContext.getExternalContext();
57
58 Locale locale = externalContext.getRequestLocale();
59
60 if (obj instanceof String) {
61 String emailAddress = (String)obj;
62
63 if (Validator.isNotNull(emailAddress)) {
64 if (!EmailValidator.getInstance().isValid(emailAddress)) {
65 String summary = LanguageUtil.get(
66 locale, "please-enter-a-valid-email-address");
67
68 FacesMessage facesMessage = new FacesMessage(
69 FacesMessage.SEVERITY_ERROR, summary, null);
70
71 throw new ValidatorException(facesMessage);
72 }
73 }
74 }
75 else {
76 String summary = LanguageUtil.format(
77 locale,
78 "validator-expected-type-string,-but-instead-received-type-x",
79 obj.getClass().getName());
80
81 FacesMessage facesMessage = new FacesMessage(
82 FacesMessage.SEVERITY_ERROR, summary, null);
83
84 throw new ValidatorException(facesMessage);
85 }
86 }
87
88 public boolean isTransient() {
89 return _transient;
90 }
91
92 public void setTransient(boolean value) {
93 _transient = value;
94 }
95
96 private boolean _transient;
97
98 }