diff --git a/data-store/src/main/java/org/lucares/pdb/datastore/internal/QueryCompletionIndex.java b/data-store/src/main/java/org/lucares/pdb/datastore/internal/QueryCompletionIndex.java index 2cf5815..8d30450 100644 --- a/data-store/src/main/java/org/lucares/pdb/datastore/internal/QueryCompletionIndex.java +++ b/data-store/src/main/java/org/lucares/pdb/datastore/internal/QueryCompletionIndex.java @@ -283,7 +283,7 @@ public class QueryCompletionIndex implements AutoCloseable { return new byte[0]; } - return VariableByteEncoder.encode(stringCompressor.put(field)); + return VariableByteEncoder.encode(stringCompressor.putString(field)); } @Override @@ -387,7 +387,7 @@ public class QueryCompletionIndex implements AutoCloseable { public SortedSet find(final DateTimeRange dateRange, final Tag tag, final String field) { final SortedSet result = new TreeSet<>(); - final int tagBKey = stringCompressor.put(field); + final int tagBKey = stringCompressor.putString(field); final Tag tagB = new Tag(tagBKey, -1); // the value must be negative for the prefix search to work. See // EncoderTwoTags final TwoTags keyPrefix = new TwoTags(tag, tagB); @@ -410,7 +410,7 @@ public class QueryCompletionIndex implements AutoCloseable { public SortedSet findAllValuesForField(final DateTimeRange dateRange, final String field) { final SortedSet result = new TreeSet<>(); - final int tagKey = stringCompressor.put(field); + final int tagKey = stringCompressor.putString(field); final Tag keyPrefix = new Tag(tagKey, -1); // the value must be negative for the prefix search to work. See final PartitionIdSource partitionIdSource = new DatePartitioner(dateRange); diff --git a/data-store/src/main/java/org/lucares/pdb/datastore/internal/TagEncoderDecoder.java b/data-store/src/main/java/org/lucares/pdb/datastore/internal/TagEncoderDecoder.java index 996b9b7..f347671 100644 --- a/data-store/src/main/java/org/lucares/pdb/datastore/internal/TagEncoderDecoder.java +++ b/data-store/src/main/java/org/lucares/pdb/datastore/internal/TagEncoderDecoder.java @@ -21,12 +21,12 @@ class TagEncoderDecoder implements EncoderDecoder { final String key = stringCompressor.getKeyAsString(tag); final byte[] result; if (!key.isEmpty()) { - final Integer keyAsLong = stringCompressor.put(key); + final Integer keyAsLong = stringCompressor.putString(key); keyAndValueCompressed.add(keyAsLong); final String value = stringCompressor.getValueAsString(tag); if (!value.isEmpty()) { - final Integer valueAsLong = stringCompressor.put(value); + final Integer valueAsLong = stringCompressor.putString(value); keyAndValueCompressed.add(valueAsLong); } result = VariableByteEncoder.encode(keyAndValueCompressed); diff --git a/pdb-api/src/main/java/org/lucares/pdb/api/StringCompressor.java b/pdb-api/src/main/java/org/lucares/pdb/api/StringCompressor.java index 37834ba..ea98010 100644 --- a/pdb-api/src/main/java/org/lucares/pdb/api/StringCompressor.java +++ b/pdb-api/src/main/java/org/lucares/pdb/api/StringCompressor.java @@ -25,24 +25,24 @@ public class StringCompressor { final UniqueStringIntegerPairs mapsi = new UniqueStringIntegerPairs(storageBasePath); final StringCompressor result = new StringCompressor(mapsi); - result.put(ALL_DOCS_KEY); - result.put(""); + result.putString(ALL_DOCS_KEY); + result.putString(""); TAG_ALL_DOCS = result.createTag(ALL_DOCS_KEY, ""); return result; } - public int put(final String string) { + public int putString(final String string) { return usip.computeIfAbsent(string, s -> usip.getHighestInteger() + 1); } - public int put(final byte[] bytes, final int start, final int endExclusive, + public int putStringFromBytes(final byte[] bytes, final int start, final int endExclusive, final Function postProcess) { return usip.computeIfAbsent(bytes, start, endExclusive, postProcess); } - public int put(final String value, final Function postProcess) { + public int putString(final String value, final Function postProcess) { final String processedValue = postProcess.apply(value); return usip.computeIfAbsentWithPostprocess(processedValue, postProcess); } @@ -78,18 +78,18 @@ public class StringCompressor { } public Tags createAndAddToDictionary(final String key, final String value) { - final int keyAsInt = put(key); - final int valueAsInt = put(value); + final int keyAsInt = putString(key); + final int valueAsInt = putString(value); return TagsBuilder.create().add(keyAsInt, valueAsInt).build(); } public Tags createAndAddToDictionary(final String key1, final String value1, final String key2, final String value2) { - final int key1AsInt = put(key1); - final int value1AsInt = put(value1); + final int key1AsInt = putString(key1); + final int value1AsInt = putString(value1); - final int key2AsInt = put(key2); - final int value2AsInt = put(value2); + final int key2AsInt = putString(key2); + final int value2AsInt = putString(value2); final Tags result = TagsBuilder.create().add(key1AsInt, value1AsInt).add(key2AsInt, value2AsInt).build(); return result; @@ -98,14 +98,14 @@ public class StringCompressor { public Tags createAndAddToDictionary(final String key1, final String value1, final String key2, final String value2, final String key3, final String value3) { - final int key1AsInt = put(key1); - final int value1AsInt = put(value1); + final int key1AsInt = putString(key1); + final int value1AsInt = putString(value1); - final int key2AsInt = put(key2); - final int value2AsInt = put(value2); + final int key2AsInt = putString(key2); + final int value2AsInt = putString(value2); - final int key3AsInt = put(key3); - final int value3AsInt = put(value3); + final int key3AsInt = putString(key3); + final int value3AsInt = putString(value3); final Tags result = TagsBuilder.create().add(key1AsInt, value1AsInt).add(key2AsInt, value2AsInt) .add(key3AsInt, value3AsInt).build(); @@ -115,17 +115,17 @@ public class StringCompressor { public Tags createAndAddToDictionary(final String key1, final String value1, final String key2, final String value2, final String key3, final String value3, final String key4, final String value4) { - final int key1AsInt = put(key1); - final int value1AsInt = put(value1); + final int key1AsInt = putString(key1); + final int value1AsInt = putString(value1); - final int key2AsInt = put(key2); - final int value2AsInt = put(value2); + final int key2AsInt = putString(key2); + final int value2AsInt = putString(value2); - final int key3AsInt = put(key3); - final int value3AsInt = put(value3); + final int key3AsInt = putString(key3); + final int value3AsInt = putString(value3); - final int key4AsInt = put(key4); - final int value4AsInt = put(value4); + final int key4AsInt = putString(key4); + final int value4AsInt = putString(value4); final Tags result = TagsBuilder.create().add(key1AsInt, value1AsInt).add(key2AsInt, value2AsInt) .add(key3AsInt, value3AsInt).add(key4AsInt, value4AsInt).build(); diff --git a/pdb-api/src/main/java/org/lucares/pdb/api/Tags.java b/pdb-api/src/main/java/org/lucares/pdb/api/Tags.java index 13cad11..231c715 100644 --- a/pdb-api/src/main/java/org/lucares/pdb/api/Tags.java +++ b/pdb-api/src/main/java/org/lucares/pdb/api/Tags.java @@ -128,7 +128,7 @@ public class Tags implements Comparable { } public String getValue(final String key) { - final Tag needle = new Tag(STRING_COMPRESSOR.put(key), 0); + final Tag needle = new Tag(STRING_COMPRESSOR.putString(key), 0); final int index = Collections.binarySearch(tags, needle, TagByKeyComparator.INSTANCE); if (index >= 0) { @@ -139,7 +139,7 @@ public class Tags implements Comparable { } public int getValueAsInt(final String key) { - final Tag needle = new Tag(STRING_COMPRESSOR.put(key), 0); + final Tag needle = new Tag(STRING_COMPRESSOR.putString(key), 0); final int index = Collections.binarySearch(tags, needle, TagByKeyComparator.INSTANCE); if (index >= 0) { diff --git a/pdb-api/src/test/java/org/lucares/pdb/api/StringCompressorTest.java b/pdb-api/src/test/java/org/lucares/pdb/api/StringCompressorTest.java index 03a9b69..7ef41e5 100644 --- a/pdb-api/src/test/java/org/lucares/pdb/api/StringCompressorTest.java +++ b/pdb-api/src/test/java/org/lucares/pdb/api/StringCompressorTest.java @@ -11,9 +11,9 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Assertions; import org.lucares.utils.file.FileUtils; public class StringCompressorTest { @@ -34,7 +34,7 @@ public class StringCompressorTest { final StringCompressor keyValueCompressor = StringCompressor.create(dataDirectory.resolve("key.csv")); final String value = "foo"; - final Integer intFoo = keyValueCompressor.put(value); + final Integer intFoo = keyValueCompressor.putString(value); final String actual = keyValueCompressor.get(intFoo); Assertions.assertEquals(value, actual); @@ -47,7 +47,7 @@ public class StringCompressorTest { { final StringCompressor keyValueCompressor = StringCompressor.create(database); - keyValueCompressor.put(value); + keyValueCompressor.putString(value); } { final StringCompressor keyValueCompressor = StringCompressor.create(database); diff --git a/pdb-api/src/test/java/org/lucares/pdb/api/StringInserter.java b/pdb-api/src/test/java/org/lucares/pdb/api/StringInserter.java index e5bbbdc..510b65a 100644 --- a/pdb-api/src/test/java/org/lucares/pdb/api/StringInserter.java +++ b/pdb-api/src/test/java/org/lucares/pdb/api/StringInserter.java @@ -21,7 +21,7 @@ final class StringInserter implements Callable> { final List result = new ArrayList<>(); for (int i = 0; i < numEntries; i++) { final String s = UUID.randomUUID().toString(); - stringCompressor.put(s); + stringCompressor.putString(s); result.add(s); } return result; diff --git a/pdb-ui/src/main/java/org/lucares/pdbui/CsvReaderCsvToEntryTransformer.java b/pdb-ui/src/main/java/org/lucares/pdbui/CsvReaderCsvToEntryTransformer.java index 0c77843..2b532ab 100644 --- a/pdb-ui/src/main/java/org/lucares/pdbui/CsvReaderCsvToEntryTransformer.java +++ b/pdb-ui/src/main/java/org/lucares/pdbui/CsvReaderCsvToEntryTransformer.java @@ -49,8 +49,8 @@ public class CsvReaderCsvToEntryTransformer implements CsvToEntryTransformer { final int chunksize = 1000; Entries entries = new Entries(chunksize); - final int keyTimestamp = Tags.STRING_COMPRESSOR.put(settings.getTimeColumn()); - final int keyDuration = Tags.STRING_COMPRESSOR.put(settings.getValueColumn()); + final int keyTimestamp = Tags.STRING_COMPRESSOR.putString(settings.getTimeColumn()); + final int keyDuration = Tags.STRING_COMPRESSOR.putString(settings.getValueColumn()); final DateTimeFormatter dateParser = createDateParser(settings.getDateTimePattern()); final Tags additionalTags = initAdditionalTags(settings); @@ -101,7 +101,7 @@ public class CsvReaderCsvToEntryTransformer implements CsvToEntryTransformer { final String renameTo = settings.getColumnDefinitions().getRenameTo(columnName); final String renamedColumn = renameTo != null ? renameTo : columnName; - compressedHeaders[i] = Tags.STRING_COMPRESSOR.put(renamedColumn); + compressedHeaders[i] = Tags.STRING_COMPRESSOR.putString(renamedColumn); final EnumSet postProcessors = settings.getColumnDefinitions() .getPostProcessors(columnName); final Function postProcessFunction = PostProcessors.toFunction(postProcessors); @@ -134,7 +134,7 @@ public class CsvReaderCsvToEntryTransformer implements CsvToEntryTransformer { duration = Long.parseLong(val); } else if (!val.isEmpty()) { final Function postProcess = postProcessersForColumns.get(i); - final int value = Tags.STRING_COMPRESSOR.put(val, postProcess); + final int value = Tags.STRING_COMPRESSOR.putString(val, postProcess); tagsBuilder.add(key, value); } diff --git a/pdb-ui/src/main/java/org/lucares/pdbui/CsvToEntryTransformer.java b/pdb-ui/src/main/java/org/lucares/pdbui/CsvToEntryTransformer.java index d96ceae..bb13b88 100644 --- a/pdb-ui/src/main/java/org/lucares/pdbui/CsvToEntryTransformer.java +++ b/pdb-ui/src/main/java/org/lucares/pdbui/CsvToEntryTransformer.java @@ -21,8 +21,8 @@ public interface CsvToEntryTransformer { default Tags initAdditionalTags(final CsvReaderSettings settings) { final TagsBuilder tags = new TagsBuilder(); for (final java.util.Map.Entry entry : settings.getAdditionalTags().entrySet()) { - final int field = Tags.STRING_COMPRESSOR.put(entry.getKey()); - final int value = Tags.STRING_COMPRESSOR.put(entry.getValue()); + final int field = Tags.STRING_COMPRESSOR.putString(entry.getKey()); + final int value = Tags.STRING_COMPRESSOR.putString(entry.getValue()); tags.add(field, value); } return tags.build(); diff --git a/pdb-ui/src/main/java/org/lucares/pdbui/JsonToEntryTransformer.java b/pdb-ui/src/main/java/org/lucares/pdbui/JsonToEntryTransformer.java index 81f5282..3f3f13e 100644 --- a/pdb-ui/src/main/java/org/lucares/pdbui/JsonToEntryTransformer.java +++ b/pdb-ui/src/main/java/org/lucares/pdbui/JsonToEntryTransformer.java @@ -72,12 +72,12 @@ public class JsonToEntryTransformer implements LineToEntryTransformer { // ignore: we only support key/value tags break; default: - final int keyAsInt = Tags.STRING_COMPRESSOR.put(key); + final int keyAsInt = Tags.STRING_COMPRESSOR.putString(key); final int valueAsInt; if (value instanceof String) { - valueAsInt = Tags.STRING_COMPRESSOR.put((String) value); + valueAsInt = Tags.STRING_COMPRESSOR.putString((String) value); } else if (value != null) { - valueAsInt = Tags.STRING_COMPRESSOR.put(String.valueOf(value)); + valueAsInt = Tags.STRING_COMPRESSOR.putString(String.valueOf(value)); } else { continue; } diff --git a/pdb-ui/src/main/java/org/lucares/pdbui/NoCopyCsvToEntryTransformer.java b/pdb-ui/src/main/java/org/lucares/pdbui/NoCopyCsvToEntryTransformer.java index 9a74a83..4ddd920 100644 --- a/pdb-ui/src/main/java/org/lucares/pdbui/NoCopyCsvToEntryTransformer.java +++ b/pdb-ui/src/main/java/org/lucares/pdbui/NoCopyCsvToEntryTransformer.java @@ -59,8 +59,8 @@ class NoCopyCsvToEntryTransformer implements CsvToEntryTransformer { int lineCounter = 0; final byte[] buffer = new byte[4096 * 16]; - final int keyTimestamp = stringCompressor.put(settings.getTimeColumn()); - final int keyDuration = stringCompressor.put(settings.getValueColumn()); + final int keyTimestamp = stringCompressor.putString(settings.getTimeColumn()); + final int keyDuration = stringCompressor.putString(settings.getValueColumn()); final FastISODateParser dateParser = new FastISODateParser(); Tags additionalTags = initAdditionalTags(settings); @@ -148,7 +148,7 @@ class NoCopyCsvToEntryTransformer implements CsvToEntryTransformer { final String renameTo = settings.getColumnDefinitions().getRenameTo(columnName); final String renamedColumn = renameTo != null ? renameTo : columnName; - columns[i] = stringCompressor.put(renamedColumn); + columns[i] = stringCompressor.putString(renamedColumn); final EnumSet postProcessors = settings.getColumnDefinitions() .getPostProcessors(columnName); final Function postProcessFunction = PostProcessors.toFunction(postProcessors); @@ -190,8 +190,8 @@ class NoCopyCsvToEntryTransformer implements CsvToEntryTransformer { duration = parseLong(line, lastSeparatorPosition + 1, separatorPosition); } else if (lastSeparatorPosition + 1 < separatorPosition) { // value is not empty final Function postProcess = postProcessersForColumns.get(i); - final int value = stringCompressor.put(line, lastSeparatorPosition + 1, separatorPosition, - postProcess); + final int value = stringCompressor.putStringFromBytes(line, lastSeparatorPosition + 1, + separatorPosition, postProcess); tagsBuilder.add(key, value); } diff --git a/pdb-ui/src/main/java/org/lucares/pdbui/TagMatchExtractor.java b/pdb-ui/src/main/java/org/lucares/pdbui/TagMatchExtractor.java index a5a7fec..f16aef9 100644 --- a/pdb-ui/src/main/java/org/lucares/pdbui/TagMatchExtractor.java +++ b/pdb-ui/src/main/java/org/lucares/pdbui/TagMatchExtractor.java @@ -26,8 +26,8 @@ public class TagMatchExtractor { if (matcher.find() && matcher.groupCount() >= 1) { final String group = matcher.group(1); - Tags.STRING_COMPRESSOR.put(tagMatcher.tag()); - Tags.STRING_COMPRESSOR.put(group); + Tags.STRING_COMPRESSOR.putString(tagMatcher.tag()); + Tags.STRING_COMPRESSOR.putString(group); System.out.println(tagMatcher.tag() + " -> " + group); final Tag tag = Tags.STRING_COMPRESSOR.createTag(tagMatcher.tag(), group);