packagecom.trilogy.session.data;importjava.lang.reflect.Field;importjava.util.Collection;importjava.util.Map;importjava.util.Set;/*** The Class MapToXMLString.
*
*@authorsword.cai (c) Totyustar 2008.*/
public classMapToXMLString {/*** Converter Map instance to xml string. Note: currently,
* we aren't consider more about some collection types, such as array,list,
*
*@paramdataMap the data map
*
*@returnthe string*/
public static String converter(MapdataMap)
{synchronized (MapToXMLString.class)
{
StringBuilder strBuilder= newStringBuilder();
strBuilder.append("");
Set objSet =dataMap.keySet();for(Object key : objSet)
{if (key == null)
{continue;
}
strBuilder.append("\n");
strBuilder.append("\n");
Object value=dataMap.get(key);
strBuilder.append(coverter(value));
strBuilder.append("").append(key.toString()).append(">\n");
}
strBuilder.append("");returnstrBuilder.toString();
}
}public staticString coverter(Object[] objects) {
StringBuilder strBuilder= newStringBuilder();for(Object obj:objects) {
strBuilder.append("\n");
strBuilder.append(coverter(obj));
strBuilder.append("\n");
}returnstrBuilder.toString();
}public static String coverter(Collection>objects)
{
StringBuilder strBuilder= newStringBuilder();for(Object obj:objects) {
strBuilder.append("\n");
strBuilder.append(coverter(obj));
strBuilder.append("\n");
}returnstrBuilder.toString();
}/*** Coverter.
*
*@paramobject the object
*@returnthe string*/
public staticString coverter(Object object)
{if (object instanceofObject[])
{returncoverter((Object[]) object);
}if (object instanceofCollection)
{return coverter((Collection>) object);
}
StringBuilder strBuilder= newStringBuilder();if(isObject(object))
{
Class extends Object> clz =object.getClass();
Field[] fields=clz.getDeclaredFields();for(Field field : fields)
{
field.setAccessible(true);if (field == null)
{continue;
}
String fieldName=field.getName();
Object value= null;try{
value=field.get(object);
}catch(IllegalArgumentException e)
{continue;
}catch(IllegalAccessException e)
{continue;
}
strBuilder.append("
.append(" className=\"").append(
value.getClass().getName()).append("\">\n");if(isObject(value))
{
strBuilder.append(coverter(value));
}else if (value == null)
{
strBuilder.append("null\n");
}else{
strBuilder.append(value.toString()+ "\n");
}
strBuilder.append("").append(fieldName).append(">\n");
}
}else if (object == null)
{
strBuilder.append("null\n");
}else{
strBuilder.append(object.toString()+ "\n");
}returnstrBuilder.toString();
}/*** Checks if is object.
*
*@paramobj the obj
*
*@returntrue, if is object*/
private static booleanisObject(Object obj)
{if (obj == null)
{return false;
}if (obj instanceofString)
{return false;
}if (obj instanceofInteger)
{return false;
}if (obj instanceofDouble)
{return false;
}if (obj instanceofFloat)
{return false;
}if (obj instanceofByte)
{return false;
}if (obj instanceofLong)
{return false;
}if (obj instanceofCharacter)
{return false;
}if (obj instanceofShort)
{return false;
}if (obj instanceofBoolean)
{return false;
}return true;
}
}