Package com.esotericsoftware.kryo

Examples of com.esotericsoftware.kryo.Serializer


    }
  }

  static public class EnumSetSerializer extends Serializer<EnumSet> {
    public void write (Kryo kryo, Output output, EnumSet object) {
      Serializer serializer;
      if (object.isEmpty()) {
        EnumSet tmp = EnumSet.complementOf(object);
        if (tmp.isEmpty()) throw new KryoException("An EnumSet must have a defined Enum to be serialized.");
        serializer = kryo.writeClass(output, tmp.iterator().next().getClass()).getSerializer();
      } else {
        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

        output.writeVarInt(NULL, true);
        return;
      }
      output.writeVarInt(object.length + 1, true);
      if (kryo.getReferences() && kryo.getReferenceResolver().useReferences(String.class)) {
        Serializer serializer = kryo.getSerializer(String.class);
        for (int i = 0, n = object.length; i < n; i++)
          kryo.writeObjectOrNull(output, object[i], serializer);
      } else {
        for (int i = 0, n = object.length; i < n; i++)
          output.writeString(object[i]);
View Full Code Here

    public String[] read (Kryo kryo, Input input, Class<String[]> type) {
      int length = input.readVarInt(true);
      if (length == NULL) return null;
      String[] array = new String[--length];
      if (kryo.getReferences() && kryo.getReferenceResolver().useReferences(String.class)) {
        Serializer serializer = kryo.getSerializer(String.class);
        for (int i = 0; i < length; i++) {
          array[i] = kryo.readObjectOrNull(input, String.class, serializer);
        }
      } else {
        for (int i = 0; i < length; i++)
View Full Code Here

        return;
      }
      output.writeVarInt(object.length + 1, true);
      Class elementClass = object.getClass().getComponentType();
      if (elementsAreSameType || Modifier.isFinal(elementClass.getModifiers())) {
        Serializer elementSerializer = kryo.getSerializer(elementClass);
//        if(generics!=null)
          elementSerializer.setGenerics(kryo, generics);
        for (int i = 0, n = object.length; i < n; i++) {
          if (elementsCanBeNull)
            kryo.writeObjectOrNull(output, object[i], elementSerializer);
          else
            kryo.writeObject(output, object[i], elementSerializer);
        }
      } else {
//        Generics genericsScope = null;
//        Class componentType = type;
//        while(componentType.getComponentType() != null) {
//          componentType = componentType.getComponentType();
//        }
//        TypeVariable[] typeVars = type.getComponentType().getTypeParameters();
//        if(typeVars != null && generics != null) {
//          if(TRACE) trace("kryo", "Creating a new GenericsScope for " + type.getName() + " with type vars: " + Arrays.toString(typeVars));
//          genericsScope = new Generics();
//          int i = 0;
//          for(TypeVariable typeVar: typeVars) {
//            genericsScope.add(typeVar.getName(), generics[i]);
//            i++;
//          }
//          kryo.pushGenericsScope(type, genericsScope);
//        }
//       
        for (int i = 0, n = object.length; i < n; i++) {
          // Propagate generics?
          if (object[i] != null) {
            Serializer serializer = kryo.getSerializer(object[i].getClass());
            serializer.setGenerics(kryo, generics);
          }
          kryo.writeClassAndObject(output, object[i]);
        }
       
//        if(genericsScope != null)
View Full Code Here

      if (length == NULL) return null;
      Object[] object = (Object[])Array.newInstance(type.getComponentType(), length - 1);
      kryo.reference(object);
      Class elementClass = object.getClass().getComponentType();
      if (elementsAreSameType || Modifier.isFinal(elementClass.getModifiers())) {
        Serializer elementSerializer = kryo.getSerializer(elementClass);
//        if(generics!=null)
          elementSerializer.setGenerics(kryo, generics);
        for (int i = 0, n = object.length; i < n; i++) {
          if (elementsCanBeNull)
            object[i] = kryo.readObjectOrNull(input, elementClass, elementSerializer);
          else
            object[i] = kryo.readObject(input, elementClass, elementSerializer);
View Full Code Here

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

    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

    int length = input.readInt(true);

    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

                    className = serializerDefinition;
                }

                try {
                    final Class clazz = Class.forName(className);
                    final Serializer serializer;
                    if (serializerName.isPresent()) {
                        final Class serializerClazz = Class.forName(serializerName.get());
                        serializer = (Serializer) serializerClazz.newInstance();
                    } else
                        serializer = null;
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

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.