@SuppressWarnings("unchecked") @Override public void write(Kryo kryo, Output output, List<Object> object) { // reverse the ReverseList to get the "forward" list, and treat as regular List. List forwardList = Lists.reverse(object); serializer.write(kryo, output, forwardList); }
/** @see #setElementClass(Class, Serializer) */ public CollectionSerializer (Class elementClass, Serializer serializer) { setElementClass(elementClass, serializer); }
@SuppressWarnings("unchecked") @Override public List<Object> read(Kryo kryo, Input input, Class<? extends List<Object>> type) { // reading a "forward" list as a ArrayList and returning the reversed list. List forwardList = (List) serializer.read(kryo, input, (Class) ArrayList.class); return Lists.reverse(forwardList); } }
Class<?> elementClass = annotation.elementClass(); if (elementClass == Object.class) elementClass = null; CollectionSerializer serializer = new CollectionSerializer(); serializer.setElementsCanBeNull(elementsCanBeNull); serializer.setElementClass(elementClass, elementSerializer); fields[i].setSerializer(serializer); } else {
CollectionSerializer collectionSerializer = new CollectionSerializer(); collectionSerializer.setElementsCanBeNull(false);
public Collection copy (Kryo kryo, Collection original) { Collection copy = createCopy(kryo, original); kryo.reference(copy); for (Object element : original) copy.add(kryo.copy(element)); return copy; }
public Collection read (Kryo kryo, Input input, Class<Collection> type) { Collection collection = create(kryo, input, type); kryo.reference(collection); int length = input.readVarInt(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); } genericType = null; } if (serializer != null) { if (elementsCanBeNull) { for (int i = 0; i < length; i++) collection.add(kryo.readObjectOrNull(input, elementClass, serializer)); } else { for (int i = 0; i < length; i++) collection.add(kryo.readObject(input, elementClass, serializer)); } } else { for (int i = 0; i < length; i++) collection.add(kryo.readClassAndObject(input)); } return collection; }
kryo.register(CopyOnWriteArrayList.class, new CollectionSerializer()); kryo.register(HashSet.class, new HibernateAwareCollectionSerializer(hibernateUtil)); // NOPMD kryo.register(HashMap.class, new HibernateAwareMapSerializer(hibernateUtil)); // NOPMD kryo.register(AnnotationType.class, new FieldSerializer<AnnotationType>(kryo, AnnotationType.class), nextRegistrationId++); kryo.register(MethodType.class, new FieldSerializer<MethodType>(kryo, MethodType.class), nextRegistrationId++); kryo.register(ArraySet.class, new CollectionSerializer(), nextRegistrationId++); kryo.register(SortedArraySet.class, new CollectionSerializer(), nextRegistrationId++); kryo.register(MethodTypeSet.class, new CollectionSerializer(), nextRegistrationId++); kryo.register(TypeSet.class, new CollectionSerializer(), nextRegistrationId++); kryo.register(TypeWithAnnotationsSet.class, new CollectionSerializer(), nextRegistrationId++);
Class<?> elementClass = annotation.elementClass(); if (elementClass == Object.class) elementClass = null; CollectionSerializer serializer = new CollectionSerializer(); serializer.setElementsCanBeNull(elementsCanBeNull); serializer.setElementClass(elementClass, elementSerializer); fields[i].setSerializer(serializer); } else {
public Collection copy (Kryo kryo, Collection original) { Collection copy = createCopy(kryo, original); kryo.reference(copy); for (Object element : original) copy.add(kryo.copy(element)); return copy; }
public Collection read (Kryo kryo, Input input, Class<Collection> type) { Collection collection = create(kryo, input, type); kryo.reference(collection); int length = input.readVarInt(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); } genericType = null; } if (serializer != null) { if (elementsCanBeNull) { for (int i = 0; i < length; i++) collection.add(kryo.readObjectOrNull(input, elementClass, serializer)); } else { for (int i = 0; i < length; i++) collection.add(kryo.readObject(input, elementClass, serializer)); } } else { for (int i = 0; i < length; i++) collection.add(kryo.readClassAndObject(input)); } return collection; }
Class<?> elementClass = annotation.elementClass(); if (elementClass == Object.class) elementClass = null; CollectionSerializer serializer = new CollectionSerializer(); serializer.setElementsCanBeNull(elementsCanBeNull); serializer.setElementClass(elementClass, elementSerializer); fields[i].setSerializer(serializer); } else {
@SuppressWarnings("unchecked") @Override public void write( final Kryo kryo, final Output output, @SuppressWarnings("rawtypes") final Collection object ) { super.write( kryo, output, new ArrayList<Object>(object)); }
/** @see #setElementClass(Class, Serializer) */ public CollectionSerializer (Class elementClass, Serializer serializer) { setElementClass(elementClass, serializer); }
public Collection copy (Kryo kryo, Collection original) { Collection copy = createCopy(kryo, original); kryo.reference(copy); for (Object element : original) copy.add(kryo.copy(element)); return copy; } }
public Collection read (Kryo kryo, Input input, Class<Collection> type) { Collection collection = create(kryo, input, type); kryo.reference(collection); int length = input.readVarInt(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); } genericType = null; } if (serializer != null) { if (elementsCanBeNull) { for (int i = 0; i < length; i++) collection.add(kryo.readObjectOrNull(input, elementClass, serializer)); } else { for (int i = 0; i < length; i++) collection.add(kryo.readObject(input, elementClass, serializer)); } } else { for (int i = 0; i < length; i++) collection.add(kryo.readClassAndObject(input)); } return collection; }
@SuppressWarnings("unchecked") @Override public List<Object> read(Kryo kryo, Input input, Class<? extends List<Object>> type) { // reading a "forward" list as a ArrayList and returning the reversed list. List forwardList = (List) serializer.read(kryo, input, (Class) ArrayList.class); return Lists.reverse(forwardList); } }
@SuppressWarnings("unchecked") @Override public void write(Kryo kryo, Output output, List<Object> object) { // reverse the ReverseList to get the "forward" list, and treat as regular List. List forwardList = Lists.reverse(object); serializer.write(kryo, output, forwardList); }
/** @see #setElementClass(Class, Serializer) * @see #setElementsCanBeNull(boolean) */ public CollectionSerializer (Class elementClass, Serializer serializer, boolean elementsCanBeNull) { setElementClass(elementClass, serializer); this.elementsCanBeNull = elementsCanBeNull; }
public Collection copy (Kryo kryo, Collection original) { Collection copy = createCopy(kryo, original); kryo.reference(copy); for (Object element : original) copy.add(kryo.copy(element)); return copy; }