/** * Serialises the system fields. */ protected void serializeSystemFields(final IssueFields issueFields, final JsonGenerator jgen, final SerializerProvider provider) throws IOException, JsonProcessingException { for (Field field : issueFields.getClass().getFields()) { // only serialise public or annotated fields JsonProperty jsonAnnotation = field.getAnnotation(JsonProperty.class); if (isPublic(field) || jsonAnnotation != null) { try { Object fieldValue = field.get(issueFields); if (fieldValue != null) { String overrideName = jsonAnnotation != null ? jsonAnnotation.value() : null; String jsonName = !isEmpty(overrideName) ? overrideName : field.getName(); provider.defaultSerializeField(jsonName, fieldValue, jgen); } } catch (IllegalAccessException e) { throw new JsonGenerationException("Error reading field '" + field.getName() + "'", e); } } } }
@SuppressWarnings({"rawtypes", "unchecked"}) @Override public void serialize(Map<?, ?> map, JsonGenerator gen, SerializerProvider provider) throws IOException, JsonProcessingException { if (map == null) { gen.writeNull(); return; } gen.writeStartObject(); for (Object k : map) { provider.defaultSerializeField(k.toString(), ((Map) map).$get(k.toString()), gen); } gen.writeEndObject(); }
@Override public void serialize(FieldOperation value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { if (value != null) { jgen.writeStartObject(); if (value.getOperation() != null) { provider.defaultSerializeField(value.getOperation(), value.getValue(), jgen); } jgen.writeEndObject(); } } }
/** * Performs the serialization of a OFFeaturesReply object */ @Override public void serialize(final OFFeaturesReply reply, final JsonGenerator jGen, final SerializerProvider serializer) throws IOException, JsonProcessingException { jGen.writeStartObject(); jGen.writeNumberField("actions", reply.getActions()); jGen.writeNumberField("buffers", reply.getBuffers()); jGen.writeNumberField("capabilities", reply.getCapabilities()); jGen.writeStringField("datapathId", HexString.toHexString(reply.getDatapathId())); jGen.writeNumberField("length", reply.getLength()); serializer.defaultSerializeField("ports", reply.getPorts(), jGen); jGen.writeNumberField("tables", reply.getTables()); jGen.writeStringField("type", reply.getType().toString()); jGen.writeNumberField("version", reply.getVersion()); jGen.writeNumberField("xid", reply.getXid()); jGen.writeEndObject(); }