Coverage Report - com.lexicalscope.jewel.cli.ArgumentValidationException
 
Classes in this File Line Coverage Branch Coverage Complexity
ArgumentValidationException
55%
16/29
100%
2/2
1.091
 
 1  
 package com.lexicalscope.jewel.cli;
 2  
 
 3  
 import static java.util.Arrays.asList;
 4  
 
 5  
 import java.util.ArrayList;
 6  
 import java.util.List;
 7  
 import java.util.Locale;
 8  
 import java.util.ResourceBundle;
 9  
 
 10  
 import com.lexicalscope.jewel.JewelRuntimeException;
 11  
 
 12  
 /**
 13  
  * The arguments are not valid
 14  
  * 
 15  
  * @author tim
 16  
  */
 17  
 public class ArgumentValidationException extends JewelRuntimeException
 18  
 {
 19  
     private static final long serialVersionUID = -4781861924515211053L;
 20  2
     static final ResourceBundle m_messages = ResourceBundle.getBundle(
 21  
             "com.lexicalscope.jewel.cli.Messages",
 22  
             Locale.getDefault());
 23  
 
 24  
     private final List<ValidationFailure> validationFailures;
 25  
 
 26  
     public ArgumentValidationException() {
 27  0
         this(new ArrayList<ValidationFailure>());
 28  0
     }
 29  
 
 30  
     public ArgumentValidationException(final String message, final Throwable cause) {
 31  0
         this(message, cause, new ArrayList<ValidationFailure>());
 32  0
     }
 33  
 
 34  
     public ArgumentValidationException(final String message) {
 35  0
         this(message, new ArrayList<ValidationFailure>());
 36  0
     }
 37  
 
 38  
     public ArgumentValidationException(final Throwable cause) {
 39  0
         this(cause, new ArrayList<ValidationFailure>());
 40  0
     }
 41  
 
 42  
     public ArgumentValidationException(final ValidationFailure validationError)
 43  
     {
 44  6
         this(asList(validationError));
 45  6
     }
 46  
 
 47  
     public ArgumentValidationException(final List<ValidationFailure> validationFailures)
 48  
     {
 49  78
         this(createMessageFromErrors(validationFailures), validationFailures);
 50  78
     }
 51  
 
 52  
     public ArgumentValidationException(
 53  
             final String message,
 54  
             final Throwable cause,
 55  
             final List<ValidationFailure> validationFailures) {
 56  0
         super(message, cause);
 57  0
         this.validationFailures = validationFailures;
 58  0
     }
 59  
 
 60  
     public ArgumentValidationException(final String message, final List<ValidationFailure> validationFailures) {
 61  82
         super(message);
 62  82
         this.validationFailures = validationFailures;
 63  82
     }
 64  
 
 65  
     public ArgumentValidationException(final Throwable cause, final List<ValidationFailure> validationFailures) {
 66  0
         this(createMessageFromErrors(validationFailures), cause, validationFailures);
 67  0
     }
 68  
 
 69  
     public List<ValidationFailure> getValidationFailures()
 70  
     {
 71  66
         return validationFailures;
 72  
     }
 73  
 
 74  
     private static String createMessageFromErrors(final List<ValidationFailure> validationFailures) {
 75  78
         final StringBuilder message = new StringBuilder();
 76  
 
 77  78
         String separator = "";
 78  78
         for (final ValidationFailure error : validationFailures)
 79  
         {
 80  80
             message.append(separator).append(error.getMessage());
 81  80
             separator = System.getProperty("line.separator");
 82  80
         }
 83  78
         return message.toString();
 84  
     }
 85  
 }