No BitSet in LoaderOptions. It should be just a JavaBean
diff --git a/src/main/java/org/yaml/snakeyaml/LoaderOptions.java b/src/main/java/org/yaml/snakeyaml/LoaderOptions.java
index 4ab6c12..edf2ce7 100644
--- a/src/main/java/org/yaml/snakeyaml/LoaderOptions.java
+++ b/src/main/java/org/yaml/snakeyaml/LoaderOptions.java
@@ -16,52 +16,43 @@
package org.yaml.snakeyaml;
-import java.util.BitSet;
-
public class LoaderOptions {
- private final BitSet set;
+ /**
+ * Store context with a Mark to have a better error message. Loader works
+ * 40% slower and it consumes much more memory (default=false)
+ */
+ private boolean withMarkContext = false;
+ private ImplicitMode implicitMode = ImplicitMode.ALWAYS_IMPLICIT_TYPES;
- public enum Mode {
+ public enum ImplicitMode {
/**
- * Store context with a Mark to have a better error message. Loader
- * works 40% slower and it consumes much more memory (default=false)
+ * Disable implicit types when JavaBean is loaded (default).
*/
- CONTEXT_MARK(0),
+ DYNAMIC_IMPLICIT_TYPES,
/**
- * Disable implicit types when JavaBean is loaded (default=true). When
- * this is present then USE_IMPLICIT_TYPES is ignored.
+ * Enable this when JavaBean has a property which is a generic
+ * collections like Map<String, Integer>
*/
- DYNAMIC_IMPLICIT_TYPES(1),
+ ALWAYS_IMPLICIT_TYPES,
/**
- * When DYNAMIC_IMPLICIT_TYPES is 'false' defines whether to apply the
- * regular expressions. When implicit types are not used all the scalars
- * are Strings. Enable this when JavaBean has a property which is a
- * generic collections like Map<String, Integer>
+ * When implicit types are not used all the scalars are Strings.
*/
- USE_IMPLICIT_TYPES(2),
- /**
- * Enable compact format for JavaBeans
- */
- COMPACT_FORMAT(3);
-
- private final int index;
-
- private Mode(int index) {
- this.index = index;
- }
+ NEVER_IMPLICIT_TYPES;
}
- public LoaderOptions() {
- set = new BitSet(5);
- set.set(Mode.CONTEXT_MARK.index, false);
- set.set(Mode.DYNAMIC_IMPLICIT_TYPES.index, true);
+ public boolean isWithMarkContext() {
+ return withMarkContext;
}
- public void setMode(Mode mode, boolean value) {
- set.set(mode.index, value);
+ public void setWithMarkContext(boolean useContextMark) {
+ this.withMarkContext = useContextMark;
}
- public boolean hasMode(Mode mode) {
- return set.get(mode.index);
+ public ImplicitMode getImplicitMode() {
+ return implicitMode;
+ }
+
+ public void setImplicitMode(ImplicitMode implicitMode) {
+ this.implicitMode = implicitMode;
}
}
diff --git a/src/main/java/org/yaml/snakeyaml/Yaml.java b/src/main/java/org/yaml/snakeyaml/Yaml.java
index 996157b..2a6cc31 100644
--- a/src/main/java/org/yaml/snakeyaml/Yaml.java
+++ b/src/main/java/org/yaml/snakeyaml/Yaml.java
@@ -288,7 +288,7 @@
*/
public Object load(Reader io) {
Composer composer = new Composer(new ParserImpl(new StreamReader(io, loaderOptions
- .hasMode(LoaderOptions.Mode.CONTEXT_MARK))), resolver);
+ .isWithMarkContext())), resolver);
constructor.setComposer(composer);
return constructor.getSingleData();
}
@@ -304,7 +304,7 @@
*/
public Iterable<Object> loadAll(Reader yaml) {
Composer composer = new Composer(new ParserImpl(new StreamReader(yaml, loaderOptions
- .hasMode(LoaderOptions.Mode.CONTEXT_MARK))), resolver);
+ .isWithMarkContext())), resolver);
constructor.setComposer(composer);
Iterator<Object> result = new Iterator<Object>() {
public boolean hasNext() {
@@ -371,7 +371,7 @@
*/
public Node compose(Reader yaml) {
Composer composer = new Composer(new ParserImpl(new StreamReader(yaml, loaderOptions
- .hasMode(LoaderOptions.Mode.CONTEXT_MARK))), resolver);
+ .isWithMarkContext())), resolver);
constructor.setComposer(composer);
return composer.getSingleNode();
}
@@ -386,7 +386,7 @@
*/
public Iterable<Node> composeAll(Reader yaml) {
final Composer composer = new Composer(new ParserImpl(new StreamReader(yaml, loaderOptions
- .hasMode(LoaderOptions.Mode.CONTEXT_MARK))), resolver);
+ .isWithMarkContext())), resolver);
constructor.setComposer(composer);
Iterator<Node> result = new Iterator<Node>() {
public boolean hasNext() {
@@ -485,7 +485,7 @@
*/
public Iterable<Event> parse(Reader yaml) {
final Parser parser = new ParserImpl(new StreamReader(yaml, loaderOptions
- .hasMode(LoaderOptions.Mode.CONTEXT_MARK)));
+ .isWithMarkContext()));
Iterator<Event> result = new Iterator<Event>() {
public boolean hasNext() {
return parser.peekEvent() != null;
diff --git a/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java b/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java
index b12e0cd..f722395 100644
--- a/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java
@@ -22,9 +22,8 @@
public void testGetMode() {
LoaderOptions defaultOptions = new LoaderOptions();
- assertTrue(defaultOptions.hasMode(LoaderOptions.Mode.DYNAMIC_IMPLICIT_TYPES));
- assertFalse(defaultOptions.hasMode(LoaderOptions.Mode.CONTEXT_MARK));
- assertFalse(defaultOptions.hasMode(LoaderOptions.Mode.USE_IMPLICIT_TYPES));
- assertFalse(defaultOptions.hasMode(LoaderOptions.Mode.COMPACT_FORMAT));
+ assertFalse(defaultOptions.isWithMarkContext());
+ assertEquals(LoaderOptions.ImplicitMode.ALWAYS_IMPLICIT_TYPES, defaultOptions
+ .getImplicitMode());
}
}
diff --git a/src/test/java/org/yaml/snakeyaml/LoaderTest.java b/src/test/java/org/yaml/snakeyaml/LoaderTest.java
index 1c1ead7..6178fc9 100644
--- a/src/test/java/org/yaml/snakeyaml/LoaderTest.java
+++ b/src/test/java/org/yaml/snakeyaml/LoaderTest.java
@@ -54,7 +54,7 @@
public void testCompose2() {
LoaderOptions options = new LoaderOptions();
- options.setMode(LoaderOptions.Mode.CONTEXT_MARK, true);
+ options.setWithMarkContext(true);
Yaml loader = new Yaml(options);
String yaml = "3";
ScalarNode node = (ScalarNode) loader.compose(new StringReader(yaml));
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
index 523eed8..0554869 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
@@ -59,7 +59,7 @@
public void testLoadInvalidPatternTooShort() {
try {
LoaderOptions options = new LoaderOptions();
- options.setMode(LoaderOptions.Mode.CONTEXT_MARK, true);
+ options.setWithMarkContext(true);
Yaml yaml = new Yaml(options);
yaml.load(PREFIX + "Acad%9%A9mico {id: 3, name: Foo bar}");
fail("Illegal hex characters in escape (%) pattern must not be accepted.");
@@ -74,7 +74,7 @@
public void testLoadInvalidUtf8() {
try {
LoaderOptions options = new LoaderOptions();
- options.setMode(LoaderOptions.Mode.CONTEXT_MARK, true);
+ options.setWithMarkContext(true);
Yaml yaml = new Yaml(options);
yaml.load(PREFIX + "Acad%C0mico {id: 3, name: Foo bar}");
fail("Illegal UTF-8 must not be accepted.");