package com.esri.hadoop.hive.serde; import org.junit.Assert; import java.util.ArrayList; import org.apache.hadoop.hive.serde2.SerDe; import org.apache.hadoop.hive.serde2.io.ByteWritable; import org.apache.hadoop.hive.serde2.io.DoubleWritable; import org.apache.hadoop.hive.serde2.io.ShortWritable; import org.apache.hadoop.hive.serde2.objectinspector.StructField; import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector; import org.apache.hadoop.io.BooleanWritable; import org.apache.hadoop.io.BytesWritable; import org.apache.hadoop.io.FloatWritable; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.Writable; import com.esri.core.geometry.Geometry; import com.esri.core.geometry.MapGeometry; import com.esri.core.geometry.Point; import com.esri.core.geometry.SpatialReference; import com.esri.core.geometry.ogc.OGCGeometry; import com.esri.hadoop.hive.GeometryUtils; public abstract class JsonSerDeTestingBase { protected void addWritable(ArrayList<Object> stuff, boolean item) { stuff.add(new BooleanWritable(item)); } protected void addWritable(ArrayList<Object> stuff, byte item) { stuff.add(new ByteWritable(item)); } protected void addWritable(ArrayList<Object> stuff, short item) { stuff.add(new ShortWritable(item)); } protected void addWritable(ArrayList<Object> stuff, int item) { stuff.add(new IntWritable(item)); } protected void addWritable(ArrayList<Object> stuff, long item) { stuff.add(new LongWritable(item)); } protected void addWritable(ArrayList<Object> stuff, String item) { stuff.add(new Text(item)); } protected void addWritable(ArrayList<Object> stuff, Geometry geom) { addWritable(stuff, geom, null); } protected void addWritable(ArrayList<Object> stuff, MapGeometry geom) { addWritable(stuff, geom.getGeometry(), geom.getSpatialReference()); } protected void addWritable(ArrayList<Object> stuff, Geometry geom, SpatialReference sref) { stuff.add(GeometryUtils.geometryToEsriShapeBytesWritable(OGCGeometry.createFromEsriGeometry(geom, sref))); } protected void ckPoint(Point refPt, BytesWritable fieldData) { Assert.assertEquals(refPt, GeometryUtils.geometryFromEsriShape(fieldData).getEsriGeometry()); } protected Object getField(String col, Object row, StructObjectInspector rowOI) { StructField f0 = rowOI.getStructFieldRef(col); return rowOI.getStructFieldData(row, f0); } protected Object runSerDe(Object stuff, SerDe jserde, StructObjectInspector rowOI) throws Exception { Writable jsw = jserde.serialize(stuff, rowOI); //System.err.println(jsw); return jserde.deserialize(jsw); } }