use of org.codehaus.jackson.node.ArrayNode in project stanbol by apache.
the class AnalyzedTextSerializer method writeSpan.
private ObjectNode writeSpan(Span span) throws IOException {
log.trace("wirte {}", span);
ObjectNode jSpan = mapper.createObjectNode();
jSpan.put("type", span.getType().name());
jSpan.put("start", span.getStart());
jSpan.put("end", span.getEnd());
for (String key : span.getKeys()) {
List<Value<?>> values = span.getValues(key);
if (values.size() == 1) {
jSpan.put(key, writeValue(values.get(0)));
} else {
ArrayNode jValues = jSpan.putArray(key);
for (Value<?> value : values) {
jValues.add(writeValue(value));
}
jSpan.put(key, jValues);
}
}
log.trace(" ... {}", jSpan);
return jSpan;
}
use of org.codehaus.jackson.node.ArrayNode in project stanbol by apache.
the class MorphoFeaturesSupport method serialize.
@Override
public ObjectNode serialize(ObjectMapper mapper, MorphoFeatures morpho) {
ObjectNode jMorpho = mapper.createObjectNode();
jMorpho.put("lemma", morpho.getLemma());
List<CaseTag> caseList = morpho.getCaseList();
if (!caseList.isEmpty()) {
ArrayNode jCases = mapper.createArrayNode();
for (CaseTag caseTag : caseList) {
ObjectNode jCase = mapper.createObjectNode();
jCase.put("tag", caseTag.getTag());
if (caseTag.getCase() != null) {
jCase.put("type", caseTag.getCase().name());
}
jCases.add(jCase);
}
jMorpho.put("case", jCases);
}
List<Definitness> definitnesses = morpho.getDefinitnessList();
if (!definitnesses.isEmpty()) {
if (definitnesses.size() == 1) {
jMorpho.put("definitness", definitnesses.get(0).name());
} else {
ArrayNode jDefinitnesses = mapper.createArrayNode();
for (Definitness d : definitnesses) {
jDefinitnesses.add(d.name());
}
jMorpho.put("definitness", jDefinitnesses);
}
}
List<GenderTag> genderList = morpho.getGenderList();
if (!genderList.isEmpty()) {
ArrayNode jGenders = mapper.createArrayNode();
for (GenderTag genderTag : genderList) {
ObjectNode jGender = mapper.createObjectNode();
jGender.put("tag", genderTag.getTag());
if (genderTag.getGender() != null) {
jGender.put("type", genderTag.getGender().name());
}
jGenders.add(jGender);
}
jMorpho.put("gender", jGenders);
}
List<NumberTag> numberList = morpho.getNumberList();
if (!numberList.isEmpty()) {
ArrayNode jNumbers = mapper.createArrayNode();
for (NumberTag numberTag : numberList) {
ObjectNode jNumber = mapper.createObjectNode();
jNumber.put("tag", numberTag.getTag());
if (numberTag.getNumber() != null) {
jNumber.put("type", numberTag.getNumber().name());
}
jNumbers.add(jNumber);
}
jMorpho.put("number", jNumbers);
}
List<Person> persons = morpho.getPersonList();
if (!persons.isEmpty()) {
if (persons.size() == 1) {
jMorpho.put("person", persons.get(0).name());
} else {
ArrayNode jPersons = mapper.createArrayNode();
for (Person d : persons) {
jPersons.add(d.name());
}
jMorpho.put("person", jPersons);
}
}
List<PosTag> posList = morpho.getPosList();
if (!posList.isEmpty()) {
ArrayNode jPosTags = mapper.createArrayNode();
for (PosTag posTag : posList) {
jPosTags.add(getPosTagSerializer().serialize(mapper, posTag));
}
jMorpho.put("pos", jPosTags);
}
List<TenseTag> tenseList = morpho.getTenseList();
if (!tenseList.isEmpty()) {
ArrayNode jTenses = mapper.createArrayNode();
for (TenseTag tenseTag : tenseList) {
ObjectNode jTense = mapper.createObjectNode();
jTense.put("tag", tenseTag.getTag());
if (tenseTag.getTense() != null) {
jTense.put("type", tenseTag.getTense().name());
}
jTenses.add(jTense);
}
jMorpho.put("tense", jTenses);
}
List<VerbMoodTag> verbMoodList = morpho.getVerbMoodList();
if (!verbMoodList.isEmpty()) {
ArrayNode jMoods = mapper.createArrayNode();
for (VerbMoodTag verbMoodTag : verbMoodList) {
ObjectNode jMood = mapper.createObjectNode();
jMood.put("tag", verbMoodTag.getTag());
if (verbMoodTag.getVerbForm() != null) {
jMood.put("type", verbMoodTag.getVerbForm().name());
}
jMoods.add(jMood);
}
jMorpho.put("verb-mood", jMoods);
}
return jMorpho;
}
use of org.codehaus.jackson.node.ArrayNode in project stanbol by apache.
the class MorphoFeaturesSupport method parse.
@Override
public MorphoFeatures parse(ObjectNode jMorpho, AnalysedText at) {
JsonNode jLemma = jMorpho.path("lemma");
if (!jLemma.isTextual()) {
throw new IllegalStateException("Field 'lemma' MUST provide a String value (parsed JSON: " + jMorpho);
}
MorphoFeatures morpho = new MorphoFeatures(jLemma.asText());
JsonNode node = jMorpho.path("case");
if (node.isArray()) {
ArrayNode jCases = (ArrayNode) node;
for (int i = 0; i < jCases.size(); i++) {
JsonNode member = jCases.get(i);
if (member.isObject()) {
ObjectNode jCase = (ObjectNode) member;
JsonNode tag = jCase.path("tag");
if (tag.isTextual()) {
EnumSet<Case> type = JsonUtils.parseEnum(jCase, "type", Case.class);
if (type.isEmpty()) {
morpho.addCase(new CaseTag(tag.getTextValue()));
} else {
morpho.addCase(new CaseTag(tag.getTextValue(), type.iterator().next()));
}
} else {
log.warn("Unable to parse CaseTag becuase 'tag' value is " + "missing or is not a String (json: " + jCase.toString() + ")");
}
} else {
log.warn("Unable to parse CaseTag from " + member.toString());
}
}
} else if (!node.isMissingNode()) {
log.warn("Unable to parse CaseTags (Json Array expected as value for field 'case' but was " + node);
}
if (jMorpho.has("definitness")) {
for (Definitness d : JsonUtils.parseEnum(jMorpho, "definitness", Definitness.class)) {
morpho.addDefinitness(d);
}
}
node = jMorpho.path("gender");
if (node.isArray()) {
ArrayNode jGenders = (ArrayNode) node;
for (int i = 0; i < jGenders.size(); i++) {
JsonNode member = jGenders.get(i);
if (member.isObject()) {
ObjectNode jGender = (ObjectNode) member;
JsonNode tag = jGender.path("tag");
if (tag.isTextual()) {
EnumSet<Gender> type = JsonUtils.parseEnum(jGender, "type", Gender.class);
if (type.isEmpty()) {
morpho.addGender(new GenderTag(tag.getTextValue()));
} else {
morpho.addGender(new GenderTag(tag.getTextValue(), type.iterator().next()));
}
} else {
log.warn("Unable to parse GenderTag becuase 'tag' value is " + "missing or is not a String (json: " + jGender.toString() + ")");
}
} else {
log.warn("Unable to parse GenderTag from " + member.toString());
}
}
} else if (!node.isMissingNode()) {
log.warn("Unable to parse GenderTag (Json Array expected as value for field 'case' but was " + node);
}
node = jMorpho.path("number");
if (node.isArray()) {
ArrayNode jNumbers = (ArrayNode) node;
for (int i = 0; i < jNumbers.size(); i++) {
JsonNode member = jNumbers.get(i);
if (member.isObject()) {
ObjectNode jNumber = (ObjectNode) member;
JsonNode tag = jNumber.path("tag");
if (tag.isTextual()) {
EnumSet<NumberFeature> type = JsonUtils.parseEnum(jNumber, "type", NumberFeature.class);
if (type.isEmpty()) {
morpho.addNumber(new NumberTag(tag.getTextValue()));
} else {
morpho.addNumber(new NumberTag(tag.getTextValue(), type.iterator().next()));
}
} else {
log.warn("Unable to parse NumberTag becuase 'tag' value is " + "missing or is not a String (json: " + jNumber.toString() + ")");
}
} else {
log.warn("Unable to parse NumberTag from " + member.toString());
}
}
} else if (!node.isMissingNode()) {
log.warn("Unable to parse NumberTag (Json Array expected as value for field 'case' but was " + node);
}
if (jMorpho.has("person")) {
for (Person p : JsonUtils.parseEnum(jMorpho, "person", Person.class)) {
morpho.addPerson(p);
}
}
node = jMorpho.path("pos");
if (node.isArray()) {
ArrayNode jPosTags = (ArrayNode) node;
for (int i = 0; i < jPosTags.size(); i++) {
JsonNode member = jPosTags.get(i);
if (member.isObject()) {
ObjectNode jPosTag = (ObjectNode) member;
morpho.addPos(getPosTagParser().parse(jPosTag, at));
} else {
log.warn("Unable to parse PosTag from " + member.toString());
}
}
} else if (!node.isMissingNode()) {
log.warn("Unable to parse PosTag (Json Array expected as value for field 'case' but was " + node);
}
node = jMorpho.path("tense");
if (node.isArray()) {
ArrayNode jTenses = (ArrayNode) node;
for (int i = 0; i < jTenses.size(); i++) {
JsonNode member = jTenses.get(i);
if (member.isObject()) {
ObjectNode jTense = (ObjectNode) member;
JsonNode tag = jTense.path("tag");
if (tag.isTextual()) {
EnumSet<Tense> type = JsonUtils.parseEnum(jTense, "type", Tense.class);
if (type.isEmpty()) {
morpho.addTense(new TenseTag(tag.getTextValue()));
} else {
morpho.addTense(new TenseTag(tag.getTextValue(), type.iterator().next()));
}
} else {
log.warn("Unable to parse TenseTag becuase 'tag' value is " + "missing or is not a String (json: " + jTense.toString() + ")");
}
} else {
log.warn("Unable to parse TenseTag from " + member.toString());
}
}
} else if (!node.isMissingNode()) {
log.warn("Unable to parse TenseTag (Json Array expected as value for field 'case' but was " + node);
}
node = jMorpho.path("verb-mood");
if (node.isArray()) {
ArrayNode jVerbMoods = (ArrayNode) node;
for (int i = 0; i < jVerbMoods.size(); i++) {
JsonNode member = jVerbMoods.get(i);
if (member.isObject()) {
ObjectNode jVerbMood = (ObjectNode) member;
JsonNode tag = jVerbMood.path("tag");
if (tag.isTextual()) {
EnumSet<VerbMood> type = JsonUtils.parseEnum(jVerbMood, "type", VerbMood.class);
if (type.isEmpty()) {
morpho.addVerbForm(new VerbMoodTag(tag.getTextValue()));
} else {
morpho.addVerbForm(new VerbMoodTag(tag.getTextValue(), type.iterator().next()));
}
} else {
log.warn("Unable to parse VerbMoodTag becuase 'tag' value is " + "missing or is not a String (json: " + jVerbMood.toString() + ")");
}
} else {
log.warn("Unable to parse VerbMoodTag from " + member.toString());
}
}
} else if (!node.isMissingNode()) {
log.warn("Unable to parse VerbMoodTag (Json Array expected as value for field 'case' but was " + node);
}
return morpho;
}
use of org.codehaus.jackson.node.ArrayNode in project exhibitor by soabase.
the class UIResource method getBackupConfig.
@Path("backup-config")
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getBackupConfig() throws Exception {
ArrayNode node = JsonNodeFactory.instance.arrayNode();
if (context.getExhibitor().getBackupManager().isActive()) {
EncodedConfigParser parser = context.getExhibitor().getBackupManager().getBackupConfigParser();
List<BackupConfigSpec> configs = context.getExhibitor().getBackupManager().getConfigSpecs();
for (BackupConfigSpec c : configs) {
ObjectNode n = JsonNodeFactory.instance.objectNode();
String value = parser.getValue(c.getKey());
n.put("key", c.getKey());
n.put("name", c.getDisplayName());
n.put("help", c.getHelpText());
n.put("value", (value != null) ? value : "");
n.put("type", c.getType().name().toLowerCase().substring(0, 1));
node.add(n);
}
}
return JsonUtil.writeValueAsString(node);
}
use of org.codehaus.jackson.node.ArrayNode in project exhibitor by soabase.
the class ClusterResource method getClusterAsJson.
@Path("list")
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getClusterAsJson() throws Exception {
InstanceConfig config = context.getExhibitor().getConfigManager().getConfig();
ObjectNode node = JsonNodeFactory.instance.objectNode();
ArrayNode serversNode = JsonNodeFactory.instance.arrayNode();
ServerList serverList = new ServerList(config.getString(StringConfigs.SERVERS_SPEC));
for (ServerSpec spec : serverList.getSpecs()) {
serversNode.add(spec.getHostname());
}
node.put("servers", serversNode);
node.put("port", config.getInt(IntConfigs.CLIENT_PORT));
return JsonUtil.writeValueAsString(node);
}
Aggregations