1
2
3
4
5
6
7 package com.varmateo.yawg.cli;
8
9
10
11
12
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 }