2626import com .basistech .rosette .apimodel .recordsimilarity .RecordSimilarityResult ;
2727import com .fasterxml .jackson .core .JsonParser ;
2828import com .fasterxml .jackson .databind .JsonNode ;
29+
30+ import javax .validation .Valid ;
2931import javax .validation .constraints .NotNull ;
3032
3133import com .basistech .rosette .apimodel .recordsimilarity .RecordSimilarityFieldInfo ;
@@ -39,11 +41,23 @@ final class RecordSimilarityDeserializerUtilities {
3941 private RecordSimilarityDeserializerUtilities () {
4042 }
4143
42- public static RecordSimilarityResult parseResult (JsonNode node , JsonParser jsonParser , Map <String , RecordSimilarityFieldInfo > fields ) throws IOException {
43- final Double score = node .get ("score" ) != null ? node .get ("score" ).traverse (jsonParser .getCodec ()).readValueAs (Double .class ) : null ;
44- final RecordSimilarityExplainInfo explainInfo = node .get ("explainInfo" ) != null ? node .get ("explainInfo" ).traverse (jsonParser .getCodec ()).readValueAs (RecordSimilarityExplainInfo .class ) : null ;
45- final Map <String , RecordSimilarityField > left = node .get ("left" ) != null && fields != null ? parseRecord (node .get ("left" ), jsonParser , fields ) : null ;
46- final Map <String , RecordSimilarityField > right = node .get ("right" ) != null && fields != null ? parseRecord (node .get ("right" ), jsonParser , fields ) : null ;
44+ public static RecordSimilarityResult parseResult (
45+ JsonNode node ,
46+ JsonParser jsonParser ,
47+ @ Valid Map <String , RecordSimilarityFieldInfo > fields
48+ ) throws IOException {
49+ final Double score = node .get ("score" ) != null
50+ ? node .get ("score" ).traverse (jsonParser .getCodec ()).readValueAs (Double .class )
51+ : null ;
52+ final RecordSimilarityExplainInfo explainInfo = node .get ("explainInfo" ) != null
53+ ? node .get ("explainInfo" ).traverse (jsonParser .getCodec ()).readValueAs (RecordSimilarityExplainInfo .class )
54+ : null ;
55+ final Map <String , RecordSimilarityField > left = node .get ("left" ) != null && fields != null
56+ ? parseRecord (node .get ("left" ), jsonParser , fields )
57+ : null ;
58+ final Map <String , RecordSimilarityField > right = node .get ("right" ) != null && fields != null
59+ ? parseRecord (node .get ("right" ), jsonParser , fields )
60+ : null ;
4761 final String error = Optional .ofNullable (node .get ("error" )).map (JsonNode ::asText ).orElse (null );
4862 return RecordSimilarityResult .builder ()
4963 .score (score )
@@ -54,7 +68,11 @@ public static RecordSimilarityResult parseResult(JsonNode node, JsonParser jsonP
5468 .build ();
5569 }
5670
57- static Map <String , RecordSimilarityField > parseRecord (JsonNode jsonNode , JsonParser jsonParser , @ NotNull Map <String , RecordSimilarityFieldInfo > fields ) throws IOException {
71+ static Map <String , RecordSimilarityField > parseRecord (
72+ JsonNode jsonNode ,
73+ JsonParser jsonParser ,
74+ @ NotNull @ Valid Map <String , RecordSimilarityFieldInfo > fields
75+ ) throws IOException {
5876 final Iterator <Map .Entry <String , JsonNode >> recordsIterator = jsonNode .fields ();
5977 final Map <String , RecordSimilarityField > recordMap = new HashMap <>();
6078 while (recordsIterator .hasNext ()) {
0 commit comments