Package com.esotericsoftware.kryo

Examples of com.esotericsoftware.kryo.Serializer


  public void write (Kryo kryo, Output output, Map map) {
    int length = map.size();
    output.writeInt(length, true);
    if (length == 0) return;

    Serializer keySerializer = this.keySerializer;
    if (keyGenericType != null) {
      if (keySerializer == null) keySerializer = kryo.getSerializer(keyGenericType);
      keyGenericType = null;
    }
    Serializer valueSerializer = this.valueSerializer;
    if (valueGenericType != null) {
      if (valueSerializer == null) valueSerializer = kryo.getSerializer(valueGenericType);
      valueGenericType = null;
    }
View Full Code Here


    if (length == 0) return map;

    Class keyClass = this.keyClass;
    Class valueClass = this.valueClass;

    Serializer keySerializer = this.keySerializer;
    if (keyGenericType != null) {
      keyClass = keyGenericType;
      if (keySerializer == null) keySerializer = kryo.getSerializer(keyClass);
      keyGenericType = null;
    }
    Serializer valueSerializer = this.valueSerializer;
    if (valueGenericType != null) {
      valueClass = valueGenericType;
      if (valueSerializer == null) valueSerializer = kryo.getSerializer(valueClass);
      valueGenericType = null;
    }
View Full Code Here

        if (accessIndex != -1)
          value = ((FieldAccess)access).get(object, accessIndex);
        else
          value = field.get(object);

        Serializer serializer = this.serializer;
        if (valueClass == null) {
          // The concrete type of the field is unknown, write the class first.
          if (value == null) {
            kryo.writeClass(output, null);
            return;
          }
          Registration registration = kryo.writeClass(output, value.getClass());
          if (serializer == null) serializer = registration.getSerializer();
          if (generics != null) serializer.setGenerics(kryo, generics);
          kryo.writeObject(output, value, serializer);
        } else {
          // The concrete type of the field is known, always use the same serializer.
          if (serializer == null) this.serializer = serializer = kryo.getSerializer(valueClass);
          if (generics != null) serializer.setGenerics(kryo, generics);
          if (canBeNull) {
            kryo.writeObjectOrNull(output, value, serializer);
          } else {
            if (value == null) {
              throw new KryoException("Field value is null but canBeNull is false: " + this + " ("
View Full Code Here

      try {
        if (TRACE) trace("kryo", "Read field: " + this + " (" + type.getName() + ")");
        Object value;

        Class concreteType = valueClass;
        Serializer serializer = this.serializer;
        if (concreteType == null) {
          Registration registration = kryo.readClass(input);
          if (registration == null)
            value = null;
          else {
            if (serializer == null) serializer = registration.getSerializer();
            if (generics != null) serializer.setGenerics(kryo, generics);
            value = kryo.readObject(input, registration.getType(), serializer);
          }
        } else {
          if (serializer == null) this.serializer = serializer = kryo.getSerializer(valueClass);
          if (generics != null) serializer.setGenerics(kryo, generics);
          if (canBeNull)
            value = kryo.readObjectOrNull(input, concreteType, serializer);
          else
            value = kryo.readObject(input, concreteType, serializer);
        }
View Full Code Here

  public void write (Kryo kryo, Output output, Collection object) {
    Collection collection = (Collection)object;
    int length = collection.size();
    output.writeInt(length, true);
    if (length == 0) return;
    Serializer serializer = this.serializer;
    if (genericType != null) {
      if (serializer == null) serializer = kryo.getSerializer(genericType);
      genericType = null;
    }
    if (serializer != null) {
View Full Code Here

    Collection collection = create(kryo, input, type);
    kryo.reference(collection);
    int length = input.readInt(true);
    if (collection instanceof ArrayList) ((ArrayList)collection).ensureCapacity(length);
    Class elementClass = this.elementClass;
    Serializer serializer = this.serializer;
    if (genericType != null) {
      if (serializer == null) {
        elementClass = genericType;
        serializer = kryo.getSerializer(genericType);
      }
View Full Code Here

  }

  static public class EnumSetSerializer extends Serializer<EnumSet> {
    public void write (Kryo kryo, Output output, EnumSet object) {
      if (object.isEmpty()) throw new KryoException("An empty EnumSet cannot be serialized.");
      Serializer serializer = kryo.writeClass(output, object.iterator().next().getClass()).getSerializer();
      output.writeInt(object.size(), true);
      for (Object element : object)
        serializer.write(kryo, output, element);
    }
View Full Code Here

    }

    public EnumSet read (Kryo kryo, Input input, Class<EnumSet> type) {
      Registration registration = kryo.readClass(input);
      EnumSet object = EnumSet.noneOf(registration.getType());
      Serializer serializer = registration.getSerializer();
      int length = input.readInt(true);
      for (int i = 0; i < length; i++)
        object.add(serializer.read(kryo, input, null));
      return object;
    }
View Full Code Here

         * Custom serializer because default serialization doesn't work. Any
         * non-null IP address comes back as 0.0.0.0. XXX Inet4Address also
         * holds hostname, but heritrix doesn't use that; and retrieving it can
         * result in dns lookup, so we don't serialize it.
         */
        kryo.register(Inet4Address.class, new Serializer() {
            @Override
            public void writeObjectData(ByteBuffer buffer, Object object) {
                Inet4Address i4a = (Inet4Address) object;
                kryo.writeObject(buffer, i4a.getAddress());
            }
View Full Code Here

    public ReplaceableObjectKryo() {
    }

    @Override
    protected Serializer newDefaultSerializer(Class type) {
        final Serializer s = super.newDefaultSerializer(type);
        if (s instanceof FieldSerializer)
            ((FieldSerializer) s).setIgnoreSyntheticFields(false);
        return s;
    }
View Full Code Here

TOP

Related Classes of com.esotericsoftware.kryo.Serializer

Copyright © 2018 www.massapicom. 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.