Skip to content

Commit 63dfcc2

Browse files
author
jsquatrito
committed
RLPNC-7496: Refactored parameters + universes to be part of RecordSimilarityProperties
1 parent 39fabf8 commit 63dfcc2

4 files changed

Lines changed: 28 additions & 29 deletions

File tree

json/src/main/java/com/basistech/rosette/apimodel/jackson/recordsimilaritydeserializers/RecordSimilarityRequestDeserializer.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,10 @@ public RecordSimilarityRequest deserialize(JsonParser jsonParser, Deserializatio
5656
.build();
5757
}
5858

59-
final Map<String, String> parameters = node.get("parameters") != null ? node.get("parameters").traverse(jsonParser.getCodec()).readValueAs(new TypeReference<Map<String, String>>() { }) : null;
60-
final String parameterUniverse = node.get("parameterUniverse") != null ? node.get("parameterUniverse").traverse(jsonParser.getCodec()).readValueAs(String.class) : null;
61-
6259
return RecordSimilarityRequest.builder()
6360
.fields(fields)
6461
.properties(properties)
6562
.records(records)
66-
.parameters(parameters)
67-
.parameterUniverse(parameterUniverse)
6863
.build();
6964
}
7065
}

json/src/test/java/com/basistech/rosette/apimodel/RecordSimilarityRequestTest.java

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ class RecordSimilarityRequestTest {
4343
private static final ObjectMapper MAPPER = ApiModelMixinModule.setupObjectMapper(new ObjectMapper());
4444

4545
private static final String EXPECTED_JSON = "{\"fields\":{\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true},\"records\":{\"left\":[{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob\":\"1993-04-16\",\"addr\":\"123 Roadlane Ave\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":\"Ivan R\",\"dob\":{\"date\":\"1993-04-16\"},\"addr\":{\"address\":\"123 Roadlane Ave\"}}]}}";
46-
private static final String EXPECTED_JSON_WITH_PARAMS = "{\"fields\":{\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true},\"records\":{\"left\":[{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob\":\"1993-04-16\",\"addr\":\"123 Roadlane Ave\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":\"Ivan R\",\"dob\":{\"date\":\"1993-04-16\"},\"addr\":{\"address\":\"123 Roadlane Ave\"}}]},\"parameters\":{\"timeDistanceWeight\":\"0.8\",\"stringDistanceWeight\":\"0.1\"}}";
47-
private static final String EXPECTED_JSON_WITH_UNIVERSE = "{\"fields\":{\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true},\"records\":{\"left\":[{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob\":\"1993-04-16\",\"addr\":\"123 Roadlane Ave\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":\"Ivan R\",\"dob\":{\"date\":\"1993-04-16\"},\"addr\":{\"address\":\"123 Roadlane Ave\"}}]},\"parameterUniverse\":\"myUniverse\"}";
46+
private static final String EXPECTED_JSON_WITH_PARAMS = "{\"fields\":{\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true,\"parameters\":{\"timeDistanceWeight\":\"0.8\",\"stringDistanceWeight\":\"0.1\"}},\"records\":{\"left\":[{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob\":\"1993-04-16\",\"addr\":\"123 Roadlane Ave\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":\"Ivan R\",\"dob\":{\"date\":\"1993-04-16\"},\"addr\":{\"address\":\"123 Roadlane Ave\"}}]}}";
47+
private static final String EXPECTED_JSON_WITH_UNIVERSE = "{\"fields\":{\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true,\"parameterUniverse\":\"myParameterUniverse\"},\"records\":{\"left\":[{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob\":\"1993-04-16\",\"addr\":\"123 Roadlane Ave\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":\"Ivan R\",\"dob\":{\"date\":\"1993-04-16\"},\"addr\":{\"address\":\"123 Roadlane Ave\"}}]}}";
4848

4949
private static final RecordSimilarityRequest EXPECTED_REQUEST = RecordSimilarityRequest.builder()
5050
.fields(Map.of(
51+
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).build(),
5152
"dob2", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.1).build(),
5253
"primaryName", RecordSimilarityFieldInfo.builder().type(RecordFieldType.NAME).weight(0.5).build(),
53-
"dob", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.2).build(),
54-
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).build()))
54+
"dob", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.2).build()))
5555
.properties(RecordSimilarityProperties.builder().threshold(0.7).includeExplainInfo(true).build())
5656
.records(RecordSimilarityRecords.builder()
5757
.left(
@@ -94,7 +94,16 @@ class RecordSimilarityRequestTest {
9494
"primaryName", RecordSimilarityFieldInfo.builder().type(RecordFieldType.NAME).weight(0.5).build(),
9595
"dob", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.2).build(),
9696
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).build()))
97-
.properties(RecordSimilarityProperties.builder().threshold(0.7).includeExplainInfo(true).build())
97+
.properties(RecordSimilarityProperties.builder()
98+
.threshold(0.7)
99+
.includeExplainInfo(true)
100+
.parameters(
101+
Map.of(
102+
"timeDistanceWeight", "0.8",
103+
"stringDistanceWeight", "0.1"
104+
)
105+
)
106+
.build())
98107
.records(RecordSimilarityRecords.builder()
99108
.left(
100109
List.of(
@@ -128,19 +137,19 @@ class RecordSimilarityRequestTest {
128137
)
129138
)
130139
).build()
131-
)
132-
.parameters(Map.of(
133-
"timeDistanceWeight", "0.8",
134-
"stringDistanceWeight", "0.1"))
135-
.build();
140+
).build();
136141

