package org.andrewberman.ui.unsorted;
import java.lang.reflect.Field;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class JavaUtils
{
public static String join(String delimiter, Collection s)
{
StringBuffer buffer = new StringBuffer();
Iterator iter = s.iterator();
while (iter.hasNext())
{
buffer.append(iter.next().toString());
if (iter.hasNext())
{
buffer.append(delimiter);
}
}
return buffer.toString();
}
public static String join(String delimiter, String... array)
{
StringBuffer buffer = new StringBuffer();
int len = array.length;
for (int i = 0; i < len; i++)
{
buffer.append(array[i]);
if (i < len - 1)
buffer.append(delimiter);
}
return buffer.toString();
}
public static Map<String, Object> getChangedFields(Object a, Object b)
{
Class aClass = a.getClass();
Class bClass = b.getClass();
if (!aClass.equals(bClass))
{
System.out.println("Classes a and b not equal!");
}
HashMap<String, Object> changedFields = new HashMap<String, Object>();
Field[] fields = aClass.getFields();
for (Field f : fields)
{
try
{
if (f.get(a).equals(f.get(b)))
{
System.out.println("Equal on field " + f.getName());
} else
{
changedFields.put(f.getName(), f.get(a));
}
} catch (Exception e)
{
e.printStackTrace();
}
}
return changedFields;
}
}