public AnnotationMapping(String name, @Nullable T value) { this.name = name; this.value = value; } }
static boolean isKnownType(@Nullable final Type type) { if (type == Object.class) return false; if (type instanceof Class<?>) { Class<?> manifest = (Class<?>)type; if (manifest.isInterface()) return false; return (manifest.getModifiers() & Modifier.ABSTRACT) == 0; } return type != null; }
@Nullable private TypeMirror findConverter(@Nullable AnnotationMirror dslAnn) { if (dslAnn == null) return null; Map<? extends ExecutableElement, ? extends AnnotationValue> values = dslAnn.getElementValues(); for (ExecutableElement ee : values.keySet()) { if (ee.toString().equals("converter()")) { TypeMirror mirror = (TypeMirror) values.get(ee).getValue(); return mirror != null && mirror.toString().equals(JsonAttribute.class.getName()) ? null : mirror; } } return null; }
public boolean isFullMatch(Element property, @Nullable AnnotationMirror dslAnn) { if (dslAnn == null) return false; Map<? extends ExecutableElement, ? extends AnnotationValue> values = dslAnn.getElementValues(); for (ExecutableElement ee : values.keySet()) { if (ee.toString().equals("hashMatch()")) { Object val = values.get(ee).getValue(); return val != null && !((Boolean) val); } } return false; }
@Override public Object apply(@Nullable Object instance) { try { return field.get(instance); } catch (IllegalAccessException e) { throw new SerializationException("Unable to read field " + field.getName() + " of " + field.getDeclaringClass(), e); } } }
public static void serialize(@Nullable final BigInteger value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { sw.writeAscii(value.toString()); } }
public static <T, R> JsonWriter.WriteObject<T> createArrayEncoder( final Function<T, R> read, final DslJson json, @Nullable final Type type) { if (read == null) throw new IllegalArgumentException("read can't be null"); if (json == null) throw new IllegalArgumentException("json can't be null"); final JsonWriter.WriteObject<R> encoder = type != null ? json.tryFindWriter(type) : null; if (encoder == null || Object.class.equals(type)) return new LazyAttributeArrayEncoder<>(read, json, type); return new AttributeArrayEncoder<>(read, encoder); }
public static void serializeNullable(@Nullable final LocalDateTime value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { serialize(value, sw); } }
public static void serializeNullable(@Nullable final OffsetDateTime value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { serialize(value, sw); } }
public static void serializeNullable(@Nullable final LocalDateTime value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { serialize(value, sw); } }
public static void serializeNullable(@Nullable final UUID value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { serialize(value, sw); } }
public static void serializeLocationNullable(@Nullable final PointF value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { serializeLocation(value, sw); } }
public static void serializeNullableMap(@Nullable final Map<String, Object> value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { serializeMap(value, sw); } }
public static void serializeNullable(@Nullable final Element value, final JsonWriter sw) { if (value == null) sw.writeNull(); else serialize(value, sw); }
public static void serializeNullable(@Nullable final InetAddress value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { serialize(value, sw); } }
public static void serializeNullable(@Nullable final Float value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { serialize(value, sw); } }
public static void serializeNullable(@Nullable final Integer value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else { serialize(value, sw); } }
public static void serializeNullable(@Nullable final Boolean value, final JsonWriter sw) { if (value == null) { sw.writeNull(); } else if (value) { sw.writeAscii("true"); } else { sw.writeAscii("false"); } }
@Nullable @Override public T read(final JsonReader reader) throws IOException { if (reader.wasNull()) return null; else if (reader.last() != '{') { throw new IOException("Expecting '{' " + reader.positionDescription() + " while reading " + manifest.getTypeName() + ". Found " + (char) reader.last()); } reader.getNextToken(); return readContent(reader); }