137142
private static final RecordSimilarityRequest EXPECTED_REQUEST_WITH_UNIVERSE = RecordSimilarityRequest.builder()
138143
.fields(Map.of(
139144
"dob", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.2).build(),
140145
"primaryName", RecordSimilarityFieldInfo.builder().type(RecordFieldType.NAME).weight(0.5).build(),
141146
"dob2", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.1).build(),
142147
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).build()))
143-
.properties(RecordSimilarityProperties.builder().threshold(0.7).includeExplainInfo(true).build())
148+
.properties(RecordSimilarityProperties.builder()
149+
.threshold(0.7)
150+
.includeExplainInfo(true)
151+
.parameterUniverse("myParameterUniverse")
152+
.build())
144153
.records(RecordSimilarityRecords.builder()
145154
.left(
146155
List.of(
@@ -174,8 +183,7 @@ class RecordSimilarityRequestTest {
174183
)
175184
)
176185
).build()
177-
)
178-
.parameterUniverse("myUniverse").build();
186+
).build();
179187

180188
@Test
181189
void testDeserialization() throws JsonProcessingException {

model/src/main/java/com/basistech/rosette/apimodel/recordsimilarity/RecordSimilarityProperties.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package com.basistech.rosette.apimodel.recordsimilarity;
1818

19+
import java.util.Map;
20+
21+
import com.fasterxml.jackson.annotation.JsonInclude;
1922
import javax.validation.Valid;
2023
import javax.validation.constraints.NotNull;
2124
import lombok.Builder;
@@ -25,8 +28,11 @@
2528
@Jacksonized
2629
@Builder
2730
@Value
31+
@JsonInclude(JsonInclude.Include.NON_NULL)
2832
public class RecordSimilarityProperties {
2933
@Builder.Default
3034
@NotNull @Valid Double threshold = 0.0;
3135
@NotNull @Valid boolean includeExplainInfo;
36+
@Valid Map<String, String> parameters;
37+
@Valid String parameterUniverse;
3238
}

model/src/main/java/com/basistech/rosette/apimodel/recordsimilarity/RecordSimilarityRequest.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,15 @@ public class RecordSimilarityRequest extends Request {
3232
@NotEmpty @Valid Map<String, RecordSimilarityFieldInfo> fields;
3333
@Valid RecordSimilarityProperties properties;
3434
@NotNull @Valid RecordSimilarityRecords records;
35-
@Valid Map<String, String> parameters;
36-
@Valid String parameterUniverse;
3735

3836
@Builder // workaround for inheritance https://github.com/rzwitserloot/lombok/issues/853
3937
public RecordSimilarityRequest(String profileId,
4038
Map<String, RecordSimilarityFieldInfo> fields,
4139
RecordSimilarityProperties properties,
42-
RecordSimilarityRecords records,
43-
Map<String, String> parameters,
44-
String parameterUniverse) {
40+
RecordSimilarityRecords records) {
4541
super(profileId);
4642
this.fields = fields;
4743
this.properties = properties;
4844
this.records = records;
49-
this.parameters = parameters;
50-
this.parameterUniverse = parameterUniverse;
51-
52-
if (this.parameters != null && parameterUniverse != null) {
53-
throw new IllegalArgumentException("Parameters and parameter universe may not both be specified");
54-
}
5545
}
5646
}

0 commit comments

Comments
 (0)