You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by rd...@apache.org on 2011/02/01 14:00:00 UTC

svn commit: r1066037 - in /myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main: java/org/apache/myfaces/extensions/validator/crossval/annotation/ java/org/apache/myfaces/extensions/validator/crossval...

Author: rdebusscher
Date: Tue Feb  1 12:59:59 2011
New Revision: 1066037

URL: http://svn.apache.org/viewvc?rev=1066037&view=rev
Log:
EXTVAL-124, EXTVAL-125, EXTVAL-126

Modified:
    myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java
    myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java
    myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java
    myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties

Modified: myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java?rev=1066037&r1=1066036&r2=1066037&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java Tue Feb  1 12:59:59 2011
@@ -57,9 +57,15 @@ public @interface DateIs
 
     String notAfterErrorMsgKey() default "wrong_date_not_after";
 
+    String notBeforeOrSameErrorMsgKey() default "wrong_date_not_before_or_same";
+
+    String notAfterOrSameErrorMsgKey() default "wrong_date_not_after_or_same";
+
     String notEqualErrorMsgKey() default "wrong_date_not_equal";
 
     int errorMessageDateStyle() default DateFormat.MEDIUM;
 
+    String errorMessageDatePattern() default "";
+
     Class<? extends ValidationParameter>[] parameters() default ViolationSeverity.Error.class;
 }

Modified: myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java?rev=1066037&r1=1066036&r2=1066037&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java Tue Feb  1 12:59:59 2011
@@ -18,8 +18,6 @@
  */
 package org.apache.myfaces.extensions.validator.crossval.annotation;
 
-import org.apache.myfaces.extensions.validator.internal.ToDo;
-import org.apache.myfaces.extensions.validator.internal.Priority;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 
@@ -27,9 +25,8 @@ import org.apache.myfaces.extensions.val
  * @author Gerhard Petracek
  * @since 1.x.1
  */
-@ToDo(value = Priority.MEDIUM, description = "beforeOrSame, afterOrSame")
 @UsageInformation(UsageCategory.API)
 public enum DateIsType
 {
-    before, after, same
+    before, after, same, beforeOrSame, afterOrSame
 }

Modified: myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java?rev=1066037&r1=1066036&r2=1066037&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java Tue Feb  1 12:59:59 2011
@@ -19,7 +19,6 @@
 package org.apache.myfaces.extensions.validator.crossval.strategy;
 
 import org.apache.myfaces.extensions.validator.crossval.annotation.DateIs;
-import org.apache.myfaces.extensions.validator.crossval.annotation.DateIsType;
 import org.apache.myfaces.extensions.validator.crossval.annotation.MessageTarget;
 import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -27,6 +26,7 @@ import org.apache.myfaces.extensions.val
 
 import javax.faces.context.FacesContext;
 import java.text.DateFormat;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.MissingResourceException;
 import java.util.logging.Level;
