1 package com.folioreader.model.dictionary;
3 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 import com.fasterxml.jackson.annotation.JsonProperty;
5 import com.fasterxml.jackson.core.JsonParser;
6 import com.fasterxml.jackson.core.JsonProcessingException;
7 import com.fasterxml.jackson.core.ObjectCodec;
8 import com.fasterxml.jackson.databind.DeserializationContext;
9 import com.fasterxml.jackson.databind.JsonNode;
10 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
11 import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
13 import java.io.IOException;
14 import java.util.ArrayList;
15 import java.util.Arrays;
16 import java.util.List;
19 * @author gautam chibde on 4/7/17.
21 @JsonIgnoreProperties(ignoreUnknown = true)
24 @JsonDeserialize(using = DefinitionDeserializer.class)
25 private String[] definition;
27 private List<Example> examples;
30 public String toString() {
32 "definition=" + Arrays.toString(definition) +
33 ", examples=" + examples +
37 public String[] getDefinition() {
41 public void setDefinition(String[] definition) {
42 this.definition = definition;
45 public List<Example> getExamples() {
49 public void setExamples(List<Example> examples) {
50 this.examples = examples;
53 public static class DefinitionDeserializer extends StdDeserializer<String[]> {
55 public DefinitionDeserializer() {
56 super(String[].class);
59 protected DefinitionDeserializer(Class<?> vc) {
64 public String[] deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
65 JsonNode node = p.getCodec().readTree(p);
66 List<String> strings = new ArrayList<>();
67 ObjectCodec oc = p.getCodec();
69 for (JsonNode n : node) {
70 strings.add(oc.treeToValue(n, String.class));
73 strings.add(oc.treeToValue(node, String.class));
75 return strings.toArray(new String[0]);