Skip to content

Commit 0bc5458

Browse files
committed
fix for very strange method names
1 parent af0a10f commit 0bc5458

5 files changed

Lines changed: 39 additions & 24 deletions

File tree

core/src/main/java/net/jbock/compiler/PositionalParamFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private Either<String, ConvertedParameter<PositionalParameter>> checkOnlyOnePosi
5656
}
5757
return Either.ofLeft(alreadyCreated.stream()
5858
.filter(ConvertedParameter::isRepeatable)
59-
.map(p -> "positional parameter " + p.enumName().enumConstant() + " is also repeatable")
59+
.map(p -> "positional parameter " + p.parameter().paramLabel() + " is also repeatable")
6060
.findAny())
6161
.orRight(c);
6262
}
@@ -88,11 +88,11 @@ private Either<String, ConvertedParameter<PositionalParameter>> checkRankConsist
8888
}
8989
if (thisOrder > otherOrder && thisPosition < other.parameter().position()) {
9090
return left("position must be greater than position of " +
91-
other.skew() + " parameter " + other.enumName());
91+
other.skew() + " parameter " + other.parameter().paramLabel());
9292
}
9393
if (thisOrder < otherOrder && thisPosition > other.parameter().position()) {
9494
return left("position must be less than position of " +
95-
other.skew() + " parameter " + other.enumName());
95+
other.skew() + " parameter " + other.parameter().paramLabel());
9696
}
9797
}
9898
return right(c);

core/src/main/java/net/jbock/compiler/view/Impl.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ TypeSpec define() {
4040
TypeSpec.Builder spec = TypeSpec.classBuilder(generatedTypes.implType())
4141
.superclass(sourceElement.typeName());
4242
for (ConvertedParameter<? extends AbstractParameter> c : context.parameters()) {
43-
spec.addField(FieldSpec.builder(c.parameter().returnType(), c.enumConstant()).build());
43+
spec.addField(implField(c));
4444
}
4545
return spec.addModifiers(PRIVATE, STATIC)
4646
.addMethod(implConstructor())
@@ -55,18 +55,23 @@ private MethodSpec parameterMethodOverride(ConvertedParameter<? extends Abstract
5555
return MethodSpec.methodBuilder(param.methodName())
5656
.returns(param.returnType())
5757
.addModifiers(param.getAccessModifiers())
58-
.addStatement("return $N", FieldSpec.builder(param.returnType(), c.enumConstant()).build())
58+
.addStatement("return $N", implField(c))
5959
.build();
6060
}
6161

6262
private MethodSpec implConstructor() {
6363
MethodSpec.Builder spec = MethodSpec.constructorBuilder();
6464
for (ConvertedParameter<? extends AbstractParameter> c : context.parameters()) {
65-
TypeName returnType = c.parameter().returnType();
66-
String name = c.enumConstant();
67-
spec.addStatement("this.$N = $L", FieldSpec.builder(returnType, name).build(), c.extractExpr());
65+
FieldSpec field = implField(c);
66+
spec.addStatement("this.$N = $L", field, c.extractExpr());
6867
spec.addParameter(c.constructorParam());
6968
}
7069
return spec.build();
7170
}
71+
72+
private FieldSpec implField(ConvertedParameter<? extends AbstractParameter> c) {
73+
TypeName fieldType = c.parameter().returnType();
74+
String fieldName = c.enumConstant();
75+
return FieldSpec.builder(fieldType, fieldName).build();
76+
}
7277
}

