Issue 124: rename Yaml.dumpAs(data) to Yaml.dumpAsMap(data)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c52d470..c09f5db 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -11,7 +11,7 @@
                 Deprecate DumperOptions.explicitRoot (2011-07-20)

             </action>

             <action dev="py4fun" type="add" issue="124">

-                Add Yaml.dumpAs(Object, Tag.MAP, FlowStyle) and Yaml.dumpAs(Object) methods. JavaBeanDumper is marked as deprecated (2011-07-16)

+                Add Yaml.dumpAs(Object, Tag.MAP, FlowStyle) and Yaml.dumpAsMap(Object) methods. JavaBeanDumper is marked as deprecated (2011-07-16)

             </action>

             <action dev="py4fun" type="add" issue="127">

                 Add example to show how to dump a custom class (2011-07-12)

diff --git a/src/main/java/org/yaml/snakeyaml/Yaml.java b/src/main/java/org/yaml/snakeyaml/Yaml.java
index bf616fa..f277f80 100644
--- a/src/main/java/org/yaml/snakeyaml/Yaml.java
+++ b/src/main/java/org/yaml/snakeyaml/Yaml.java
@@ -306,16 +306,21 @@
      * @param rootTag

      *            the tag for the whole YAML document. The tag should be Tag.MAP

      *            for a JavaBean to make the tag disappear (to use implicit tag

-     *            !!map)

+     *            !!map). If <code>null</code> is provided then the standard tag

+     *            with the full class name is used.

      * @param flowStyle

      *            flow style for the whole document. See Chapter 10. Collection

-     *            Styles http://yaml.org/spec/1.1/#id930798

+     *            Styles http://yaml.org/spec/1.1/#id930798. If

+     *            <code>null</code> is provided then the flow style from

