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;
|
}
|
}
|