/** * Schreibt eine Referenz in einen einfachen String * * @param result Hal-Resource, in welcher sich die Referenz befindet * @param field Zu schreibendes Feld * @param jsonField JSON-Feld, welches die Referenz enthält * @param context GSON-Context für die Deserialisierung */ private void writeLinkInString( HalResource result, Field field, JsonElement jsonField, JsonDeserializationContext context) { // Wir haben ein einzelne Objekt, das wir nun Deserialisieren HalReference halRef = context.deserialize(jsonField, HalReference.class); // Wert schreiben String href = halRef.getHref(); HalReflectionHelper.setValue(result, field, href); }
/** * Schreibt eine eingebettete Resource direkt ein eine {@link HalResource} * * @param result Hal-Resource, in welcher sich die eingebettete Resource befindet * @param field Zu schreibendes Feld * @param jsonField JSON-Feld, welches die Resource enthält * @param context GSON-Context für die Deserialisierung */ protected void writeEmeddedInResource( HalResource result, Field field, JsonElement jsonField, JsonDeserializationContext context) { // Objekt deserialisieren Object resource = deserialize(jsonField, field.getType(), context, field.getType()); HalReflectionHelper.setValue(result, field, resource); }
/** * Schreibt eine Referenz direkt ein eine {@link HalReference} * * @param result Hal-Resource, in welcher sich die Referenz befindet * @param field Zu schreibendes Feld * @param jsonField JSON-Feld, welches die Referenz enthält * @param context GSON-Context für die Deserialisierung */ protected void writeLinkInReference( HalResource result, Field field, JsonElement jsonField, JsonDeserializationContext context) { Object reference = context.deserialize(jsonField, field.getType()); HalReflectionHelper.setValue(result, field, reference); }