package org.simpleframework.xml.strategy; import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.simpleframework.xml.Default; import org.simpleframework.xml.Root; import org.simpleframework.xml.ValidationTestCase; import org.simpleframework.xml.core.PersistenceException; import org.simpleframework.xml.core.Persister; import org.simpleframework.xml.stream.InputNode; import org.simpleframework.xml.stream.NodeMap; import org.simpleframework.xml.stream.OutputNode; public class VisitorStrategyTest extends ValidationTestCase { @Root @Default private static class VisitorExample { private List<String> items; private Map<String, String> map; public VisitorExample() { this.map = new HashMap<String, String>(); this.items = new ArrayList<String>(); } public void put(String name, String value) { map.put(name, value); } public void add(String value) { items.add(value); } } public void testStrategy() throws Exception { Visitor visitor = new ClassToNamespaceVisitor(); Strategy strategy = new VisitorStrategy(visitor); Persister persister = new Persister(strategy); VisitorExample item = new VisitorExample(); StringWriter writer = new StringWriter(); item.put("1", "ONE"); item.put("2", "TWO"); item.add("A"); item.add("B"); persister.write(item, writer); String text = writer.toString(); System.out.println(text); VisitorExample recover = persister.read(VisitorExample.class, text); assertTrue(recover.map.containsKey("1")); assertTrue(recover.map.containsKey("2")); assertTrue(recover.items.contains("A")); assertTrue(recover.items.contains("B")); validate(recover, persister); } }