You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ja...@apache.org on 2009/07/06 20:10:16 UTC

svn commit: r791555 - /myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/taglib/core/ValidateRegexTag.java

Author: jankeesvanandel
Date: Mon Jul  6 18:10:15 2009
New Revision: 791555

URL: http://svn.apache.org/viewvc?rev=791555&view=rev
Log:
MYFACES-2098 Added binding property and modified Validator creation to use Application.createValidator()

Modified:
    myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/taglib/core/ValidateRegexTag.java

Modified: myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/taglib/core/ValidateRegexTag.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/taglib/core/ValidateRegexTag.java?rev=791555&r1=791554&r2=791555&view=diff
==============================================================================
--- myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/taglib/core/ValidateRegexTag.java (original)
+++ myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/taglib/core/ValidateRegexTag.java Mon Jul  6 18:10:15 2009
@@ -20,6 +20,7 @@
 
 import javax.el.ELContext;
 import javax.el.ValueExpression;
+import javax.faces.application.Application;
 import javax.faces.context.FacesContext;
 import javax.faces.validator.RegexValidator;
 import javax.faces.validator.Validator;
@@ -38,35 +39,73 @@
 
     private ValueExpression _pattern;
 
+    private ValueExpression _binding;
+
     @Override
     protected Validator createValidator() throws JspException
     {
-        RegexValidator validator = new RegexValidator();
+        FacesContext fc = FacesContext.getCurrentInstance();
+        ELContext elc = fc.getELContext();
+        if (_binding != null)
+        {
+            Object validator;
+            try
+            {
+                validator = _binding.getValue(elc);
+            }
+            catch (Exception e)
+            {
+                throw new JspException("Error while creating the Validator", e);
+            }
+            if (validator instanceof RegexValidator)
+            {
+                return (Validator)validator;
+            }
+        }
         if (null != _pattern)
         {
-            FacesContext fc = FacesContext.getCurrentInstance();
-            ELContext elc = fc.getELContext();
+            Application appl = fc.getApplication();
+            RegexValidator validator = (RegexValidator) appl.createValidator(RegexValidator.VALIDATOR_ID);
             String pattern = (String)_pattern.getValue(elc);
             validator.setPattern(pattern);
+
+            if (_binding != null)
+            {
+                _binding.setValue(elc, validator);
+            }
+
+            return validator;
         }
         else
         {
             throw new AssertionError("pattern may not be null");
         }
-        return validator;
     }
 
-    public ValueExpression getPattern() {
+    public ValueExpression getBinding()
+    {
+        return _binding;
+    }
+
+    public void setBinding(ValueExpression binding)
+    {
+        _binding = binding;
+    }
+
+    public ValueExpression getPattern()
+    {
         return _pattern;
     }
 
-    public void setPattern(ValueExpression pattern) {
-        this._pattern = pattern;
+    public void setPattern(ValueExpression pattern)
+    {
+        _pattern = pattern;
     }
 
     @Override
     public void release()
     {
-        this._pattern = null;
+        _pattern = null;
+        _binding = null;
     }
 }