code: public void executeValidation (@Nonnull final IValidationSource aSource,
                                   @Nonnull final ValidationResultList aValidationResults,
                                   @Nullable final Locale aLocale)
    {
      ValueEnforcer.notNull (aSource, "Source");
      ValueEnforcer.notNull (aValidationResults, "ValidationResults");
  
      boolean bIgnoreRest = false;
      for (final IValidationExecutor aExecutor : getAllExecutors ())
      {
        if (bIgnoreRest)
        {
          // Ignore executor because of previous failures
          aValidationResults.add (ValidationResult.createIgnoredResult (aExecutor.getValidationArtefact ()));
        }
        else
        {
          // Find the matching class loader
          ClassLoader aValidationCL = aExecutor.getValidationArtefact ().getClassLoader ();
          if (aValidationCL == null)
          {
            // Use the global one as fallback, if none is defined in the
            // validation artefact
            aValidationCL = getClassLoader ();
          }
  
          // Execute validation
          final ValidationResult aResult = aExecutor.applyValidation (aSource, aLocale);
          assert aResult != null;
          aValidationResults.add (aResult);
  
          if (aResult.isFailure () && aExecutor.getValidationType ().isStopValidationOnError ())
          {
            // Ignore all following executors
            bIgnoreRest = true;
          }
        }
      }
    }
docs: Perform a validation with all the contained executors.
  
  @param aSource
  The source artefact to be validated. May not be <code>null</code>.
  @param aValidationResults
  The result list to be filled. May not be <code>null</code>. Note:
  this list is NOT altered before start. For each contained executor a
  result is added to the result list.
  @param aLocale
  Custom locale to use e.g. for error messages. May be
  <code>null</code> to use the system default locale.
  @see #executeValidation(IValidationSource, Locale)