+     *            DumperOptions is used.

      * 

      * @return YAML String

      */

     public String dumpAs(Object data, Tag rootTag, FlowStyle flowStyle) {

         FlowStyle oldStyle = representer.getDefaultFlowStyle();

-        representer.setDefaultFlowStyle(flowStyle);

+        if (flowStyle != null) {

+            representer.setDefaultFlowStyle(flowStyle);

+        }

         List<Object> list = new ArrayList<Object>(1);

         list.add(data);

         StringWriter buffer = new StringWriter();

@@ -343,7 +348,7 @@
      *            Java object to be serialized to YAML

      * @return YAML String

      */

-    public String dumpAs(Object data) {

+    public String dumpAsMap(Object data) {

         return dumpAs(data, Tag.MAP, FlowStyle.BLOCK);

     }

 

diff --git a/src/test/java/examples/collections/ListFileldBeanTest.java b/src/test/java/examples/collections/ListFileldBeanTest.java
index a9697ac..c08e854 100644
--- a/src/test/java/examples/collections/ListFileldBeanTest.java
+++ b/src/test/java/examples/collections/ListFileldBeanTest.java
@@ -41,7 +41,7 @@
         bean.developers = developers;

         bean.setName("Bean123");

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/list-bean-1.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/examples/collections/TypeSafeListNoGerericsTest.java b/src/test/java/examples/collections/TypeSafeListNoGerericsTest.java
index 7ca2541..0d6812b 100644
--- a/src/test/java/examples/collections/TypeSafeListNoGerericsTest.java
+++ b/src/test/java/examples/collections/TypeSafeListNoGerericsTest.java
@@ -41,7 +41,7 @@
         developers.add(new Developer("John", "committer"));

         bean.setDevelopers(developers);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/list-bean-4.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/examples/collections/TypeSafeListTest.java b/src/test/java/examples/collections/TypeSafeListTest.java
index 463036f..3092b30 100644
--- a/src/test/java/examples/collections/TypeSafeListTest.java
+++ b/src/test/java/examples/collections/TypeSafeListTest.java
@@ -40,7 +40,7 @@
         developers.add(new Developer("John", "committer"));

         bean.setDevelopers(developers);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/list-bean-1.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/examples/collections/TypeSafeListWithInterfaceTest.java b/src/test/java/examples/collections/TypeSafeListWithInterfaceTest.java
index b4bde40..c43d0de 100644
--- a/src/test/java/examples/collections/TypeSafeListWithInterfaceTest.java
+++ b/src/test/java/examples/collections/TypeSafeListWithInterfaceTest.java
@@ -40,7 +40,7 @@
         developers.add(new Committer("John", "committer", 34));

         bean.setDevelopers(developers);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/list-bean-2.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/examples/collections/TypeSafeMap2Test.java b/src/test/java/examples/collections/TypeSafeMap2Test.java
index efc8e1f..9e50b7a 100644
--- a/src/test/java/examples/collections/TypeSafeMap2Test.java
+++ b/src/test/java/examples/collections/TypeSafeMap2Test.java
@@ -41,7 +41,7 @@
         developers.put(Color.BLACK, new Developer2("John", "committer"));

         bean.setDevelopers(developers);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/map-bean-12.yaml");

         assertEquals(etalon, output);

@@ -60,7 +60,7 @@
         developers.put(Color.BLACK, new Developer2("John", "committer"));

         bean.setDevelopers(developers);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/map-bean-13.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/examples/collections/TypeSafeMapImplementationsTest.java b/src/test/java/examples/collections/TypeSafeMapImplementationsTest.java
index 389064b..39b489c 100644
--- a/src/test/java/examples/collections/TypeSafeMapImplementationsTest.java
+++ b/src/test/java/examples/collections/TypeSafeMapImplementationsTest.java
@@ -43,7 +43,7 @@
         props.setProperty("key2", "value2");

         bean.setProperties(props);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/map-bean-1.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/examples/collections/TypeSafeMapTest.java b/src/test/java/examples/collections/TypeSafeMapTest.java
index f6829dc..d437c5e 100644
--- a/src/test/java/examples/collections/TypeSafeMapTest.java
+++ b/src/test/java/examples/collections/TypeSafeMapTest.java
@@ -41,7 +41,7 @@
         developers.put("team2", new Developer2("John", "committer"));

         bean.setDevelopers(developers);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/map-bean-10.yaml");

         assertEquals(etalon, output);

@@ -59,7 +59,7 @@
         developers.put("team3", new Developer222("Bill", "head"));

         bean.setDevelopers(developers);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/map-bean-11.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/examples/collections/TypeSafeSetImplementationsTest.java b/src/test/java/examples/collections/TypeSafeSetImplementationsTest.java
index 86960b2..aa89a1c 100644
--- a/src/test/java/examples/collections/TypeSafeSetImplementationsTest.java
+++ b/src/test/java/examples/collections/TypeSafeSetImplementationsTest.java
@@ -43,7 +43,7 @@
         developers.add(new Developer("Karl", "user"));

         bean.setDevelopers(developers);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/set-bean-1.yaml");

         assertEquals(etalon, output);

@@ -62,7 +62,7 @@
         developers.add(new SuperDeveloper("Bill", "super"));

         bean.setDevelopers(developers);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         String etalon = Util.getLocalResource("examples/set-bean-6.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/examples/staticstate/StaticFieldsWrapperTest.java b/src/test/java/examples/staticstate/StaticFieldsWrapperTest.java
index 3d9c791..e1bc63b 100644
--- a/src/test/java/examples/staticstate/StaticFieldsWrapperTest.java
+++ b/src/test/java/examples/staticstate/StaticFieldsWrapperTest.java
@@ -87,7 +87,7 @@
         JavaBeanWithStaticState.setType("Type3");

         JavaBeanWithStaticState.color = "Violet";

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(new Wrapper(bean));

+        String output = yaml.dumpAsMap(new Wrapper(bean));

         // System.out.println(output);

         assertEquals("age: -47\ncolor: Violet\nname: Bahrack\ntype: Type3\n", output);

         // parse back to instance

diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java b/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java
index e307b0d..e8287e7 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java
@@ -166,7 +166,7 @@
         bean.setName("Test me.");

         bean3.setBean(bean);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean3);

+        String output = yaml.dumpAsMap(bean3);

         assertEquals("bean:\n  id: 3\n  name: Test me.\nlist: null\nname: Name123\n", output);

         TypeDescription td = new TypeDescription(Bean3.class);

         td.putListPropertyType("list", Integer.class);

@@ -187,7 +187,7 @@
         list.add(17);

         bean3.setList(list);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean3);

+        String output = yaml.dumpAsMap(bean3);

         assertEquals("bean:\n  id: 3\n  name: Test me.\nlist:\n- 13\n- 17\nname: Name123\n", output);

         TypeDescription td = new TypeDescription(Bean3.class);

         td.putListPropertyType("list", Integer.class);

@@ -206,7 +206,7 @@
         bean.setName("Test me.");

         bean3.setBean(bean);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean3);

+        String output = yaml.dumpAsMap(bean3);

         assertEquals("bean:\n  id: 3\n  name: Test me.\nlist: null\nname: Name123\n", output);

         TypeDescription td = new TypeDescription(Bean2.class);

         Yaml loader = new Yaml(new Constructor(td));

diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanTimeStampTest.java b/src/test/java/org/yaml/snakeyaml/JavaBeanTimeStampTest.java
index 173669a..40f9486 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanTimeStampTest.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanTimeStampTest.java
@@ -51,7 +51,7 @@
         Date date = new Date(1001376000000L);

         javaBeanToDump.setDate(date);

         Yaml yaml = new Yaml();

