@Override public void write(Kryo kryo, Output output, Object object) { // Add write hooks if needed. old.write(kryo, output, object); } }
public Object[] read (Kryo kryo, Input input, Class<Object[]> type) { int length = input.readVarInt(true); 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); 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); Registration registration = kryo.readClass(input); if (registration != null) { registration.getSerializer().setGenerics(kryo, generics); object[i] = kryo.readObject(input, registration.getType(), registration.getSerializer()); } else { object[i] = null;
public void read (Input input, Object object) { try { if (TRACE) trace("kryo", "Read field: " + this + " (" + type.getName() + ")" + " pos=" + input.position()); Object value; Serializer serializer = this.serializer; if (concreteType == null) { Registration registration = kryo.readClass(input); if (registration == null) value = null; else { if (serializer == null) serializer = registration.getSerializer(); serializer.setGenerics(kryo, generics); value = kryo.readObject(input, registration.getType(), serializer); if (serializer == null) this.serializer = serializer = kryo.getSerializer(valueClass); serializer.setGenerics(kryo, generics); if (canBeNull) value = kryo.readObjectOrNull(input, concreteType, serializer);
trace("kryo", "Write field: " + this + " (" + object.getClass().getName() + ")" + " pos=" + output.position()); kryo.writeClass(output, null); return; Registration registration = kryo.writeClass(output, value.getClass()); if (serializer == null) serializer = registration.getSerializer(); serializer.setGenerics(kryo, generics); kryo.writeObject(output, value, serializer); } else { if (serializer == null) this.serializer = serializer = kryo.getSerializer(valueClass); serializer.setGenerics(kryo, generics); if (canBeNull) { kryo.writeObjectOrNull(output, value, serializer);
public byte[] convertToBytes(Object dataArray) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024); Output output = new Output(byteArrayOutputStream); T[] array = (T[]) dataArray; Kryo kryo = KryoUtils.getKryo(); for (int i = 0; i < array.length; i++) { serializer.write(kryo, output, array[i]); } output.close(); return byteArrayOutputStream.toByteArray(); }
public void write (Kryo kryo, Output output, Object object) { OutputChunked outputChunked = new OutputChunked(output, 256); Deflater deflater = new Deflater(compressionLevel, noHeaders); try { DeflaterOutputStream deflaterStream = new DeflaterOutputStream(outputChunked, deflater); Output deflaterOutput = new Output(deflaterStream, 256); serializer.write(kryo, deflaterOutput, object); deflaterOutput.flush(); deflaterStream.finish(); } catch (IOException ex) { throw new KryoException(ex); } finally { deflater.end(); } outputChunked.endChunks(); }
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; }
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); }
/** Reads an object or null using the registered serializer. * @return May be null. */ public <T> T readObjectOrNull (Input input, Class<T> type) { if (input == null) throw new IllegalArgumentException("input cannot be null."); if (type == null) throw new IllegalArgumentException("type cannot be null."); beginObject(); try { T object; if (references) { int stackSize = readReferenceOrNull(input, type, true); if (stackSize == REF) return (T)readObject; object = (T)getRegistration(type).getSerializer().read(this, input, type); if (stackSize == readReferenceIds.size) reference(object); } else { Serializer serializer = getRegistration(type).getSerializer(); if (!serializer.getAcceptsNull() && input.readByte() == NULL) { if (TRACE || (DEBUG && depth == 1)) log("Read", null); return null; } object = (T)serializer.read(this, input, type); } if (TRACE || (DEBUG && depth == 1)) log("Read", object); return object; } finally { if (--depth == 0 && autoReset) reset(); } }
/** Writes an object or null using the registered serializer for the specified type. * @param object May be null. */ public void writeObjectOrNull (Output output, Object object, Class type) { if (output == null) throw new IllegalArgumentException("output cannot be null."); beginObject(); try { Serializer serializer = getRegistration(type).getSerializer(); if (references) { if (writeReferenceOrNull(output, object, true)) { serializer.setGenerics(this, null); return; } } else if (!serializer.getAcceptsNull()) { if (object == null) { if (TRACE || (DEBUG && depth == 1)) log("Write", object); output.writeByte(NULL); return; } output.writeByte(NOT_NULL); } if (TRACE || (DEBUG && depth == 1)) log("Write", object); serializer.write(this, output, object); } finally { if (--depth == 0 && autoReset) reset(); } }
public void write (Kryo kryo, Output output, Object object) { Cipher cipher = getCipher(Cipher.ENCRYPT_MODE); CipherOutputStream cipherStream = new CipherOutputStream(output, cipher); Output cipherOutput = new Output(cipherStream, 256) { public void close () throws KryoException { // Don't allow the CipherOutputStream to close the output. } }; serializer.write(kryo, cipherOutput, object); cipherOutput.flush(); try { cipherStream.close(); } catch (IOException ex) { throw new KryoException(ex); } }
Example example = ... // create your data // Get your writer (or outputstream to write data) // Those my come from doPost(...) or doGet(...) method HttpServletResponse response = ... PrintWriter outWriter = respone.getWriter(); // Serialize to the writer / stream Serializer ser = new Persister(); ser.write(example, outWriter);
/** Writes an object or null using the specified serializer. The registered serializer is ignored. * @param object May be null. */ public void writeObjectOrNull (Output output, Object object, Serializer serializer) { if (output == null) throw new IllegalArgumentException("output cannot be null."); if (serializer == null) throw new IllegalArgumentException("serializer cannot be null."); beginObject(); try { if (references) { if (writeReferenceOrNull(output, object, true)) { serializer.setGenerics(this, null); return; } } else if (!serializer.getAcceptsNull()) { if (object == null) { if (TRACE || (DEBUG && depth == 1)) log("Write", null); output.writeByte(NULL); return; } output.writeByte(NOT_NULL); } if (TRACE || (DEBUG && depth == 1)) log("Write", object); serializer.write(this, output, object); } finally { if (--depth == 0 && autoReset) reset(); } }
/** Writes an object using the registered serializer. */ public void writeObject (Output output, Object object) { if (output == null) throw new IllegalArgumentException("output cannot be null."); if (object == null) throw new IllegalArgumentException("object cannot be null."); beginObject(); try { if (references && writeReferenceOrNull(output, object, false)) { getRegistration(object.getClass()).getSerializer().setGenerics(this, null); return; } if (TRACE || (DEBUG && depth == 1)) log("Write", object); getRegistration(object.getClass()).getSerializer().write(this, output, object); } finally { if (--depth == 0 && autoReset) reset(); } }
/** * Reads the XML from the given InputStream using "Simple" and returns a list of assignments. * @param InputStream * @return List<Assignment> */ public List<Assignment> readSimple(final InputStream inputStream) throws Exception { Serializer serializer = new Persister(); return serializer.read(AssignmentList.class, inputStream).getAssignments(); }
/** Writes the class and object or null using the registered serializer. * @param object May be null. */ public void writeClassAndObject (Output output, Object object) { if (output == null) throw new IllegalArgumentException("output cannot be null."); beginObject(); try { if (object == null) { writeClass(output, null); return; } Registration registration = writeClass(output, object.getClass()); if (references && writeReferenceOrNull(output, object, false)) { registration.getSerializer().setGenerics(this, null); return; } if (TRACE || (DEBUG && depth == 1)) log("Write", object); registration.getSerializer().write(this, output, object); } finally { if (--depth == 0 && autoReset) reset(); } }