public static Map<Type, GsonSerDerAdapter<?>> registerAdapters() {
Map<Type, GsonSerDerAdapter<?>> adapters = new HashMap<>();
adapters.put(Path.class, new PathSerializer());
adapters.put(Class.class, new ClassNameSerializer());
adapters.put(LogicalNode.class, new LogicalNodeAdapter());
adapters.put(EvalNode.class, new EvalNodeAdapter());
adapters.put(TableMeta.class, new TableMetaAdapter());
adapters.put(Function.class, new FunctionAdapter());
adapters.put(GeneralFunction.class, new FunctionAdapter());
adapters.put(AggFunction.class, new FunctionAdapter());
adapters.put(Datum.class, new DatumAdapter());
adapters.put(DataType.class, new DataTypeAdapter());
adapters.put(TimeZone.class, new TimeZoneGsonSerdeAdapter());
adapters.put(org.apache.tajo.type.Type.class, new TypeAdapter());
adapters.put(Schema.class, new SchemaAdapter());
return adapters;
}