@@ -41,6 +41,8 @@ public class DateIsStrategy extends Abst
 {
     protected static final String TOO_EARLY = "early";
     protected static final String TOO_LATE = "late";
+    protected static final String TOO_EARLY_SAME = "earlyNotSame";
+    protected static final String TOO_LATE_SAME = "lateNotSame";
     protected static final String NOT_EQUAL_DATE_TIME = "not equal";
     protected static final String RESULT_KEY = "result";
     protected static final String COMPARED_VALUE_KEY = "target value";
@@ -53,36 +55,55 @@ public class DateIsStrategy extends Abst
 
     public boolean isViolation(Object object1, Object object2, DateIs annotation)
     {
-        boolean violationFound;
-
-        if (annotation.type().equals(DateIsType.same))
+        boolean violationFound = false;
+        switch (annotation.type())
         {
-            violationFound = object1 != null && !object1.equals(object2);
-
-            if (violationFound)
-            {
-                this.violationResultStorage.put(RESULT_KEY, NOT_EQUAL_DATE_TIME);
-            }
-        }
-        else if (annotation.type().equals(DateIsType.before))
-        {
-            violationFound = object1 != null && object2 != null &&
-                            (!new Date(((Date) object1).getTime()).before((Date) object2) || object1.equals(object2));
-
-            if (violationFound)
-            {
-                this.violationResultStorage.put(RESULT_KEY, TOO_LATE);
-            }
-        }
-        else
-        {
-            violationFound = object1 != null && object2 != null &&
-                            (!new Date(((Date) object1).getTime()).after((Date) object2) || object1.equals(object2));
-
-            if (violationFound)
-            {
-                this.violationResultStorage.put(RESULT_KEY, TOO_EARLY);
-            }
+            case before:
+                violationFound = object1 != null && object2 != null &&
+                              (!new Date(((Date) object1).getTime()).before((Date) object2) || object1.equals(object2));
+
+                if (violationFound)
+                {
+                    this.violationResultStorage.put(RESULT_KEY, TOO_LATE);
+                }
+                break;
+            case after:
+                violationFound = object1 != null && object2 != null &&
+                               (!new Date(((Date) object1).getTime()).after((Date) object2) || object1.equals(object2));
+
+                if (violationFound)
+                {
+                    this.violationResultStorage.put(RESULT_KEY, TOO_EARLY);
+                }
+                break;
+            case same:
+                violationFound = object1 != null && !object1.equals(object2);
+
+                if (violationFound)
+                {
+                    this.violationResultStorage.put(RESULT_KEY, NOT_EQUAL_DATE_TIME);
+                }
+                break;
+            case beforeOrSame:
+                violationFound = object1 != null && object2 != null &&
+                                new Date(((Date) object1).getTime()).after((Date) object2);
+
+                if (violationFound)
+                {
+                    this.violationResultStorage.put(RESULT_KEY, TOO_LATE_SAME);
+                }
+                break;
+            case afterOrSame:
+                violationFound = object1 != null && object2 != null &&
+                                new Date(((Date) object1).getTime()).before((Date) object2);
+
+                if (violationFound)
+                {
+                    this.violationResultStorage.put(RESULT_KEY, TOO_EARLY_SAME);
+                }
+                break;
+            default:
+                // Nothing to do.
         }
 
         if (violationFound)
@@ -115,10 +136,18 @@ public class DateIsStrategy extends Abst
         {
             return getNotAfterErrorMsgKey(annotation);
         }
+        else if (TOO_EARLY_SAME.equals(result))
+        {
+            return getNotAfterOrSameErrorMsgKey(annotation);
+        }
         else if (TOO_LATE.equals(result))
         {
             return getNotBeforeErrorMsgKey(annotation);
         }
+        else if (TOO_LATE_SAME.equals(result))
+        {
+            return getNotBeforeOrSameErrorMsgKey(annotation);
+        }
         else
         {
             return getNotEqualErrorMsgKey(annotation);
@@ -127,35 +156,47 @@ public class DateIsStrategy extends Abst
 
     private String reverseResult(String result)
     {
+
         if (TOO_EARLY.equals(result))
         {
             return TOO_LATE;
         }
-        else
+        else if (TOO_EARLY_SAME.equals(result))
+        {
+            return TOO_LATE_SAME;
+        }
+        else if (TOO_LATE_SAME.equals(result))
+        {
+            return TOO_EARLY_SAME;
+        }
+        else if (TOO_LATE.equals(result))
         {
             return TOO_EARLY;
         }
+        return result;
     }
 
     @Override
     protected String getErrorMessageSummary(DateIs annotation, boolean isTargetComponent)
     {
+        /*
         if (!isTargetComponent)
         {
             return super.getErrorMessageSummary(annotation, isTargetComponent);
         }
-
+        */
         return getErrorMessage(getValidationErrorMsgKey(annotation, isTargetComponent), annotation, isTargetComponent);
     }
 
     @Override
     protected String getErrorMessageDetail(DateIs annotation, boolean isTargetComponent)
     {
+        /*
         if (!isTargetComponent)
         {
             return super.getErrorMessageDetail(annotation, isTargetComponent);
         }
-
+        */
         try
         {
             return getErrorMessage(getValidationErrorMsgKey(annotation, isTargetComponent)
@@ -195,8 +236,8 @@ public class DateIsStrategy extends Abst
     {
         String message = resolveMessage(key);
 
-        DateFormat dateFormat = DateFormat.getDateInstance(annotation.errorMessageDateStyle(),
-            FacesContext.getCurrentInstance().getViewRoot().getLocale());
+        DateFormat dateFormat = getDateFormat(annotation.errorMessageDateStyle(),
+                annotation.errorMessageDatePattern());
 
         String result;
 
@@ -215,6 +256,15 @@ public class DateIsStrategy extends Abst
         return result;
     }
 
+    private DateFormat getDateFormat(int dateStyle, String datePattern)
+    {
+        if (datePattern == null || datePattern.length() == 0)
+        {
+            return DateFormat.getDateInstance(dateStyle, FacesContext.getCurrentInstance().getViewRoot().getLocale());
+        }
+        return new SimpleDateFormat(datePattern, FacesContext.getCurrentInstance().getViewRoot().getLocale());
+    }
+
     /*
      * private
      */
@@ -227,6 +277,15 @@ public class DateIsStrategy extends Abst
         return annotation.validationErrorMsgKey();
     }
 
+    private String getNotAfterOrSameErrorMsgKey(DateIs annotation)
+    {
+        if (annotation.validationErrorMsgKey().equals(""))
+        {
+            return annotation.notAfterOrSameErrorMsgKey();
+        }
+        return annotation.validationErrorMsgKey();
+    }
+
     private String getNotBeforeErrorMsgKey(DateIs annotation)
     {
         if (annotation.validationErrorMsgKey().equals(""))
@@ -236,6 +295,15 @@ public class DateIsStrategy extends Abst
         return annotation.validationErrorMsgKey();
     }
 
+    private String getNotBeforeOrSameErrorMsgKey(DateIs annotation)
+    {
+        if (annotation.validationErrorMsgKey().equals(""))
+        {
+            return annotation.notBeforeOrSameErrorMsgKey();
+        }
+        return annotation.validationErrorMsgKey();
+    }
+
     private String getNotEqualErrorMsgKey(DateIs annotation)
     {
         if (annotation.validationErrorMsgKey().equals(""))

Modified: myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties?rev=1066037&r1=1066036&r2=1066037&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_2_0/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties Tue Feb  1 12:59:59 2011
@@ -27,8 +27,14 @@ wrong_date_detail=Wrong date
 wrong_date_not_before=Date has to be after {0}
 wrong_date_not_before_detail=Date has to be after {0}
 
+wrong_date_not_before_or_same=Date has to be after or equals to {0}
+wrong_date_not_before_or_same_detail=Date has to be after or equals to {0}
+
 wrong_date_not_after=Date has to be before {0}
 wrong_date_not_after_detail=Date has to be before {0}
 
+wrong_date_not_after_or_same=Date has to be before or equals to {0}
+wrong_date_not_after_or_same_detail=Date has to be before or equals to {0}
+
 wrong_date_not_equal=Date isn't equal to {0}
 wrong_date_not_equal_detail=Date isn't equal to {0}
\ No newline at end of file