Skip to content

Commit a2d0d11

Browse files
committed
refactoring / rename parser classes
1 parent e2551cb commit a2d0d11

File tree

13 files changed

+61
-60
lines changed

13 files changed

+61
-60
lines changed

compiler/src/main/java/net/jbock/writing/CreateModelMethod.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,13 @@ final class CreateModelMethod extends HasCommandRepresentation {
3737
code.add(CodeBlock.of(".addDescriptionLine($S)", descriptionLine));
3838
}
3939
code.add(CodeBlock.of(".withProgramName($S)", sourceElement().programName()));
40-
if (sourceElement().isSuperCommand()) {
40+
if (isSuperCommand()) {
4141
code.add(CodeBlock.of(".withSuperCommand($L)", true));
4242
}
4343
for (Mapping<AnnotatedOption> c : namedOptions()) {
4444
code.add(CodeBlock.of(".addOption($L)", optionBlock(c)));
4545
}
46-
Stream.of(positionalParameters(), varargsParameters())
47-
.flatMap(List::stream)
46+
Stream.concat(positionalParameters().stream(), varargsParameter().stream())
4847
.forEach(c -> code.add(CodeBlock.of(".addParameter($L)", parameterBlock(c))));
4948
code.add(CodeBlock.of(".build()"));
5049
return methodBuilder("createModel")

compiler/src/main/java/net/jbock/writing/GeneratedAnnotation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import javax.annotation.processing.Generated;
99

10-
class GeneratedAnnotation {
10+
final class GeneratedAnnotation {
1111

1212
@Inject
1313
GeneratedAnnotation() {

compiler/src/main/java/net/jbock/writing/GeneratedTypes.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import static net.jbock.common.Constants.EITHER;
1313

1414
@WritingScope
15-
class GeneratedTypes extends HasCommandRepresentation {
15+
final class GeneratedTypes extends HasCommandRepresentation {
1616

1717
@Inject
1818
GeneratedTypes(CommandRepresentation commandRepresentation) {
@@ -24,7 +24,7 @@ TypeName parseSuccessType() {
2424
}
2525

2626
Optional<TypeName> superResultType() {
27-
if (!sourceElement().isSuperCommand()) {
27+
if (!isSuperCommand()) {
2828
return Optional.empty();
2929
}
3030
ParameterizedTypeName type = ParameterizedTypeName.get(

compiler/src/main/java/net/jbock/writing/HasCommandRepresentation.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import net.jbock.processor.SourceElement;
1010

1111
import java.util.List;
12+
import java.util.Optional;
1213

1314
abstract class HasCommandRepresentation {
1415

@@ -38,11 +39,15 @@ final List<Mapping<AnnotatedParameter>> positionalParameters() {
3839
return commandRepresentation.positionalParameters();
3940
}
4041

41-
final List<Mapping<AnnotatedVarargsParameter>> varargsParameters() {
42-
return commandRepresentation.varargsParameters();
42+
final Optional<Mapping<AnnotatedVarargsParameter>> varargsParameter() {
43+
return commandRepresentation.varargsParameters().stream().findAny();
4344
}
4445

45-
List<Mapping<?>> allMappings() {
46+
final List<Mapping<?>> allMappings() {
4647
return commandRepresentation.allMappings();
4748
}
49+
50+
final boolean isSuperCommand() {
51+
return commandRepresentation.sourceElement().isSuperCommand();
52+
}
4853
}

compiler/src/main/java/net/jbock/writing/ImplClass.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,10 @@
3333
import static net.jbock.writing.CodeBlocks.joinByNewline;
3434

3535
/**
36-
* Defines the *_Impl class, which extends the command class.
37-
*
38-
* @see ParserClass
36+
* Implementation of the command class.
3937
*/
4038
@WritingScope
41-
public class ImplClass extends HasCommandRepresentation {
39+
final class ImplClass extends HasCommandRepresentation {
4240

4341
private final GeneratedTypes generatedTypes;
4442

@@ -49,7 +47,7 @@ public class ImplClass extends HasCommandRepresentation {
4947
this.generatedTypes = generatedTypes;
5048
}
5149

52-
public TypeSpec define() {
50+
TypeSpec define() {
5351
TypeSpec.Builder spec = TypeSpec.classBuilder(generatedTypes.implType());
5452
if (sourceElement().isInterface()) {
5553
spec.addSuperinterface(sourceElement().typeName());
@@ -97,9 +95,8 @@ private MethodSpec constructor() {
9795
Mapping<AnnotatedParameter> m = positionalParameters().get(i);
9896
spec.addStatement("this.$N = $L", m.field(), convertExpressionParameter(m, i));
9997
}
100-
varargsParameters().forEach(m -> {
101-
spec.addStatement("this.$N = $L", m.field(), convertExpressionVarargsParameter(m));
102-
});
98+
varargsParameter().ifPresent(m ->
99+
spec.addStatement("this.$N = $L", m.field(), convertExpressionVarargsParameter(m)));
103100
return spec.addParameter(result())
104101
.addException(ExFailure.class)
105102
.build();

compiler/src/main/java/net/jbock/writing/OptEnum.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* @see ParserClass
1414
*/
1515
@WritingScope
16-
class OptEnum extends HasCommandRepresentation {
16+
final class OptEnum extends HasCommandRepresentation {
1717

1818
@Inject
1919
OptEnum(CommandRepresentation commandRepresentation) {

compiler/src/main/java/net/jbock/writing/ParseOrExitMethod.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import static net.jbock.common.Constants.STRING_ARRAY;
1414

1515
@WritingScope
16-
class ParseOrExitMethod extends HasCommandRepresentation {
16+
final class ParseOrExitMethod extends HasCommandRepresentation {
1717

1818
private final GeneratedTypes generatedTypes;
1919
private final ParseMethod parseMethod;

compiler/src/main/java/net/jbock/writing/ParserClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* Generates the *Parser class.
1010
*/
1111
@WritingScope
12-
public final class ParserClass extends HasCommandRepresentation {
12+
final class ParserClass extends HasCommandRepresentation {
1313

1414
private final ParseMethod parseMethod;
1515
private final OptEnum optionEnum;

compiler/src/main/java/net/jbock/writing/ParserTypeFactory.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import io.jbock.javapoet.CodeBlock;
55
import io.jbock.javapoet.ParameterizedTypeName;
66
import jakarta.inject.Inject;
7-
import net.jbock.parse.RestParser;
8-
import net.jbock.parse.RestlessParser;
7+
import net.jbock.parse.VarargsParameterParser;
8+
import net.jbock.parse.StandardParser;
99
import net.jbock.parse.SuperParser;
1010

1111
import java.util.Map;
@@ -34,23 +34,23 @@ final class ParserTypeFactory extends HasCommandRepresentation {
3434
CodeBlock.of("$T.of()", Map.class) :
3535
CodeBlock.of("$N()", optionStatesMethod().get());
3636
int numParams = positionalParameters().size();
37-
if (sourceElement().isSuperCommand()) {
37+
if (isSuperCommand()) {
3838
ClassName parserClass = ClassName.get(SuperParser.class);
3939
CodeBlock init = CodeBlock.of("$T.create($L, $L, $L)",
4040
ClassName.get(SuperParser.class),
4141
optionNames, optionStates, numParams);
4242
return new ParserType(ParameterizedTypeName.get(parserClass, optType()), init);
4343
}
44-
if (!varargsParameters().isEmpty()) {
45-
ClassName parserClass = ClassName.get(RestParser.class);
44+
if (varargsParameter().isPresent()) {
45+
ClassName parserClass = ClassName.get(VarargsParameterParser.class);
4646
CodeBlock init = CodeBlock.of("$T.create($L, $L, $L)",
47-
ClassName.get(RestParser.class),
47+
ClassName.get(VarargsParameterParser.class),
4848
optionNames, optionStates, numParams);
4949
return new ParserType(ParameterizedTypeName.get(parserClass, optType()), init);
5050
}
51-
ClassName parserClass = ClassName.get(RestlessParser.class);
51+
ClassName parserClass = ClassName.get(StandardParser.class);
5252
CodeBlock init = CodeBlock.of("$T.create($L, $L, $L)",
53-
ClassName.get(RestlessParser.class),
53+
ClassName.get(StandardParser.class),
5454
optionNames, optionStates, numParams);
5555
return new ParserType(ParameterizedTypeName.get(parserClass, optType()), init);
5656
});

jbock/src/main/java/net/jbock/parse/RestlessParser.java renamed to jbock/src/main/java/net/jbock/parse/StandardParser.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
*
1717
* @param <T> type of keys that identify named options
1818
*/
19-
public final class RestlessParser<T> extends SubParser<T> {
19+
public final class StandardParser<T> extends SubParser<T> {
2020

21-
private RestlessParser(
21+
private StandardParser(
2222
Map<String, T> optionNames,
2323
Map<T, OptionState> optionStates,
2424
int numParams) {
@@ -35,11 +35,11 @@ private RestlessParser(
3535
*
3636
* @return a parser instance
3737
*/
38-
public static <T> RestlessParser<T> create(
38+
public static <T> StandardParser<T> create(
3939
Map<String, T> optionNames,
4040
Map<T, OptionState> optionStates,
4141
int numParams) {
42-
return new RestlessParser<>(optionNames, optionStates, numParams);
42+
return new StandardParser<>(optionNames, optionStates, numParams);
4343
}
4444

4545
@Override

0 commit comments

Comments
 (0)