View Javadoc
1   /**************************************************************************
2    *
3    * Copyright (c) 2015-2019 Yawg project contributors.
4    *
5    **************************************************************************/
6   
7   package com.varmateo.yawg.cli;
8   
9   
10  /**
11   * An exception signaling an occurrence intended to be communicated to
12   * the end user.
13   */
14  public final class CliException
15          extends Exception {
16  
17  
18      /**
19       *
20       */
21      private CliException(final String msg) {
22  
23          super(msg);
24      }
25  
26  
27      /**
28       *
29       */
30      private CliException(
31              final String msg,
32              final Throwable cause) {
33  
34          super(msg, cause);
35      }
36  
37  
38      /**
39       *
40       */
41      public static CliException bakeFailure(final Throwable cause) {
42  
43          final String msg = String.format("Baking failed - %s", cause.getMessage());
44  
45          return new CliException(msg, cause);
46      }
47  
48  
49      /**
50       *
51       */
52      public static CliException unknownOption(final String optionName) {
53  
54          final String msg = String.format("Unknown option \"%s\"", optionName);
55  
56          return new CliException(msg);
57      }
58  
59  
60      /**
61       *
62       */
63      public static CliException missingOption(final String optionName) {
64  
65          final String msg = String.format("Missing mandatory option %s", optionName);
66  
67          return new CliException(msg);
68      }
69  
70  
71      /**
72       *
73       */
74      public static CliException missingOptionArg(final String optionName) {
75  
76          final String msg = String.format("Argument for option %s is missing", optionName);
77  
78          return new CliException(msg);
79      }
80  
81  
82      /**
83       *
84       */
85      public static CliException optionParseFailure(final Throwable cause) {
86  
87          final String msg = String.format(
88                  "Failed to parse options - %s", cause.getClass().getName());
89  
90          return new CliException(msg, cause);
91      }
92  
93  
94      /**
95       *
96       */
97      public static CliException invalidPath(
98              final String optionName,
99              final String path) {
100 
101         final String msg = String.format(
102                 "Value of option %s is an invalid path (%s)", optionName, path);
103 
104         return new CliException(msg);
105     }
106 
107 
108 }