package org.mapdb.serializer;
import org.jetbrains.annotations.NotNull;
import org.mapdb.DataInput2;
import org.mapdb.DataOutput2;
import org.mapdb.Serializer;
import java.io.IOException;
/**
* Created by jan on 2/28/16.
*/
public class SerializerStringAscii extends GroupSerializerObjectArray<String> {
@Override
public void serialize(DataOutput2 out, String value) throws IOException {
int size = value.length();
out.packInt(size);
for (int i = 0; i < size; i++) {
out.write(value.charAt(i));
}
}
@Override
public String deserialize(DataInput2 in, int available) throws IOException {
int size = in.unpackInt();
StringBuilder result = new StringBuilder(size);
for (int i = 0; i < size; i++) {
result.append((char) in.readUnsignedByte());
}
return result.toString();
}
@Override
public boolean isTrusted() {
return true;
}
@Override
public int hashCode(@NotNull String s, int seed) {
return STRING.hashCode(s, seed);
}
// @Override
// public BTreeKeySerializer getBTreeKeySerializer(Comparator comparator) {
// if(comparator!=null && comparator!=Fun.COMPARATOR) {
// return super.getBTreeKeySerializer(comparator);
// }
// return BTreeKeySerializer.STRING; //PERF ascii specific serializer?
// }
}