Package carbonite

Source Code of carbonite.RatioSerializer

package carbonite;

import clojure.lang.Ratio;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.Serializer;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.esotericsoftware.kryo.serializers.DefaultSerializers;

import java.math.BigInteger;

/** User: sritchie Date: 1/20/12 Time: 3:49 PM */
public class RatioSerializer extends Serializer<Ratio> {
    final DefaultSerializers.BigIntegerSerializer big  = new DefaultSerializers.BigIntegerSerializer();


    public void write(Kryo k, Output output, Ratio ratio) {
        big.write(k, output, ratio.numerator);
        big.write(k, output, ratio.denominator);
    }

    public Ratio read(Kryo kryo, Input input, Class<Ratio> ratioClass) {
        BigInteger num = big.read(kryo, input, null);
        BigInteger denom = big.read(kryo, input, null);

        return new Ratio(num, denom);
    }
}
TOP

Related Classes of carbonite.RatioSerializer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.