@@ -405,16 +374,37 @@
5.0.0-alpha1
+
+
+ --add-opens java.base/java.lang=ALL-UNNAMED
+ --add-opens java.base/java.util=ALL-UNNAMED
+ --add-opens java.base/java.net=ALL-UNNAMED
+ --add-opens java.base/sun.net.www.protocol.https=ALL-UNNAMED
+ --add-opens java.base/java.io=ALL-UNNAMED
+ --add-opens java.base/java.lang.reflect=ALL-UNNAMED
+
+
+
+ 11
+
+ UTF-8
+
+
3.1.1
2.21.2
4.12.0
- 4.7.6
- 11
- 11
+ 4.7.7
3.6.1
5.4.4
- 1.20.0
- 3.1.0
+ 1.21.0
+ 3.0.7
+ 1.5.3.Final
+ 0.2.0
+ 1.18.40
+ 2.0.17
+
+
+ 3.5.0
3.12.1
3.5.5
1.5
@@ -424,18 +414,11 @@
3.0.2
3.0.0
3.7.1
- 3.2.5
- 3.0.5
- 5.8.2
- 1.9.1
- 1.9.2
- 2.2
- 1.5.3.Final
- 0.2.0
- 1.18.38
- 2.0.17
- UTF-8
+ 3.5.5
3.13.2
+
+ 5.11.4
+ 2.3.0
diff --git a/src/main/java/com/mindee/v1/parsing/LocalResponse.java b/src/main/java/com/mindee/v1/parsing/LocalResponse.java
index b9244d014..b5f9aa0d6 100644
--- a/src/main/java/com/mindee/v1/parsing/LocalResponse.java
+++ b/src/main/java/com/mindee/v1/parsing/LocalResponse.java
@@ -62,6 +62,7 @@ private R deserialize(
public AsyncPredictResponse deserializeAsyncResponse(
Class productClass
) throws IOException {
+ @SuppressWarnings("unchecked")
AsyncPredictResponse response = deserialize(AsyncPredictResponse.class, productClass);
response.setRawResponse(new String(this.file, StandardCharsets.UTF_8));
return response;
@@ -78,6 +79,7 @@ public AsyncPredictResponse deserializeAsyncResponse(
public PredictResponse deserializeSyncResponse(
Class productClass
) throws IOException {
+ @SuppressWarnings("unchecked")
PredictResponse response = deserialize(PredictResponse.class, productClass);
response.setRawResponse(new String(this.file, StandardCharsets.UTF_8));
return response;
diff --git a/src/main/java/com/mindee/v1/parsing/generated/GeneratedObject.java b/src/main/java/com/mindee/v1/parsing/generated/GeneratedObject.java
index ce1c883f0..6fba3e9b8 100644
--- a/src/main/java/com/mindee/v1/parsing/generated/GeneratedObject.java
+++ b/src/main/java/com/mindee/v1/parsing/generated/GeneratedObject.java
@@ -36,7 +36,7 @@ public StringField asStringField() {
* @return An {@link AmountField} containing a double value.
*/
public AmountField asAmountField() {
- Double value;
+ double value;
Object rawValue = this.get("value");
if (rawValue instanceof Integer) {
value = ((Integer) rawValue).doubleValue();
@@ -109,13 +109,13 @@ public Polygon getAsPolygon(String key) {
if (!this.containsKey(key)) {
return null;
}
- Object rawPolygon = this.get(key);
+ var rawPolygon = this.get(key);
// a valid polygon must have at least 4 points
if (!(rawPolygon instanceof List && ((List>) rawPolygon).size() >= 4)) {
return null;
}
// a valid point must have exactly 2 coordinates
- for (Object point : (List>) rawPolygon) {
+ for (var point : (List>) rawPolygon) {
if (!(point instanceof List) || ((List>) point).size() != 2) {
return null;
}
@@ -125,7 +125,9 @@ public Polygon getAsPolygon(String key) {
}
}
}
- return new Polygon((List>) rawPolygon);
+ @SuppressWarnings("unchecked")
+ List> points = (List>) rawPolygon;
+ return new Polygon(points);
}
/**
diff --git a/src/main/java/com/mindee/v1/parsing/generated/GeneratedV1PredictionDeserializer.java b/src/main/java/com/mindee/v1/parsing/generated/GeneratedV1PredictionDeserializer.java
index 8369810ac..cdf946f85 100644
--- a/src/main/java/com/mindee/v1/parsing/generated/GeneratedV1PredictionDeserializer.java
+++ b/src/main/java/com/mindee/v1/parsing/generated/GeneratedV1PredictionDeserializer.java
@@ -1,17 +1,13 @@
package com.mindee.v1.parsing.generated;
import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mindee.v1.product.generated.GeneratedV1Document;
import java.io.IOException;
import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
/**
* JSON deserializer for generated documents v1.x.
@@ -22,8 +18,6 @@ public GeneratedV1PredictionDeserializer(Class> vc) {
super(vc);
}
- private static final ObjectMapper mapper = new ObjectMapper();
-
public GeneratedV1PredictionDeserializer() {
this(null);
}
@@ -33,27 +27,24 @@ public GeneratedV1Document deserialize(
JsonParser jsonParser,
DeserializationContext deserializationContext
) throws IOException {
- ObjectNode rootNode = jsonParser.getCodec().readTree(jsonParser);
- Map features = new HashMap<>();
+ var mapper = jsonParser.getCodec();
+ ObjectNode rootNode = mapper.readTree(jsonParser);
+ var features = new HashMap();
- for (Iterator> subNode = rootNode.fields(); subNode.hasNext();) {
- Map.Entry featureNode = subNode.next();
+ for (var featureNode : rootNode.properties()) {
String featureName = featureNode.getKey();
GeneratedFeature feature;
-
if (featureNode.getValue().isArray()) {
feature = new GeneratedFeature(true);
for (JsonNode item : featureNode.getValue()) {
- GeneratedObject value = mapper.readerFor(new TypeReference() {
- }).readValue(item);
+ GeneratedObject value = mapper.treeToValue(item, GeneratedObject.class);
feature.add(value);
}
features.put(featureName, feature);
} else {
feature = new GeneratedFeature(false);
- GeneratedObject value = mapper.readerFor(new TypeReference() {
- }).readValue(featureNode.getValue());
+ GeneratedObject value = mapper.treeToValue(featureNode.getValue(), GeneratedObject.class);
feature.add(value);
}
features.put(featureName, feature);
diff --git a/src/main/java/com/mindee/v2/parsing/inference/field/DynamicField.java b/src/main/java/com/mindee/v2/parsing/inference/field/DynamicField.java
index c0966bf0c..9710cf76c 100644
--- a/src/main/java/com/mindee/v2/parsing/inference/field/DynamicField.java
+++ b/src/main/java/com/mindee/v2/parsing/inference/field/DynamicField.java
@@ -82,13 +82,13 @@ public ObjectField getObjectField() throws IllegalStateException {
*/
public T getField(Class type) throws IllegalArgumentException {
if (type == SimpleField.class) {
- return (T) this.getSimpleField();
+ return type.cast(this.getSimpleField());
}
if (type == ListField.class) {
- return (T) this.getListField();
+ return type.cast(this.getListField());
}
if (type == ObjectField.class) {
- return (T) this.getObjectField();
+ return type.cast(this.getObjectField());
}
throw new IllegalArgumentException("Cannot cast to " + type.getSimpleName());
}
diff --git a/src/test/java/com/mindee/v1/http/MindeeHttpApiV1Test.java b/src/test/java/com/mindee/v1/http/MindeeHttpApiV1Test.java
index 1898864f9..9efd4dd19 100644
--- a/src/test/java/com/mindee/v1/http/MindeeHttpApiV1Test.java
+++ b/src/test/java/com/mindee/v1/http/MindeeHttpApiV1Test.java
@@ -8,7 +8,6 @@
import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
import static com.mindee.TestingUtilities.getV1ResourcePath;
import static com.mindee.TestingUtilities.getV1ResourcePathString;
-import static org.hamcrest.MatcherAssert.assertThat;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -35,7 +34,6 @@
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.routing.DefaultProxyRoutePlanner;
import org.apache.hc.core5.http.HttpHost;
-import org.hamcrest.collection.IsMapContaining;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -213,7 +211,7 @@ void givenParseParametersWithFileUrl_whenParsed_shouldBuildRequestCorrectly() th
Map requestMap = objectMapper
.readValue(recordedRequest.getBody().readUtf8(), new TypeReference