package timeflow.format.field;
|
|
import timeflow.data.time.*;
|
import timeflow.util.*;
|
|
import java.net.URL;
|
import java.util.*;
|
|
public class FieldFormatCatalog
|
{
|
private static Map<String, FieldFormat> formatTable = new HashMap<String, FieldFormat>();
|
private static Map<Class, FieldFormat> classTable = new HashMap<Class, FieldFormat>();
|
|
static
|
{
|
for (FieldFormat f : listFormats())
|
{
|
formatTable.put(f.getHumanName(), f);
|
classTable.put(f.getType(), f);
|
}
|
}
|
|
static FieldFormat[] listFormats()
|
{
|
return new FieldFormat[]
|
{
|
new FormatDateTime(), new FormatString(),
|
new FormatStringArray(), new FormatDouble(), new FormatURL()
|
};
|
}
|
|
public static Iterable<String> classNames()
|
{
|
return formatTable.keySet();
|
}
|
|
public static String humanName(Class c)
|
{
|
return getFormat(c).getHumanName();
|
}
|
|
public static FieldFormat getFormat(Class c)
|
{
|
FieldFormat f = classTable.get(c);
|
if (f == null)
|
{
|
System.out.println("Warning: no FieldFormat for " + c);
|
}
|
return f;
|
}
|
|
public static Class javaClass(String humanName)
|
{
|
Class c = formatTable.get(humanName).getType();
|
if (c == null)
|
{
|
System.out.println("Warning: no class for " + humanName);
|
}
|
return c;
|
}
|
}
|