@Override
 public List<AttributeFieldError> validate(AttributeTracer tracer) {
   List<AttributeFieldError> errors = new ArrayList<AttributeFieldError>();
   try {
     if (this.getStatus().equals(Status.INCOMPLETE)) {
       errors.add(new AttributeFieldError(this, FieldError.INVALID, tracer));
     } else {
       IAttributeValidationRules validationRules = this.getValidationRules();
       if (null == validationRules) {
         return errors;
       }
       ILangManager langManager =
           (ILangManager)
               this.getBeanFactory().getBean(SystemConstants.LANGUAGE_MANAGER, ILangManager.class);
       List<AttributeFieldError> validationRulesErrors =
           validationRules.validate(this, tracer, langManager);
       if (null != validationRulesErrors) {
         errors.addAll(validationRulesErrors);
       }
     }
   } catch (Throwable t) {
     ApsSystemUtils.logThrowable(
         t, this, "validate", "Error validating Attribute '" + this.getName() + "'");
     throw new RuntimeException("Error validating Attribute '" + this.getName() + "'", t);
   }
   return errors;
 }