just check_valid_value if the attr_is_required
wreis [Thu, 28 Feb 2008 20:32:48 +0000 (20:32 +0000)]
lib/Reaction/InterfaceModel/Action.pm

index 0c17b4e..e6b06da 100644 (file)
@@ -61,17 +61,17 @@ class Action which {
   implements error_for_attribute => as {
     my ($self, $attr) = @_;
     if ($self->attribute_is_required($attr)) {
+      if ($attr->has_valid_values) {
+        my $reader = $attr->get_read_method;
+        unless ($attr->check_valid_value($self, $self->$reader)) {
+          return "Not a valid value for ".$attr->name;
+        }
+      }
       my $predicate = $attr->predicate;
       unless ($self->$predicate) {
         return $attr->name." is required";
       }
     }
-    if ($attr->has_valid_values) {
-      my $reader = $attr->get_read_method;
-      unless ($attr->check_valid_value($self, $self->$reader)) {
-        return "Not a valid value for ".$attr->name;
-      }
-    }
     return; # ok
   };