
org.rx.io.Serializer Maven / Gradle / Ivy
package org.rx.io;
import org.rx.core.Constants;
public interface Serializer {
Serializer DEFAULT = new JdkAndJsonSerializer();
default byte[] serializeToBytes(T obj) {
try (IOStream, ?> stream = serialize(obj)) {
return stream.toArray();
}
}
default IOStream, ?> serialize(T obj) {
return serialize(obj, Constants.MAX_HEAP_BUF_SIZE, null);
}
default HybridStream serialize(T obj, int maxMemorySize, String tempFilePath) {
HybridStream stream = new HybridStream(maxMemorySize, tempFilePath);
serialize(obj, stream);
return (HybridStream) stream.rewind();
}
void serialize(T obj, IOStream, ?> stream);
default T deserialize(IOStream, ?> stream) {
return deserialize(stream, false);
}
T deserialize(IOStream, ?> stream, boolean leveOpen);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy