package com.alibaba.datax.plugin.reader.otsreader.utils;
import com.alibaba.datax.plugin.reader.otsreader.adaptor.OTSColumnAdaptor;
import com.alibaba.datax.plugin.reader.otsreader.adaptor.PrimaryKeyValueAdaptor;
import com.alibaba.datax.plugin.reader.otsreader.model.OTSColumn;
import com.alibaba.datax.plugin.reader.otsreader.model.OTSConf;
import com.alibaba.datax.plugin.reader.otsreader.model.OTSRange;
import com.aliyun.openservices.ots.model.Direction;
import com.aliyun.openservices.ots.model.PrimaryKeyValue;
import com.aliyun.openservices.ots.model.RowPrimaryKey;
import com.aliyun.openservices.ots.model.TableMeta;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonParser {
private static Gson gsonBuilder() {
return new GsonBuilder()
.registerTypeAdapter(OTSColumn.class, new OTSColumnAdaptor())
.registerTypeAdapter(PrimaryKeyValue.class, new PrimaryKeyValueAdaptor())
.create();
}
public static String rangeToJson (OTSRange range) {
Gson g = gsonBuilder();
return g.toJson(range);
}
public static OTSRange jsonToRange (String jsonStr) {
Gson g = gsonBuilder();
return g.fromJson(jsonStr, OTSRange.class);
}
public static String confToJson (OTSConf conf) {
Gson g = gsonBuilder();
return g.toJson(conf);
}
public static OTSConf jsonToConf (String jsonStr) {
Gson g = gsonBuilder();
return g.fromJson(jsonStr, OTSConf.class);
}
public static String directionToJson (Direction direction) {
Gson g = gsonBuilder();
return g.toJson(direction);
}
public static Direction jsonToDirection (String jsonStr) {
Gson g = gsonBuilder();
return g.fromJson(jsonStr, Direction.class);
}
public static String metaToJson (TableMeta meta) {
Gson g = gsonBuilder();
return g.toJson(meta);
}
public static String rowPrimaryKeyToJson (RowPrimaryKey row) {
Gson g = gsonBuilder();
return g.toJson(row);
}
}