1 package com.lexicalscope.jewel.cli;
2
3 import java.util.List;
4
5 import com.lexicalscope.fluentreflection.FluentMethod;
6 import com.lexicalscope.jewel.cli.specification.OptionSpecification;
7 import com.lexicalscope.jewel.cli.specification.SpecificationMultiplicity;
8
9 class UnexpectedOptionSpecification implements OptionSpecification
10 {
11 private final String m_name;
12
13 UnexpectedOptionSpecification(final String name)
14 {
15 m_name = name;
16 }
17
18 @Override public String getCanonicalIdentifier() {
19 return m_name;
20 }
21
22 @Override public Class<?> getType()
23 {
24 return Void.class;
25 }
26
27 @Override public boolean isMultiValued()
28 {
29 return false;
30 }
31
32 @Override public boolean isOptional()
33 {
34 return false;
35 }
36
37 @Override public FluentMethod getMethod() {
38 return null;
39 }
40
41 @Override public FluentMethod getOptionalityMethod() {
42 return null;
43 }
44
45 @Override public List<String> getDefaultValue() {
46 return null;
47 }
48
49 @Override public boolean hasDefaultValue() {
50 return false;
51 }
52
53 @Override public boolean isHidden() {
54 return false;
55 }
56
57 @Override public String getDescription() {
58 return "";
59 }
60
61 @Override public boolean allowedThisManyValues(final int count) {
62 return false;
63 }
64
65 @Override public String toString()
66 {
67 final StringBuilder result = new StringBuilder();
68 result.append(m_name);
69 return result.toString();
70 }
71
72 @Override public boolean hasValue() {
73 return false;
74 }
75
76 @Override public boolean hasExactCount() {
77 return false;
78 }
79
80 @Override public int exactly() {
81 return 0;
82 }
83
84 @Override public int minimum() {
85 return 0;
86 }
87
88 @Override public int maximum() {
89 return 0;
90 }
91
92 @Override public <T> T compareCountToSpecification(
93 final int valueCount,
94 final SpecificationMultiplicity<T> specificationMultiplicity) {
95 return specificationMultiplicity.allowed();
96 }
97
98 @Override public int maximumArgumentConsumption() {
99 return 0;
100 }
101 }