package org.fanhongtao.lang;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Dharma
* @created 2010-3-7
*/
public class DumpTest
{
/**
* @param args
*/
public static void main(String[] args)
{
dumpObject();
dumpMap();
dumpList();
dumpMapList();
dumpListMap();
dumpArray();
dumpArrayMap();
dumpArrayList();
dumpDup();
}
private static void dumpObject()
{
System.out.println(new Dump().toString("Null Object", null));
System.out.println(new Dump().toString("\nDump Object", new Person("jack", 11)));
}
private static void dumpMap()
{
Map<String, Person> map = getMap();
System.out.println(new Dump().toString("\nDump Map", map));
}
private static void add(Map<String, Person> map, Person person)
{
map.put(person.getName(), person);
}
private static void dumpList()
{
List<Person> list = getList();
System.out.println("\nDump List");
System.out.println(new Dump().toString(list));
}
private static void dumpMapList()
{
List<Map<String, Person>> list = new ArrayList<Map<String, Person>>();
list.add(getMap());
list.add(getMap());
System.out.println("\nDump Map List");
System.out.println(new Dump().toString(list));
}
private static void dumpListMap()
{
Map<Integer, List<Person>> map = new HashMap<Integer, List<Person>>();
map.put(1, getList());
map.put(2, getList());
System.out.println("\nDump List Map");
System.out.println(new Dump().toString(map));
}
private static void dumpArray()
{
Object[] objs = getArray();
System.out.println("\nDump Array");
System.out.println(new Dump().toString(objs));
}
private static void dumpArrayMap()
{
Map<Integer, Object[]> map = new HashMap<Integer, Object[]>();
map.put(1, getArray());
map.put(2, getArray());
System.out.println("\nDump Array Map");
System.out.println(new Dump().toString(map));
}
private static void dumpArrayList()
{
Object[] objs = getArray();
List<Object[]> list = new ArrayList<Object[]>();
list.add(objs);
System.out.println("\nDump Array List");
System.out.println(new Dump().toString(list));
}
private static Map<String, Person> getMap()
{
Map<String, Person> map = new HashMap<String, Person>();
add(map, new Person("jack", 11));
add(map, new Person("tom", 12));
add(map, new Person("rose", 13));
return map;
}
private static List<Person> getList()
{
List<Person> list = new ArrayList<Person>();
list.add(new Person("jack", 11));
list.add(new Person("tom", 12));
list.add(new Person("rose", 13));
return list;
}
private static Object[] getArray()
{
Object[] objs = new Person[3];
objs[0] = new Person("jack", 11);
objs[1] = new Person("tom", 12);
objs[2] = new Person("rose", 13);
return objs;
}
private static void dumpDup()
{
A a = new A();
a.setId("class_a");
B b = new B();
b.setId("class_b");
a.setB(b);
b.setA(a);
System.out.println(new Dump().toString("\nReference A:", a));
}
}
class Person
{
private String name;
private int age;
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
class A
{
private String id;
private B b;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public B getB()
{
return b;
}
public void setB(B b)
{
this.b = b;
}
}
class B
{
private String id;
private A a;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public A getA()
{
return a;
}
public void setA(A a)
{
this.a = a;
}
}