MarginaliaSearch/code/libraries/big-string/java/nu/marginalia/bigstring/CompressedBigString.java
Viktor Lofgren 1d34224416 (refac) Remove src/main from all source code paths.
Look, this will make the git history look funny, but trimming unnecessary depth from the source tree is a very necessary sanity-preserving measure when dealing with a super-modularized codebase like this one.

While it makes the project configuration a bit less conventional, it will save you several clicks every time you jump between modules.  Which you'll do a lot, because it's *modul*ar.  The src/main/java convention makes a lot of sense for a non-modular project though.  This ain't that.
2024-02-23 16:13:40 +01:00

28 lines
734 B
Java

package nu.marginalia.bigstring;
import java.nio.ByteBuffer;
public class CompressedBigString implements BigString {
private final int originalSize;
private final int length;
private final ByteBuffer encoded;
private final static CompressionBufferPool bufferPool = new CompressionBufferPool();
public CompressedBigString(String stringValue) {
encoded = bufferPool.bufferForThread().compress(stringValue);
originalSize = encoded.position();
length = stringValue.length();
}
@Override
public String decode() {
return bufferPool.bufferForThread().decompress(encoded, length, originalSize);
}
@Override
public int length() {
return length;
}
}