-        String dumpStr = yaml.dumpAs(javaBeanToDump);

+        String dumpStr = yaml.dumpAsMap(javaBeanToDump);

         assertEquals("date: 2001-09-25T00:00:00Z\ntimestamp: 2001-09-09T01:46:40Z\n", dumpStr);

         Yaml loader = new Yaml();

         JavaBeanWithSqlTimestamp javaBeanToLoad = loader.loadAs(dumpStr,

diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValuesTest.java b/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValuesTest.java
index c18f436..1caad90 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValuesTest.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValuesTest.java
@@ -113,7 +113,7 @@
         javaBeanWithNullValues.setString(null); // ok
         javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
 
-        String dumpStr = yaml.dumpAs(javaBeanWithNullValues);
+        String dumpStr = yaml.dumpAsMap(javaBeanWithNullValues);
         // System.out.println(dumpStr);
         assertFalse("No explicit root tag must be used.",
                 dumpStr.contains("JavaBeanWithNullValues"));
diff --git a/src/test/java/org/yaml/snakeyaml/emitter/template/VelocityTest.java b/src/test/java/org/yaml/snakeyaml/emitter/template/VelocityTest.java
index 5eed8cf..252aa57 100644
--- a/src/test/java/org/yaml/snakeyaml/emitter/template/VelocityTest.java
+++ b/src/test/java/org/yaml/snakeyaml/emitter/template/VelocityTest.java
@@ -36,7 +36,7 @@
         DumperOptions options = new DumperOptions();

         options.setAllowReadOnlyProperties(true);

         Yaml yaml = new Yaml(options);

-        String output = yaml.dumpAs(createBean());

+        String output = yaml.dumpAsMap(createBean());

         // System.out.println(output);

         assertEquals(Util.getLocalResource("template/etalon1.yaml"), output);

     }

diff --git a/src/test/java/org/yaml/snakeyaml/generics/BirdTest.java b/src/test/java/org/yaml/snakeyaml/generics/BirdTest.java
index df321c6..5dd77f3 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/BirdTest.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/BirdTest.java
@@ -32,7 +32,7 @@
         home.setHeight(3);

         bird.setHome(home);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bird);

+        String output = yaml.dumpAsMap(bird);

         Bird parsed;

         String javaVendor = System.getProperty("java.vm.name");

         Yaml loader = new Yaml();

diff --git a/src/test/java/org/yaml/snakeyaml/generics/GenericArrayTypeTest.java b/src/test/java/org/yaml/snakeyaml/generics/GenericArrayTypeTest.java
index 63fdd1f..6935f5b 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/GenericArrayTypeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/GenericArrayTypeTest.java
@@ -108,7 +108,7 @@
         bean.setId("ID556677");
         bean.setGa(ga);
         Yaml dumper = new Yaml();
-        String doc = dumper.dumpAs(bean);
+        String doc = dumper.dumpAsMap(bean);
         // System.out.println(doc);
         assertEquals(Util.getLocalResource("javabeans/genericArray-1.yaml"), doc);
         //
diff --git a/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesTest.java b/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesTest.java
index 176671b..2ae9ca4 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesTest.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesTest.java
@@ -46,7 +46,7 @@
         ov.setPossible(props);
 
         Yaml dumper = new Yaml();
-        String dumpedStr = dumper.dumpAs(ov);
+        String dumpedStr = dumper.dumpAsMap(ov);
         Yaml loader = new Yaml();
         ObjectValues ov2 = loader.loadAs(dumpedStr, ObjectValues.class);
 
@@ -76,7 +76,7 @@
         ov.setPossible(props);
 
         Yaml dumper = new Yaml();
-        String dumpedStr = dumper.dumpAs(ov);
+        String dumpedStr = dumper.dumpAsMap(ov);
         Yaml loader = new Yaml();
         ObjectValuesWithParam<String, Integer> ov2 = loader.loadAs(dumpedStr,
                 new ObjectValuesWithParam<String, Integer>().getClass());
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue10/BasicDumpTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue10/BasicDumpTest.java
index bf0a567..a30cd3a 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue10/BasicDumpTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue10/BasicDumpTest.java
@@ -64,7 +64,7 @@
         ds.setDataSources(dataSources);
 
         Yaml yaml = new Yaml();
-        String output = yaml.dumpAs(ds);
+        String output = yaml.dumpAsMap(ds);
 
         String etalon = Util.getLocalResource("javabeans/issue10-2.yaml");
         assertEquals(etalon.trim(), output.trim());
@@ -86,7 +86,7 @@
         ds.setDataSources(dataSources);
 
         Yaml yaml = new Yaml();