core/src/main/java/net/jbock/compiler/view/PrintOnlineHelpMethod.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class PrintOnlineHelpMethod extends Cached<MethodSpec> {
3535
private final PrintTokensMethod printTokensMethod;
3636
private final CommonFields commonFields;
3737
private final Elements elements;
38+
private final PrintOptionMethod printOptionMethod;
3839

3940
@Inject
4041
PrintOnlineHelpMethod(
@@ -44,14 +45,16 @@ public class PrintOnlineHelpMethod extends Cached<MethodSpec> {
4445
NamedOptions namedOptions,
4546
PrintTokensMethod printTokensMethod,
4647
CommonFields commonFields,
47-
Elements elements) {
48+
Elements elements,
49+
PrintOptionMethod printOptionMethod) {
4850
this.sourceElement = sourceElement;
4951
this.allParameters = allParameters;
5052
this.positionalParameters = positionalParameters;
5153
this.namedOptions = namedOptions;
5254
this.printTokensMethod = printTokensMethod;
5355
this.commonFields = commonFields;
5456
this.elements = elements;
57+
this.printOptionMethod = printOptionMethod;
5558
}
5659

5760
@Override
@@ -119,27 +122,33 @@ MethodSpec define() {
119122
}
120123

121124
private CodeBlock printNamedOptionCode(String optionsFormat, ConvertedParameter<NamedOption> c) {
125+
String enumConstant = c.enumConstant();
122126
if (allParameters.anyDescriptionKeys()) {
123-
return CodeBlock.builder().addStatement("printOption($T.$L, $S, $S)",
124-
sourceElement.optionType(), c.enumConstant(),
127+
return CodeBlock.builder().addStatement("$N($T.$L, $S, $S)",
128+
printOptionMethod.get(),
129+
sourceElement.optionType(), enumConstant,
125130
String.format(optionsFormat, c.parameter().namesWithLabel(c.isFlag())),
126131
c.parameter().descriptionKey().orElse("")).build();
127132
} else {
128-
return CodeBlock.builder().addStatement("printOption($T.$L, $S)",
129-
sourceElement.optionType(), c.enumConstant(),
133+
return CodeBlock.builder().addStatement("$N($T.$L, $S)",
134+
printOptionMethod.get(),
135+
sourceElement.optionType(), enumConstant,
130136
String.format(optionsFormat, c.parameter().namesWithLabel(c.isFlag()))).build();
131137
}
132138
}
133139

134140
private CodeBlock printPositionalCode(String paramsFormat, ConvertedParameter<PositionalParameter> p) {
141+
String enumConstant = p.enumConstant();
135142
if (allParameters.anyDescriptionKeys()) {
136-
return CodeBlock.builder().addStatement("printOption($T.$L, $S, $S)",
137-
sourceElement.optionType(), p.enumConstant(),
143+
return CodeBlock.builder().addStatement("$N($T.$L, $S, $S)",
144+
printOptionMethod.get(),
145+
sourceElement.optionType(), enumConstant,
138146
String.format(paramsFormat, p.parameter().paramLabel()),
139147
p.parameter().descriptionKey().orElse("")).build();
140148
} else {
141-
return CodeBlock.builder().addStatement("printOption($T.$L, $S)",
142-
sourceElement.optionType(), p.enumConstant(),
149+
return CodeBlock.builder().addStatement("$N($T.$L, $S)",
150+
printOptionMethod.get(),
151+
sourceElement.optionType(), enumConstant,
143152
String.format(paramsFormat, p.parameter().paramLabel())).build();
144153
}
145154
}

core/src/main/java/net/jbock/compiler/view/StatefulParser.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,15 @@ TypeSpec define() {
8282
private MethodSpec privateConstructor() {
8383
CodeBlock.Builder code = CodeBlock.builder();
8484
for (ConvertedParameter<NamedOption> namedOption : namedOptions.options()) {
85+
String enumConstant = namedOption.enumConstant();
8586
for (String dashedName : namedOption.parameter().names()) {
86-
code.addStatement("$N.put($S, $T.$L)", commonFields.optionNames(), dashedName, sourceElement.optionType(),
87-
namedOption.enumConstant());
87+
code.addStatement("$N.put($S, $T.$L)",
88+
commonFields.optionNames(), dashedName, sourceElement.optionType(),
89+
enumConstant);
8890
}
89-
String enumConstant = namedOption.enumConstant();
90-
code.addStatement("$N.put($T.$L, new $T($T.$L))",
91-
commonFields.optionParsers(), sourceElement.optionType(), enumConstant, optionParserType(namedOption),
92-
sourceElement.optionType(), enumConstant);
91+
code.addStatement("$1N.put($2T.$3L, new $4T($2T.$3L))",
92+
commonFields.optionParsers(), sourceElement.optionType(),
93+
enumConstant, optionParserType(namedOption));
9394
}
9495
return MethodSpec.constructorBuilder()
9596
.addCode(code.build())

core/src/test/java/net/jbock/compiler/ProcessorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ void fancyOptionNames() {
377377
" abstract boolean fancy();",
378378
"}");
379379
assertAbout(javaSources()).that(singletonList(javaFile))
380-
.processedWith(new Processor(true))
380+
.processedWith(new Processor())
381381
.compilesWithoutError();
382382
}
383383

0 commit comments

Comments
 (0)