strangedb/src/main/java/org/warp/jcwdb/DBStringParser.java

28 lines
850 B
Java
Raw Normal View History

2018-11-20 18:39:48 +01:00
package org.warp.jcwdb;
2018-12-04 23:57:49 +01:00
import java.nio.charset.StandardCharsets;
2018-11-20 18:39:48 +01:00
2018-12-04 23:57:49 +01:00
import net.openhft.hashing.LongHashFunction;
2018-11-20 18:39:48 +01:00
public class DBStringParser extends DBTypeParserImpl<String> {
2018-12-04 23:57:49 +01:00
private static final LongHashFunction hashFunction = net.openhft.hashing.LongHashFunction.xx();
2018-11-22 23:31:41 +01:00
private static final DBReader<String> defaultReader = (i, size) -> {
2018-12-04 23:57:49 +01:00
return new String(i.readBytes(size), StandardCharsets.UTF_16LE);
2018-11-20 18:39:48 +01:00
};
public DBReader<String> getReader() {
return defaultReader;
}
public DBDataOutput<String> getWriter(final String value) {
return DBDataOutput.create((o) -> {
2018-12-04 23:57:49 +01:00
o.write(value.getBytes(StandardCharsets.UTF_16LE));
}, DBStandardTypes.STRING, value.length() * 2, calculateHash(value));
}
@Override
public long calculateHash(String value) {
return hashFunction.hashBytes(value.getBytes(StandardCharsets.UTF_16LE));
2018-11-20 18:39:48 +01:00
}
}