-        String output = yaml.dumpAs(ds);
+        String output = yaml.dumpAsMap(ds);
 
         String etalon = Util.getLocalResource("javabeans/issue10-3.yaml");
         assertEquals(etalon.trim(), output.trim());
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue102/BigDataLoadTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue102/BigDataLoadTest.java
index 11976ca..e42a802 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue102/BigDataLoadTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue102/BigDataLoadTest.java
@@ -60,7 +60,7 @@
             bean.setList(list);
             bean.setMap(map);
             beans.add(bean);
-            String ooo = yaml.dumpAs(bean);
+            String ooo = yaml.dumpAsMap(bean);
             String[] lines = ooo.split("\n");
             builder.append("-\n");
             for (int j = 0; j < lines.length; j++) {
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue112/ParameterisedTypeLoadingTestCase.java b/src/test/java/org/yaml/snakeyaml/issues/issue112/ParameterisedTypeLoadingTestCase.java
index ff73452..867c059 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue112/ParameterisedTypeLoadingTestCase.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue112/ParameterisedTypeLoadingTestCase.java
@@ -37,7 +37,7 @@
 
         // dump the object
         Yaml yaml = new Yaml();
-        String output = yaml.dumpAs(obj);
+        String output = yaml.dumpAsMap(obj);
         assertEquals(Util.getLocalResource("issues/issue112-2.yaml"), output);
     }
 
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue124/Bean124.java b/src/test/java/org/yaml/snakeyaml/issues/issue124/Bean124.java
index bdf1283..3ef85c9 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue124/Bean124.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue124/Bean124.java
@@ -15,9 +15,26 @@
  */

 package org.yaml.snakeyaml.issues.issue124;

 

+import java.util.ArrayList;

+import java.util.List;

+

 public class Bean124 {

     private String a;

-    private String b;

+    private List<Integer> numbers;

+

+    public Bean124() {

+        this.a = "aaa";

+        this.numbers = new ArrayList<Integer>(3);

+        numbers.add(1);

+        numbers.add(2);

+        numbers.add(3);

+    }

+

+    public Bean124(String a, List<Integer> numbers) {

+        super();

+        this.a = a;

+        this.numbers = numbers;

+    }

 

     public String getA() {

         return a;

@@ -27,11 +44,11 @@
         this.a = a;

     }

 

-    public String getB() {

-        return b;

+    public List<Integer> getNumbers() {

+        return numbers;

     }

 

-    public void setB(String b) {

-        this.b = b;

+    public void setNumbers(List<Integer> numbers) {

+        this.numbers = numbers;

     }

 }
\ No newline at end of file
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpSideEffectsTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpSideEffectsTest.java
deleted file mode 100644
index 5891a26..0000000
--- a/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpSideEffectsTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Copyright (c) 2008-2011, http://www.snakeyaml.org
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.yaml.snakeyaml.issues.issue124;
-
-import junit.framework.TestCase;
-
-import org.yaml.snakeyaml.Yaml;
-
-public class DumpSideEffectsTest extends TestCase {
-
-    public void testDumperOptionsSideEffect() {
-        Yaml yaml = new Yaml();
-        Bean124 bean = new Bean124();
-        bean.setA("aaa");
-        bean.setB("bbb");
-        String output0 = yaml.dump(bean);
-        // System.out.println(output0);
-        assertEquals("!!org.yaml.snakeyaml.issues.issue124.Bean124 {a: aaa, b: bbb}\n", output0);
-        String output1 = yaml.dumpAs(bean);
-        // System.out.println(output1);
-        assertEquals("a: aaa\nb: bbb\n", output1);
-        String output2 = yaml.dump(bean);
-        // System.out.println(output2);
-        assertEquals("Yaml.dumpAs() should not have any side effects.", output0, output2);
-    }
-}
\ No newline at end of file
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpTest.java
new file mode 100644
index 0000000..2ed1400
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpTest.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2008-2011, http://www.snakeyaml.org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.yaml.snakeyaml.issues.issue124;
+
+import junit.framework.TestCase;
+
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.DumperOptions.FlowStyle;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.nodes.Tag;
+
+public class DumpTest extends TestCase {
+
+    public void testDumperOptionsSideEffect() {
+        Yaml yaml = new Yaml();
+        Bean124 bean = new Bean124();
+        String output0 = yaml.dump(bean);
+        // System.out.println(output0);
+        assertEquals("!!org.yaml.snakeyaml.issues.issue124.Bean124\na: aaa\nnumbers: [1, 2, 3]\n",
+                output0);
+        String output1 = yaml.dumpAsMap(bean);
+        // System.out.println(output1);
+        assertEquals("a: aaa\nnumbers:\n- 1\n- 2\n- 3\n", output1);
+        String output2 = yaml.dump(bean);
+        // System.out.println(output2);
+        assertEquals("Yaml.dumpAs() should not have any side effects.", output0, output2);
+    }
+
+    public void testDumperDifferentTag() {
+        Yaml yaml = new Yaml();
+        Bean124 bean = new Bean124();
+        String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), FlowStyle.BLOCK);
+        assertEquals("!!foo.bar\na: aaa\nnumbers:\n- 1\n- 2\n- 3\n", output1);
+    }
+
+    public void testDumperFlowStyle() {
+        Yaml yaml = new Yaml();
+        Bean124 bean = new Bean124();
+        String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), FlowStyle.FLOW);
+        assertEquals("!!foo.bar {a: aaa, numbers: [1, 2, 3]}\n", output1);
+    }
+
+    public void testDumperAutoStyle() {
+        Yaml yaml = new Yaml();
+        Bean124 bean = new Bean124();
+        String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), FlowStyle.AUTO);
+        assertEquals("!!foo.bar\na: aaa\nnumbers: [1, 2, 3]\n", output1);
+    }
+
+    public void testDumperNullStyle() {
+        Yaml yaml = new Yaml();
+        Bean124 bean = new Bean124();
+        String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), null);
+        assertEquals("!!foo.bar\na: aaa\nnumbers: [1, 2, 3]\n", output1);
+    }
+
+    public void testDumperNullStyle2() {
+        DumperOptions options = new DumperOptions();
+        options.setDefaultFlowStyle(FlowStyle.BLOCK);
+        Yaml yaml = new Yaml(options);
+        Bean124 bean = new Bean124();
+        String output1 = yaml.dumpAs(bean, new Tag("!!foo2.bar2"), null);
+        assertEquals("!!foo2.bar2\na: aaa\nnumbers:\n- 1\n- 2\n- 3\n", output1);
+    }
+
+    public void testDumperNullTag() {
+        Yaml yaml = new Yaml();
+        Bean124 bean = new Bean124();
+        String output1 = yaml.dumpAs(bean, null, FlowStyle.BLOCK);
+        assertEquals(
+                "!!org.yaml.snakeyaml.issues.issue124.Bean124\na: aaa\nnumbers:\n- 1\n- 2\n- 3\n",
+                output1);
+    }
+}
\ No newline at end of file
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBeanTest.java
index cd1faea..2214f1b 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBeanTest.java
@@ -51,7 +51,7 @@
         DogFoodBean input = new DogFoodBean();
         input.setDecimal(new BigDecimal("5.123"));
         Yaml yaml = new Yaml();
