aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/examples/SelectiveConstructorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/examples/SelectiveConstructorTest.java')
-rw-r--r--src/test/java/examples/SelectiveConstructorTest.java135
1 files changed, 68 insertions, 67 deletions
diff --git a/src/test/java/examples/SelectiveConstructorTest.java b/src/test/java/examples/SelectiveConstructorTest.java
index 1117d469..1a68ff1e 100644
--- a/src/test/java/examples/SelectiveConstructorTest.java
+++ b/src/test/java/examples/SelectiveConstructorTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * 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
+ * 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
+ * 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.
+ * 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 examples;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.nodes.MappingNode;
@@ -29,73 +25,78 @@ import org.yaml.snakeyaml.nodes.NodeId;
* Example for http://code.google.com/p/snakeyaml/wiki/howto
*/
public class SelectiveConstructorTest extends TestCase {
- class SelectiveConstructor extends Constructor {
- public SelectiveConstructor() {
- // define a custom way to create a mapping node
- yamlClassConstructors.put(NodeId.mapping, new MyPersistentObjectConstruct());
- }
- class MyPersistentObjectConstruct extends Constructor.ConstructMapping {
- @Override
- protected Object constructJavaBean2ndStep(MappingNode node, Object object) {
- Class<?> type = node.getType();
- if (type.equals(MyPersistentObject.class)) {
- // create a map
- Map<Object, Object> map = constructMapping(node);
- String id = (String) map.get("id");
- return new MyPersistentObject(id, 17);
- } else {
- // create JavaBean
- return super.constructJavaBean2ndStep(node, object);
- }
- }
- }
+ class SelectiveConstructor extends Constructor {
+
+ public SelectiveConstructor() {
+ // define a custom way to create a mapping node
+ yamlClassConstructors.put(NodeId.mapping, new MyPersistentObjectConstruct());
}
- public void testConstructor() {
- Yaml yaml = new Yaml(new SelectiveConstructor());
- List<?> data = (List<?>) yaml
- .load("- 1\n- 2\n- !!examples.MyPersistentObject {amount: 222, id: persistent}");
- // System.out.println(data);
- assertEquals(3, data.size());
- MyPersistentObject myObject = (MyPersistentObject) data.get(2);
- assertEquals(17, myObject.getAmount());
- assertEquals("persistent", myObject.getId());
+ class MyPersistentObjectConstruct extends Constructor.ConstructMapping {
+
+ @Override
+ protected Object constructJavaBean2ndStep(MappingNode node, Object object) {
+ Class<?> type = node.getType();
+ if (type.equals(MyPersistentObject.class)) {
+ // create a map
+ Map<Object, Object> map = constructMapping(node);
+ String id = (String) map.get("id");
+ return new MyPersistentObject(id, 17);
+ } else {
+ // create JavaBean
+ return super.constructJavaBean2ndStep(node, object);
+ }
+ }
}
+ }
+
+ public void testConstructor() {
+ Yaml yaml = new Yaml(new SelectiveConstructor());
+ List<?> data =
+ yaml.load("- 1\n- 2\n- !!examples.MyPersistentObject {amount: 222, id: persistent}");
+ // System.out.println(data);
+ assertEquals(3, data.size());
+ MyPersistentObject myObject = (MyPersistentObject) data.get(2);
+ assertEquals(17, myObject.getAmount());
+ assertEquals("persistent", myObject.getId());
+ }
}
+
class MyPersistentObject {
- private String id;
- private int amount;
- public MyPersistentObject() {
- this.id = "noid";
- this.amount = 222;
- }
+ private String id;
+ private int amount;
- public MyPersistentObject(String id, int amount) {
- this.id = id;
- this.amount = amount;
- }
+ public MyPersistentObject() {
+ this.id = "noid";
+ this.amount = 222;
+ }
- public String getId() {
- return id;
- }
+ public MyPersistentObject(String id, int amount) {
+ this.id = id;
+ this.amount = amount;
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
- public int getAmount() {
- return amount;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setAmount(int amount) {
- this.amount = amount;
- }
+ public int getAmount() {
+ return amount;
+ }
- @Override
- public String toString() {
- return "MyPersistentObject [id=" + id + ", amount=" + amount + "]";
- }
+ public void setAmount(int amount) {
+ this.amount = amount;
+ }
+
+ @Override
+ public String toString() {
+ return "MyPersistentObject [id=" + id + ", amount=" + amount + "]";
+ }
}