diff --git a/datastructures-common/src/main/java/org/xbib/datastructures/common/StrictArrayMap.java b/datastructures-common/src/main/java/org/xbib/datastructures/common/StrictArrayMap.java index d501a03..10a36f5 100644 --- a/datastructures-common/src/main/java/org/xbib/datastructures/common/StrictArrayMap.java +++ b/datastructures-common/src/main/java/org/xbib/datastructures/common/StrictArrayMap.java @@ -1,6 +1,5 @@ package org.xbib.datastructures.common; -import org.xbib.datastructures.common.StrictArraySet; import java.util.AbstractMap; import java.util.Collection; import java.util.Map; @@ -77,7 +76,7 @@ public class StrictArrayMap extends AbstractMap implements Map public V get(Object key) { for (int i = 0; i < keys.length; i++ ) { if (keys[i].equals(key)) { - return (V) values[i]; + return values[i]; } } return null; @@ -113,10 +112,10 @@ public class StrictArrayMap extends AbstractMap implements Map return new StrictArraySet<>(values); } - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "rawtypes"}) @Override public Set> entrySet() { - Entry[] entries = new Map.Entry[keys.length]; + Map.Entry[] entries = new Map.Entry[keys.length]; for (int i = 0; i < keys.length; i++) { entries[i] = new EntryHolder<>(keys[i], values[i]); } diff --git a/datastructures-common/src/main/java/org/xbib/datastructures/common/Utf8Util.java b/datastructures-common/src/main/java/org/xbib/datastructures/common/Utf8Util.java index e848799..b6e75b2 100644 --- a/datastructures-common/src/main/java/org/xbib/datastructures/common/Utf8Util.java +++ b/datastructures-common/src/main/java/org/xbib/datastructures/common/Utf8Util.java @@ -2,6 +2,9 @@ package org.xbib.datastructures.common; public class Utf8Util { + public Utf8Util() { + } + public static String decode(byte[] data, int offset, int length) { char[] chars = new char[length]; int len = 0; diff --git a/datastructures-json-noggit/src/test/java/org/xbib/datastructures/json/noggit/TestJSONParser.java b/datastructures-json-noggit/src/test/java/org/xbib/datastructures/json/noggit/TestJSONParser.java index e95381b..4568470 100755 --- a/datastructures-json-noggit/src/test/java/org/xbib/datastructures/json/noggit/TestJSONParser.java +++ b/datastructures-json-noggit/src/test/java/org/xbib/datastructures/json/noggit/TestJSONParser.java @@ -247,10 +247,10 @@ public class TestJSONParser { ret += parser.getNumberChars().length(); break; case JSONParser.NUMBER: - ret += parser.getDouble(); + ret = ret + (int)parser.getDouble(); break; case JSONParser.LONG: - ret += parser.getLong(); + ret = ret + (int)parser.getLong(); break; default: ret += ev; diff --git a/datastructures-json-noggit/src/test/java/org/xbib/datastructures/json/noggit/TestPerf.java b/datastructures-json-noggit/src/test/java/org/xbib/datastructures/json/noggit/TestPerf.java index 760accc..2d93735 100755 --- a/datastructures-json-noggit/src/test/java/org/xbib/datastructures/json/noggit/TestPerf.java +++ b/datastructures-json-noggit/src/test/java/org/xbib/datastructures/json/noggit/TestPerf.java @@ -135,7 +135,7 @@ public class TestPerf { ret += parser.getNumberChars().length(); break; case JSONParser.NUMBER: - ret += Double.doubleToRawLongBits(parser.getDouble()); + ret = ret + (int)Double.doubleToRawLongBits(parser.getDouble()); break; case JSONParser.ARRAY_START: ret += 13; diff --git a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/EmptyJsonListener.java b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/EmptyJsonListener.java index b008697..6425138 100644 --- a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/EmptyJsonListener.java +++ b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/EmptyJsonListener.java @@ -6,6 +6,9 @@ import java.util.Deque; public class EmptyJsonListener implements JsonResult { + public EmptyJsonListener() { + } + @Override public void begin() { } diff --git a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/FastDoubleParser.java b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/FastDoubleParser.java index cf828fe..22838d4 100644 --- a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/FastDoubleParser.java +++ b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/FastDoubleParser.java @@ -156,7 +156,7 @@ public class FastDoubleParser { if (neg_exp) { exp_number = -exp_number; } - exponent += exp_number; + exponent = exponent + (int)exp_number; } index = skipWhitespace(str, index, endIndex); if (index < endIndex @@ -164,7 +164,7 @@ public class FastDoubleParser { throw newNumberFormatException(str); } final boolean isDigitsTruncated; - int skipCountInTruncatedDigits = 0;//counts +1 if we skipped over the decimal point + int skipCountInTruncatedDigits = 0; if (digitCount > 19) { digits = 0; for (index = indexOfFirstDigit; index < indexAfterDigits; index++) { @@ -231,10 +231,7 @@ public class FastDoubleParser { if (index >= endIndex) { throw newNumberFormatException(str); } - - // Parse digits - // ------------ - long digits = 0;// digits is treated as an unsigned long + long digits = 0; int exponent = 0; final int indexOfFirstDigit = index; int virtualIndexOfPoint = -1; @@ -242,10 +239,9 @@ public class FastDoubleParser { char ch = 0; for (; index < endIndex; index++) { ch = str.charAt(index); - // Table look up is faster than a sequence of if-else-branches. int hexValue = ch > 255 ? OTHER_CLASS : CHAR_TO_HEX_MAP[ch]; if (hexValue >= 0) { - digits = (digits << 4) | hexValue;// This might overflow, we deal with it later. + digits = (digits << 4) | hexValue; } else if (hexValue == DECIMAL_POINT_CLASS) { if (virtualIndexOfPoint != -1) { throw newNumberFormatException(str); @@ -263,9 +259,6 @@ public class FastDoubleParser { digitCount = indexAfterDigits - indexOfFirstDigit - 1; exponent = Math.min(virtualIndexOfPoint - index + 1, MINIMAL_EIGHT_DIGIT_INTEGER) * 4; } - - // Parse exponent number - // --------------------- long exp_number = 0; final boolean hasExponent = (ch == 'p') || (ch == 'P'); if (hasExponent) { @@ -278,7 +271,6 @@ public class FastDoubleParser { throw newNumberFormatException(str); } do { - // Guard against overflow of exp_number if (exp_number < MINIMAL_EIGHT_DIGIT_INTEGER) { exp_number = 10 * exp_number + ch - '0'; } @@ -287,27 +279,20 @@ public class FastDoubleParser { if (neg_exp) { exp_number = -exp_number; } - exponent += exp_number; + exponent = exponent + (int)exp_number; } - - // Skip trailing whitespace - // ------------------------ index = skipWhitespace(str, index, endIndex); if (index < endIndex || digitCount == 0 && str.charAt(virtualIndexOfPoint) != '.' || !hasExponent) { throw newNumberFormatException(str); } - - // Re-parse digits in case of a potential overflow - // ----------------------------------------------- final boolean isDigitsTruncated; - int skipCountInTruncatedDigits = 0;//counts +1 if we skipped over the decimal point + int skipCountInTruncatedDigits = 0; if (digitCount > 16) { digits = 0; for (index = indexOfFirstDigit; index < indexAfterDigits; index++) { ch = str.charAt(index); - // Table look up is faster than a sequence of if-else-branches. int hexValue = ch > 127 ? OTHER_CLASS : CHAR_TO_HEX_MAP[ch]; if (hexValue >= 0) { if (Long.compareUnsigned(digits, MINIMAL_NINETEEN_DIGIT_INTEGER) < 0) { diff --git a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/ListNode.java b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/ListNode.java index b617fd2..cecb1a9 100644 --- a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/ListNode.java +++ b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/ListNode.java @@ -6,6 +6,9 @@ import java.util.List; public class ListNode extends TinyList.Builder> implements org.xbib.datastructures.api.ListNode { + public ListNode() { + } + public boolean has(int i) { return i >= 0 && i < size() && get(i) == null; } diff --git a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/MapNode.java b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/MapNode.java index edb59b3..42e22e9 100644 --- a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/MapNode.java +++ b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/MapNode.java @@ -6,6 +6,9 @@ import java.util.Map; public class MapNode extends TinyMap.Builder> implements org.xbib.datastructures.api.MapNode { + public MapNode() { + } + public boolean has(String name) { return containsKey(name); } diff --git a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardJsonListener.java b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardJsonListener.java index 5eeb537..264c2ef 100644 --- a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardJsonListener.java +++ b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardJsonListener.java @@ -17,6 +17,9 @@ public class StandardJsonListener implements JsonResult { private final ValueNode FALSE_NODE = new ValueNode(Boolean.FALSE); + public StandardJsonListener() { + } + public Deque> getStack() { return stack; } diff --git a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardListNode.java b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardListNode.java index e581075..e16579b 100644 --- a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardListNode.java +++ b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardListNode.java @@ -8,6 +8,9 @@ import java.util.List; @SuppressWarnings("serial") public class StandardListNode extends ArrayList implements Node> { + public StandardListNode() { + } + public boolean has(int i) { return i >= 0 && i < size() && get(i) == null; } diff --git a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardMapNode.java b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardMapNode.java index 4e37b6c..df77817 100644 --- a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardMapNode.java +++ b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StandardMapNode.java @@ -8,6 +8,9 @@ import java.util.Map; @SuppressWarnings("serial") public class StandardMapNode extends LinkedHashMap implements Node> { + public StandardMapNode() { + } + public boolean has(String name) { return containsKey(name); } diff --git a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StreamParser.java b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StreamParser.java index 8e80960..0c13ad0 100644 --- a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StreamParser.java +++ b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/StreamParser.java @@ -271,7 +271,7 @@ public class StreamParser implements Parser { private void expectChar(char expected) throws JsonException { if (ch != expected) { - throw new JsonException("expected char " + (char)expected + " but got " + (char)ch); + throw new JsonException("expected char " + expected + " but got " + (char)ch); } } diff --git a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/TinyJsonListener.java b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/TinyJsonListener.java index 445964a..89fe2c4 100644 --- a/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/TinyJsonListener.java +++ b/datastructures-json-tiny/src/main/java/org/xbib/datastructures/json/tiny/TinyJsonListener.java @@ -17,6 +17,9 @@ public class TinyJsonListener implements JsonResult { private final ValueNode FALSE_NODE = new ValueNode(Boolean.FALSE); + public TinyJsonListener() { + } + @Override public Node getResult() { return node; diff --git a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedListBase.java b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedListBase.java index 04d9400..506a05a 100644 --- a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedListBase.java +++ b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedListBase.java @@ -8,6 +8,9 @@ import java.util.function.Consumer; public abstract class IndexedListBase extends IndexedCollectionBase implements IndexedList { + public IndexedListBase() { + } + @Override public boolean addAll(int index, Collection collection) { boolean added = false; diff --git a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedMapBase.java b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedMapBase.java index f041870..e94a7a7 100644 --- a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedMapBase.java +++ b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedMapBase.java @@ -6,8 +6,12 @@ import java.util.Objects; import java.util.function.BiConsumer; public abstract class IndexedMapBase implements IndexedMap { + private static final Object SENTINEL = new Object(); + public IndexedMapBase() { + } + @Override public V getOrDefault(Object key, V defaultValue) { int index = getIndex(key); diff --git a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedSetBase.java b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedSetBase.java index dd97f1e..4bdd466 100644 --- a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedSetBase.java +++ b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/IndexedSetBase.java @@ -5,6 +5,9 @@ import java.util.Set; public abstract class IndexedSetBase extends IndexedCollectionBase implements IndexedSet { + public IndexedSetBase() { + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/Preconditions.java b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/Preconditions.java index c534bdd..817d825 100644 --- a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/Preconditions.java +++ b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/Preconditions.java @@ -2,6 +2,9 @@ package org.xbib.datastructures.tiny; public abstract class Preconditions { + public Preconditions() { + } + public static void checkArgument(boolean expression, String errorMessage) { if (!expression) { throw new IllegalArgumentException(errorMessage); diff --git a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/TinySet.java b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/TinySet.java index 43ca743..ee8c5c3 100644 --- a/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/TinySet.java +++ b/datastructures-tiny/src/main/java/org/xbib/datastructures/tiny/TinySet.java @@ -5,6 +5,9 @@ import java.util.Objects; public abstract class TinySet extends IndexedSetBase { + public TinySet() { + } + public static int tableSize(int length) { return Integer.highestOneBit(length * 2 - 1) * 2; } diff --git a/gradle.properties b/gradle.properties index 2ac09bf..a5fbade 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group = org.xbib name = datastructures -version = 1.0.1 +version = 2.0.0 org.gradle.warning.mode = ALL diff --git a/gradle/compile/java.gradle b/gradle/compile/java.gradle index de7e0b3..6e70802 100644 --- a/gradle/compile/java.gradle +++ b/gradle/compile/java.gradle @@ -6,13 +6,13 @@ java { } compileJava { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } compileTestJava { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } jar { @@ -38,10 +38,11 @@ artifacts { } tasks.withType(JavaCompile) { - // commented out mostly because of jmh generated code - options.compilerArgs << '-Xlint:all' + options.compilerArgs.add('-Xlint:all') + options.encoding = 'UTF-8' } -javadoc { +tasks.withType(Javadoc) { options.addStringOption('Xdoclint:none', '-quiet') + options.encoding = 'UTF-8' }