-        String text = yaml.dumpAs(input);
+        String text = yaml.dumpAsMap(input);
         // System.out.println(text);
         assertEquals("decimal: 5.123\n", text);
         Yaml loader = new Yaml();
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue47/ReadOnlyPropertiesTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue47/ReadOnlyPropertiesTest.java
index a1df993..693ca83 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue47/ReadOnlyPropertiesTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue47/ReadOnlyPropertiesTest.java
@@ -27,7 +27,7 @@
         IncompleteBean bean = new IncompleteBean();
         bean.setName("lunch");
         Yaml yaml = new Yaml();
-        String output = yaml.dumpAs(bean);
+        String output = yaml.dumpAsMap(bean);
         // System.out.println(output);
         assertEquals("name: lunch\n", output);
         //
@@ -42,7 +42,7 @@
         DumperOptions options = new DumperOptions();
         options.setAllowReadOnlyProperties(true);
         Yaml yaml = new Yaml(options);
-        String output = yaml.dumpAs(bean);
+        String output = yaml.dumpAsMap(bean);
         // System.out.println(output);
         assertEquals("id: 10\nname: lunch\n", output);
         //
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue48/SkipJavaBeanPropertyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue48/SkipJavaBeanPropertyTest.java
index 006c7d5..91dcdab 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue48/SkipJavaBeanPropertyTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue48/SkipJavaBeanPropertyTest.java
@@ -31,7 +31,7 @@
         Bean bean = new Bean();
         bean.setValue(3);
         Yaml yaml = new Yaml();
-        String output = yaml.dumpAs(bean);
+        String output = yaml.dumpAsMap(bean);
         // System.out.println(output);
         assertEquals("name: null\nvalue: 3\n", output);
     }
@@ -40,7 +40,7 @@
         Bean bean = new Bean();
         bean.setValue(5);
         Yaml yaml = new Yaml(new MyRepresenter());
