package org.mapdb.serializer;
import org.mapdb.DataInput2;
import org.mapdb.DataOutput2;
import org.mapdb.Serializer;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Comparator;
/**
* Created by jan on 2/28/16.
*/
public class SerializerStringNoSize implements Serializer<String> {
private final Charset UTF8_CHARSET = Charset.forName("UTF8");
@Override
public void serialize(DataOutput2 out, String value) throws IOException {
final byte[] bytes = value.getBytes(UTF8_CHARSET);
out.write(bytes);
}
@Override
public String deserialize(DataInput2 in, int available) throws IOException {
if (available == -1) throw new IllegalArgumentException("STRING_NOSIZE does not work with collections.");
byte[] bytes = new byte[available];
in.readFully(bytes);
return new String(bytes, UTF8_CHARSET);
}
@Override
public boolean isTrusted() {
return true;
}
@Override
public boolean needsAvailableSizeHint() {
return true;
}
}