Search in sources :

Example 66 with Output

use of com.esotericsoftware.kryo.io.Output in project apex-malhar by apache.

the class FieldValueSerializableGenerator method serializeObject.

/**
 * get the object which is serialized.
 * this method will convert the object into a map from column name to column value and then serialize it
 *
 * @param obj
 * @return
 */
public byte[] serializeObject(Object obj) {
    // if don't have field information, just convert the whole object to byte[]
    Object convertObj = obj;
    // if fields are specified, convert to map and then convert map to byte[]
    if (fieldGetterMap != null && !fieldGetterMap.isEmpty()) {
        convertObj = getFieldsValueAsMap(obj);
    }
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    Output output = new Output(os);
    getKryo().writeClassAndObject(output, convertObj);
    output.flush();
    // output.toBytes() is empty.
    return os.toByteArray();
}
Also used : Output(com.esotericsoftware.kryo.io.Output) ByteArrayOutputStream(java.io.ByteArrayOutputStream)

Example 67 with Output

use of com.esotericsoftware.kryo.io.Output in project apex-malhar by apache.

the class Gen method cloneObject.

// processStats
/**
 * Clone object by serializing and deserializing using Kryo.
 * Note this is different from using {@link Kryo#copy(Object)}, which will attempt to also clone transient fields.
 *
 * @param kryo kryo object used to clone objects
 * @param src src object that copy from
 * @return cloned object
 */
@SuppressWarnings("unchecked")
private static <SRC> SRC cloneObject(Kryo kryo, SRC src) {
    kryo.setClassLoader(src.getClass().getClassLoader());
    ByteArrayOutputStream bos = null;
    Output output;
    Input input = null;
    try {
        bos = new ByteArrayOutputStream();
        output = new Output(bos);
        kryo.writeObject(output, src);
        output.close();
        input = new Input(bos.toByteArray());
        return (SRC) kryo.readObject(input, src.getClass());
    } finally {
        IOUtils.closeQuietly(input);
        IOUtils.closeQuietly(bos);
    }
}
Also used : Input(com.esotericsoftware.kryo.io.Input) Output(com.esotericsoftware.kryo.io.Output) ByteArrayOutputStream(java.io.ByteArrayOutputStream)

Aggregations

Output (com.esotericsoftware.kryo.io.Output)67 Kryo (com.esotericsoftware.kryo.Kryo)34 ByteArrayOutputStream (java.io.ByteArrayOutputStream)34 Input (com.esotericsoftware.kryo.io.Input)28 ByteArrayInputStream (java.io.ByteArrayInputStream)13 Test (org.junit.Test)11 FileOutputStream (java.io.FileOutputStream)7 IOException (java.io.IOException)6 Test (org.testng.annotations.Test)6 KryoException (com.esotericsoftware.kryo.KryoException)5 BaseTest (org.broadinstitute.hellbender.utils.test.BaseTest)5 StdInstantiatorStrategy (org.objenesis.strategy.StdInstantiatorStrategy)4 SAMFileHeader (htsjdk.samtools.SAMFileHeader)3 HashMap (java.util.HashMap)3 ByteArrayOutputStream (org.apache.commons.io.output.ByteArrayOutputStream)3 Schema (co.cask.cdap.api.data.schema.Schema)2 Slice (com.datatorrent.netlet.util.Slice)2 File (java.io.File)2 FileNotFoundException (java.io.FileNotFoundException)2 ObjectOutput (java.io.ObjectOutput)2