diff options
author | Andrey Somov <public.somov@gmail.com> | 2022-09-09 10:34:56 +0300 |
---|---|---|
committer | Andrey Somov <public.somov@gmail.com> | 2022-09-09 10:34:56 +0300 |
commit | fe5400676b29bdba1aaf9f7477f2f5ef7f46f80c (patch) | |
tree | 969a7c085713cd2878d47b5de95cad15c5111375 | |
parent | 5e56066540d72a4e2aae7d918f92406686076ceb (diff) | |
download | snakeyaml-fe5400676b29bdba1aaf9f7477f2f5ef7f46f80c.tar.gz |
Refactor setting to parse comments to use LoaderOptions
4 files changed, 20 insertions, 22 deletions
diff --git a/src/main/java/org/yaml/snakeyaml/LoaderOptions.java b/src/main/java/org/yaml/snakeyaml/LoaderOptions.java index bcb97135..9625bb2f 100644 --- a/src/main/java/org/yaml/snakeyaml/LoaderOptions.java +++ b/src/main/java/org/yaml/snakeyaml/LoaderOptions.java @@ -25,7 +25,7 @@ public class LoaderOptions { private int nestingDepthLimit = 50; private int codePointLimit = 100 * 1024; - public boolean isAllowDuplicateKeys() { + public final boolean isAllowDuplicateKeys() { return allowDuplicateKeys; } @@ -47,7 +47,7 @@ public class LoaderOptions { this.allowDuplicateKeys = allowDuplicateKeys; } - public boolean isWrappedToRootException() { + public final boolean isWrappedToRootException() { return wrappedToRootException; } @@ -62,7 +62,7 @@ public class LoaderOptions { this.wrappedToRootException = wrappedToRootException; } - public int getMaxAliasesForCollections() { + public final int getMaxAliasesForCollections() { return maxAliasesForCollections; } @@ -87,7 +87,7 @@ public class LoaderOptions { this.allowRecursiveKeys = allowRecursiveKeys; } - public boolean getAllowRecursiveKeys() { + public final boolean getAllowRecursiveKeys() { return allowRecursiveKeys; } @@ -96,15 +96,16 @@ public class LoaderOptions { * * @param processComments <code>true</code> to process; <code>false</code> to ignore */ - public void setProcessComments(boolean processComments) { + public LoaderOptions setProcessComments(boolean processComments) { this.processComments = processComments; + return this; } - public boolean isProcessComments() { + public final boolean isProcessComments() { return processComments; } - public boolean isEnumCaseSensitive() { + public final boolean isEnumCaseSensitive() { return enumCaseSensitive; } @@ -118,7 +119,7 @@ public class LoaderOptions { this.enumCaseSensitive = enumCaseSensitive; } - public int getNestingDepthLimit() { + public final int getNestingDepthLimit() { return nestingDepthLimit; } @@ -132,7 +133,7 @@ public class LoaderOptions { this.nestingDepthLimit = nestingDepthLimit; } - public int getCodePointLimit() { + public final int getCodePointLimit() { return codePointLimit; } diff --git a/src/main/java/org/yaml/snakeyaml/parser/ParserImpl.java b/src/main/java/org/yaml/snakeyaml/parser/ParserImpl.java index 3a8eac28..7c66434f 100644 --- a/src/main/java/org/yaml/snakeyaml/parser/ParserImpl.java +++ b/src/main/java/org/yaml/snakeyaml/parser/ParserImpl.java @@ -138,7 +138,7 @@ public class ParserImpl implements Parser { @Deprecated public ParserImpl(StreamReader reader, boolean parseComments) { - this(new ScannerImpl(reader).setParseComments(parseComments)); + this(new ScannerImpl(reader, new LoaderOptions().setProcessComments(parseComments))); } public ParserImpl(StreamReader reader, LoaderOptions options) { diff --git a/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java b/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java index 86059f73..e810de85 100644 --- a/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java +++ b/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java @@ -179,6 +179,7 @@ public final class ScannerImpl implements Scanner { // A flag that indicates if comments should be parsed private boolean parseComments; + private final LoaderOptions loaderOptions; // Variables related to simple keys treatment. See PyYAML. @@ -220,7 +221,7 @@ public final class ScannerImpl implements Scanner { } public ScannerImpl(StreamReader reader, LoaderOptions options) { - this.parseComments = false; + this.parseComments = options.isProcessComments(); this.reader = reader; this.tokens = new ArrayList<Token>(100); this.indents = new ArrayStack<Integer>(10); @@ -231,15 +232,18 @@ public final class ScannerImpl implements Scanner { } /** + * Please use LoaderOptions instead * Set the scanner to ignore comments or parse them as a <code>CommentToken</code>. * * @param parseComments <code>true</code> to parse; <code>false</code> to ignore */ + @Deprecated public ScannerImpl setParseComments(boolean parseComments) { this.parseComments = parseComments; return this; } + @Deprecated public boolean isParseComments() { return parseComments; } diff --git a/src/test/java/org/yaml/snakeyaml/comment/ScannerWithCommentEnabledTest.java b/src/test/java/org/yaml/snakeyaml/comment/ScannerWithCommentEnabledTest.java index 16b7c629..def86e38 100644 --- a/src/test/java/org/yaml/snakeyaml/comment/ScannerWithCommentEnabledTest.java +++ b/src/test/java/org/yaml/snakeyaml/comment/ScannerWithCommentEnabledTest.java @@ -23,6 +23,7 @@ import java.util.Arrays; import java.util.Iterator; import java.util.List; import org.junit.Test; +import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.reader.StreamReader; import org.yaml.snakeyaml.scanner.Scanner; import org.yaml.snakeyaml.scanner.ScannerImpl; @@ -81,17 +82,9 @@ public class ScannerWithCommentEnabledTest { } private Scanner constructScanner(String input) { - return new ScannerImpl(new StreamReader(new StringReader(input))).setParseComments(true); - } - - @Test - public void testParseComments() { - ScannerImpl sutWithOutComments = - new ScannerImpl(new StreamReader(new StringReader(""))).setParseComments(false); - assertFalse(sutWithOutComments.isParseComments()); - ScannerImpl sutWithComments = - new ScannerImpl(new StreamReader(new StringReader(""))).setParseComments(true); - assertTrue(sutWithComments.isParseComments()); + LoaderOptions options = new LoaderOptions(); + options.setProcessComments(true); + return new ScannerImpl(new StreamReader(new StringReader(input)), options); } @Test |