-        String output = yaml.dumpAs(bean);
+        String output = yaml.dumpAsMap(bean);
         // System.out.println(output);
         assertEquals("value: 5\n", output);
     }
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarTest.java
index b665f06..bbcfebb 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarTest.java
@@ -37,7 +37,7 @@
         cal.setTimeZone(TimeZone.getTimeZone("GMT-8:00"));
         bean.setCalendar(cal);
         Yaml yaml = new Yaml();
-        String output = yaml.dumpAs(bean);
+        String output = yaml.dumpAsMap(bean);
         // System.out.println(output);
         assertEquals("calendar: 2001-09-08T17:46:40-8:00\nname: lunch\n", output);
         //
@@ -87,7 +87,7 @@
         cal.setTimeZone(TimeZone.getTimeZone(timeZone));
         bean.setCalendar(cal);
         Yaml yaml = new Yaml();
-        String output = yaml.dumpAs(bean);
+        String output = yaml.dumpAsMap(bean);
         // System.out.println(output);
         assertEquals(warning, "calendar: " + etalon + "\nname: lunch\n", output);
         //
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue55/YamlFieldAccessCollectionTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue55/YamlFieldAccessCollectionTest.java
index 6cd65af..7ff98f7 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue55/YamlFieldAccessCollectionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue55/YamlFieldAccessCollectionTest.java
@@ -31,7 +31,7 @@
     public void testYaml() {
         Blog original = createTestBlog();
         Yaml yamlDumper = constructYamlDumper();
-        String serialized = yamlDumper.dumpAs(original);
+        String serialized = yamlDumper.dumpAsMap(original);
         // System.out.println(serialized);
         assertEquals(Util.getLocalResource("issues/issue55_1.txt"), serialized);
         Yaml blogLoader = new Yaml();
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue58/NullValueDumperTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue58/NullValueDumperTest.java
index f4b23ec..aae0803 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue58/NullValueDumperTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue58/NullValueDumperTest.java
@@ -42,7 +42,7 @@
         foo.bar.add("A");
         foo.bar.add(3.14);
         Yaml yaml = new Yaml();
-        assertEquals("bar:\n- 1\n- A\n- 3.14\n", yaml.dumpAs(foo));
+        assertEquals("bar:\n- 1\n- A\n- 3.14\n", yaml.dumpAsMap(foo));
     }
 
     public void testNullListElement() {
@@ -53,7 +53,7 @@
         foo.bar.add(null);
         foo.bar.add(3.14);
         Yaml yaml = new Yaml();
-        assertEquals("bar:\n- 1\n- A\n- null\n- 3.14\n", yaml.dumpAs(foo));
+        assertEquals("bar:\n- 1\n- A\n- null\n- 3.14\n", yaml.dumpAsMap(foo));
         assertEquals(
                 "!!org.yaml.snakeyaml.issues.issue58.NullValueDumperTest$Foo\nbar: [1, A, null, 3.14]\n",
                 new Yaml().dump(foo));
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericListBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericListBeanTest.java
index 064cfc0..4d12683 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericListBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericListBeanTest.java
@@ -31,7 +31,7 @@
         ListProvider<String> listProvider = new ListProvider<String>();

         listProvider.getList().add("foo");

         listProvider.getList().add("bar");

-        String s = yaml.dumpAs(listProvider);

+        String s = yaml.dumpAsMap(listProvider);

         // System.out.println(s);

         assertEquals("list:\n- foo\n- bar\n", s);

         // parse

@@ -53,7 +53,7 @@
         bar.setName("bar");

         bar.setNumber(3);

         listProvider.getList().add(bar);

-        String s = yaml.dumpAs(listProvider);

+        String s = yaml.dumpAsMap(listProvider);

         // System.out.println(s);

         String etalon = Util.getLocalResource("issues/issue61-1.yaml");

         assertEquals(etalon, s);

diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericMapBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericMapBeanTest.java
index 4c45c7f..b8f6840 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericMapBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericMapBeanTest.java
@@ -31,7 +31,7 @@
         MapProvider<String, Integer> listProvider = new MapProvider<String, Integer>();

         listProvider.getMap().put("foo", 17);

         listProvider.getMap().put("bar", 19);

-        String s = yaml.dumpAs(listProvider);

+        String s = yaml.dumpAsMap(listProvider);

         // System.out.println(s);

         assertEquals("map:\n  foo: 17\n  bar: 19\n", s);

         // parse

@@ -53,7 +53,7 @@
         bar.setName("bar");

         bar.setNumber(3);

         listProvider.getMap().put("bar", bar);

-        String s = yaml.dumpAs(listProvider);

+        String s = yaml.dumpAsMap(listProvider);

         // System.out.println(s);

         String etalon = Util.getLocalResource("issues/issue61-2.yaml");

         assertEquals(etalon, s);

diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue72/CollectionTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue72/CollectionTest.java
index 92fbc2b..3980bd4 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue72/CollectionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue72/CollectionTest.java
@@ -29,7 +29,7 @@
     public void testCollectionList() {

         CollectionList bean = new CollectionList();

         Yaml yaml = new Yaml();

-        String doc = yaml.dumpAs(bean);

+        String doc = yaml.dumpAsMap(bean);

         // System.out.println(doc);

         Yaml beanLoader = new Yaml();

         CollectionList parsed = beanLoader.loadAs(doc, CollectionList.class);

@@ -59,7 +59,7 @@
     public void testCollectionSet() {

         CollectionSet bean = new CollectionSet();

         Yaml yaml = new Yaml();

-        String doc = yaml.dumpAs(bean);

+        String doc = yaml.dumpAsMap(bean);

         // System.out.println(doc);

         Yaml beanLoader = new Yaml();

         CollectionSet parsed = beanLoader.loadAs(doc, CollectionSet.class);

diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue74/ArrayBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue74/ArrayBeanTest.java
index 7054fd7..e7558c6 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue74/ArrayBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue74/ArrayBeanTest.java
@@ -42,7 +42,7 @@
         list.add(new ArrayMember("Tony", 222));

         bean.setList(list);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(bean);

+        String output = yaml.dumpAsMap(bean);

         // System.out.println(output);

         assertEquals(Util.getLocalResource("issues/issue74-array1.txt"), output);

         Yaml beanLoader = new Yaml();

diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue82/PropOrderInfluenceWhenAliasedInGenericCollectionTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue82/PropOrderInfluenceWhenAliasedInGenericCollectionTest.java
index 71fdb15..cf203df 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue82/PropOrderInfluenceWhenAliasedInGenericCollectionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue82/PropOrderInfluenceWhenAliasedInGenericCollectionTest.java
@@ -239,7 +239,7 @@
         customerAB.bGeneral = general;
 
         Yaml yaml = new Yaml();
-        String dump2 = yaml.dumpAs(customerAB);
+        String dump2 = yaml.dumpAsMap(customerAB);
         // System.out.println(dump2);
         Yaml loader = new Yaml();
         CustomerAB parsed = loader.loadAs(dump2, CustomerAB.class);
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/HouseTest.java b/src/test/java/org/yaml/snakeyaml/javabeans/HouseTest.java
index 3817c8a..6a4fa5e 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/HouseTest.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/HouseTest.java
@@ -50,7 +50,7 @@
         house.setNumber(1);

         house.setStreet("Wall Street");

         Yaml beanDumper = new Yaml();

-        String yaml = beanDumper.dumpAs(house);

+        String yaml = beanDumper.dumpAsMap(house);

         String etalon = Util.getLocalResource("javabeans/house-dump1.yaml");

         assertEquals(etalon, yaml);

         // load

@@ -59,7 +59,7 @@
         assertNotNull(loadedHouse);

         assertEquals("Wall Street", loadedHouse.getStreet());

         // dump again

-        String yaml3 = beanDumper.dumpAs(loadedHouse);

+        String yaml3 = beanDumper.dumpAsMap(loadedHouse);

         assertEquals(yaml, yaml3);

     }

 

@@ -82,7 +82,7 @@
         house.setNumber(1);

         house.setStreet("Wall Street");

         Yaml beanDumper = new Yaml();

-        String yaml = beanDumper.dumpAs(house);

+        String yaml = beanDumper.dumpAsMap(house);

         String etalon = Util.getLocalResource("javabeans/house-dump3.yaml");

         assertEquals(etalon, yaml);

         // load

@@ -105,7 +105,7 @@
         List<Room> loadedRooms = loadedHouse.getRooms();

         assertEquals(rooms, loadedRooms);

         // dump again

-        String yaml3 = beanDumper.dumpAs(loadedHouse);

+        String yaml3 = beanDumper.dumpAsMap(loadedHouse);

         assertEquals(yaml, yaml3);

     }

 

diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBeanTest.java b/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBeanTest.java
index 822f0b3..e3f0157 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBeanTest.java
@@ -29,7 +29,7 @@
         bean.setShape(triangle);

         bean.setName("Bean25");

         Yaml beanDumper = new Yaml();

-        String output = beanDumper.dumpAs(bean);

+        String output = beanDumper.dumpAsMap(bean);

         assertEquals(

                 "name: Bean25\nshape: !!org.yaml.snakeyaml.javabeans.Triangle\n  name: Triangle25\n",

                 output);

diff --git a/src/test/java/org/yaml/snakeyaml/recursive/HumanTest.java b/src/test/java/org/yaml/snakeyaml/recursive/HumanTest.java
index c3926f8..bf7456e 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/HumanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/HumanTest.java
@@ -131,7 +131,7 @@
         mother.setChildren(children);

         //

         Yaml beanDumper = new Yaml();

-        String output = beanDumper.dumpAs(son);

+        String output = beanDumper.dumpAsMap(son);

         // System.out.println(output);

         String etalon = Util.getLocalResource("recursive/with-children.yaml");

         assertEquals(etalon, output);

@@ -626,7 +626,7 @@
         mother.setChildren(children);

         //

         Yaml beanDumper = new Yaml();

-        String output = beanDumper.dumpAs(son);

+        String output = beanDumper.dumpAsMap(son);

         // System.out.println(output);

         String etalon = Util.getLocalResource("recursive/with-children-no-root-tag.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/org/yaml/snakeyaml/recursive/Human_WithArrayOfChildrenTest.java b/src/test/java/org/yaml/snakeyaml/recursive/Human_WithArrayOfChildrenTest.java
index 3ecd62b..e437f84 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/Human_WithArrayOfChildrenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/Human_WithArrayOfChildrenTest.java
@@ -164,7 +164,7 @@
     public void testDumpChildrenArrayWithoutRootTag() throws IOException {

         Yaml yaml = new Yaml();

         Human_WithArrayOfChildren son = createSon();

-        String output = yaml.dumpAs(son);

+        String output = yaml.dumpAsMap(son);

         // System.out.println(output);

         String etalon = Util.getLocalResource("recursive/with-childrenArray-no-root-tag.yaml");

         assertEquals(etalon, output);

diff --git a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java
index 89a06dc..eee7910 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java
@@ -91,7 +91,7 @@
         mother.setPartner(father);

         mother.setBankAccountOwner(father);

         Yaml yaml = new Yaml();

-        String output = yaml.dumpAs(father);

+        String output = yaml.dumpAsMap(father);

         String etalon = Util.getLocalResource("recursive/generics/no-children-2.yaml");

         assertEquals(etalon, output);

         //

diff --git a/src/test/java/org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java b/src/test/java/org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java
index dd40fb6..f898143 100644
--- a/src/test/java/org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java
+++ b/src/test/java/org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java
@@ -33,7 +33,7 @@
         bean.setNumber(24);

         bean.setId("ID124");

         Yaml d = new Yaml();

-        String dump = d.dumpAs(bean);

+        String dump = d.dumpAsMap(bean);

         // System.out.println(dump);

         assertEquals("id: ID124\nnumber: 24\n", dump);

     }

@@ -43,7 +43,7 @@
         bean.setNumber(25);

         bean.setId("ID125");

         Yaml yaml = new Yaml(new MyRepresenter());

-        String dump = yaml.dumpAs(bean);

+        String dump = yaml.dumpAsMap(bean);

         // System.out.println(dump);

         assertEquals("number: 25\n", dump);

     }

diff --git a/src/test/java/org/yaml/snakeyaml/ruby/RubyTest.java b/src/test/java/org/yaml/snakeyaml/ruby/RubyTest.java
index 46bd048..4f19a80 100644
--- a/src/test/java/org/yaml/snakeyaml/ruby/RubyTest.java
+++ b/src/test/java/org/yaml/snakeyaml/ruby/RubyTest.java
@@ -42,7 +42,7 @@
         DumperOptions options = new DumperOptions();

         options.setExplicitStart(true);

         Yaml yaml2 = new Yaml(options);

-        String output = yaml2.dumpAs(result);

+        String output = yaml2.dumpAsMap(result);

         assertFalse("No tags expected.", output.contains("Sub1"));

         // System.out.println(output);

         // parse back. Without tags it shall still work

diff --git a/src/test/java/org/yaml/snakeyaml/stress/StressEmitterTest.java b/src/test/java/org/yaml/snakeyaml/stress/StressEmitterTest.java
index 927fa9e..0351fab 100644
--- a/src/test/java/org/yaml/snakeyaml/stress/StressEmitterTest.java
+++ b/src/test/java/org/yaml/snakeyaml/stress/StressEmitterTest.java
@@ -42,7 +42,7 @@
                 Invoice.class);

         Yaml dumper = new Yaml();

         long time1 = System.nanoTime();

-        dumper.dumpAs(invoice);

+        dumper.dumpAsMap(invoice);

         long time2 = System.nanoTime();

         float duration = (time2 - time1) / 1000000;

         System.out.println("\nSingle dump was " + duration + " ms.");

@@ -68,7 +68,7 @@
             time1 = System.nanoTime();

             for (int i = 0; i < number; i++) {

                 dumper = new Yaml();

-                dumper.dumpAs(invoice);

+                dumper.dumpAsMap(invoice);

             }

             time2 = System.nanoTime();

             duration = ((time2 - time1) / 1000000) / (float) number;