Skip to content

Commit ff52902

Browse files
committed
java: Make package private classes final
Aside from being good practice, extensibility if not designed for should be prohibited, this will help isolate some of the effects of #445.
1 parent 9f8ecdd commit ff52902

19 files changed

+24
-24
lines changed

java/gherkin-java.razor

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ import static java.util.Arrays.asList;
4343
* <p>
4444
* Changes to this class will be lost if the code is regenerated.
4545
*/
46-
class @Model.ParserClassName<T> {
46+
final class @Model.ParserClassName<T> {
4747
enum TokenType {
4848
None(RuleType.None),
4949
@foreach(var rule in Model.RuleSet.TokenRules)
@@ -67,7 +67,7 @@ class @Model.ParserClassName<T> {
6767

6868
private final Builder<T> builder;
6969

70-
static class ParserContext {
70+
static final class ParserContext {
7171
final TokenScanner tokenScanner;
7272
final TokenMatcher tokenMatcher;
7373
final Queue<Token> tokenQueue;

java/src/main/java/io/cucumber/gherkin/AstNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import static io.cucumber.gherkin.Parser.TokenType;
1111
import static java.util.Objects.requireNonNull;
1212

13-
class AstNode {
13+
final class AstNode {
1414
// subItems is relatively sparse, so pre-initializing all values with empty
1515
// lists is not efficient
1616
private final Map<RuleType, List<Object>> subItems = new EnumMap<>(RuleType.class);

java/src/main/java/io/cucumber/gherkin/EncodingParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
/**
1414
* Parser for the {@code # encoding: <encoding> } pragma.
1515
*/
16-
class EncodingParser {
16+
final class EncodingParser {
1717
private static final byte[] UTF_BOM_BYTES = "\uFEFF".getBytes(UTF_8);
1818
private static final Pattern COMMENT_OR_EMPTY_LINE_PATTERN = Pattern.compile("^\\s*#|^\\s*$");
1919
private static final Pattern ENCODING_PATTERN = Pattern.compile("^\\s*#\\s*encoding\\s*:\\s*([0-9a-zA-Z\\-]+)",

java/src/main/java/io/cucumber/gherkin/GherkinDocumentBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import static io.cucumber.gherkin.Parser.RuleType;
3030
import static io.cucumber.gherkin.Parser.TokenType;
3131

32-
class GherkinDocumentBuilder implements Builder<GherkinDocument> {
32+
final class GherkinDocumentBuilder implements Builder<GherkinDocument> {
3333
private final List<Comment> comments = new ArrayList<>();
3434
private final IdGenerator idGenerator;
3535
private String uri;

java/src/main/java/io/cucumber/gherkin/GherkinException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.cucumber.gherkin;
22

3-
class GherkinException extends RuntimeException {
3+
final class GherkinException extends RuntimeException {
44
GherkinException(String message, Throwable cause) {
55
super(message, cause);
66
}

java/src/main/java/io/cucumber/gherkin/GherkinLine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import static io.cucumber.gherkin.StringUtils.trimAndIndent;
55
import static java.util.Objects.requireNonNull;
66

7-
class GherkinLine {
7+
final class GherkinLine {
88

99
/**
1010
* The line text, including all leading and trailing whitespace characters.

java/src/main/java/io/cucumber/gherkin/GherkinLineSpan.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.cucumber.gherkin;
22

3-
class GherkinLineSpan {
3+
final class GherkinLineSpan {
44
/**
55
* Index-1 based position in codepoints.
66
*/

java/src/main/java/io/cucumber/gherkin/GherkinParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public final class GherkinParser {
4343
*/
4444
static final int FEATURE_FILE_AVERAGE_SIZE = FEATURE_FILE_AVERAGE_LINE_LENGTH * FEATURE_FILE_AVERAGE_LINE_COUNT;
4545

46-
public final static class Builder {
46+
public static final class Builder {
4747
private boolean includeSource = true;
4848
private boolean includeGherkinDocument = true;
4949
private boolean includePickles = true;

java/src/main/java/io/cucumber/gherkin/GherkinTokenMatcher.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import static io.cucumber.gherkin.Locations.atColumn;
1818
import static io.cucumber.gherkin.Parser.TokenType;
1919

20-
class GherkinTokenMatcher implements TokenMatcher {
20+
final class GherkinTokenMatcher implements TokenMatcher {
2121

2222
private static final Pattern LANGUAGE_PATTERN = Pattern.compile("^#\\s*language\\s*:\\s*([a-zA-Z\\-_]+)\\s*$");
2323
private final GherkinDialectProvider dialectProvider;

java/src/main/java/io/cucumber/gherkin/InputStreams.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import java.io.IOException;
55
import java.io.InputStream;
66

7-
class InputStreams {
7+
final class InputStreams {
88

99
/**
1010
* Shim for InputStream.readAllBytes

0 commit comments

Comments
 (0)