public final <A extends Annotation> boolean hasAnnotation(Class<A> acls) { return getAnnotation(acls) != null; }
@Override public Class<? extends JsonDeserializer<?>> findContentDeserializer(Annotated a) { JsonDeserialize ann = a.getAnnotation(JsonDeserialize.class); if (ann != null) { Class<? extends JsonDeserializer<?>> deserClass = ann.contentUsing(); if (deserClass != JsonDeserializer.None.class) { return deserClass; } } return null; }
@Override public Class<? extends KeyDeserializer> findKeyDeserializer(Annotated a) { JsonDeserialize ann = a.getAnnotation(JsonDeserialize.class); if (ann != null) { Class<? extends KeyDeserializer> deserClass = ann.keyUsing(); if (deserClass != KeyDeserializer.None.class) { return deserClass; } } return null; }
@Override public Class<?>[] findSerializationViews(Annotated a) { JsonView ann = a.getAnnotation(JsonView.class); return (ann == null) ? null : ann.value(); }
protected boolean _isIgnorable(Annotated a) { JsonIgnore ann = a.getAnnotation(JsonIgnore.class); return (ann != null && ann.value()); }
@Override public Class<? extends JsonSerializer<?>> findKeySerializer(Annotated a) { JsonSerialize ann = a.getAnnotation(JsonSerialize.class); if (ann != null) { Class<? extends JsonSerializer<?>> serClass = ann.keyUsing(); if (serClass != JsonSerializer.None.class) { return serClass; } } return null; }
@Override public Class<?> findSerializationKeyType(Annotated am, JavaType baseType) { JsonSerialize ann = am.getAnnotation(JsonSerialize.class); if (ann != null) { Class<?> cls = ann.keyAs(); if (cls != NoClass.class) { return cls; } } return null; }
@Override public Class<? extends JsonSerializer<?>> findContentSerializer(Annotated a) { JsonSerialize ann = a.getAnnotation(JsonSerialize.class); if (ann != null) { Class<? extends JsonSerializer<?>> serClass = ann.contentUsing(); if (serClass != JsonSerializer.None.class) { return serClass; } } return null; }
@Override public Class<?> findSerializationType(Annotated am) { JsonSerialize ann = am.getAnnotation(JsonSerialize.class); if (ann != null) { Class<?> cls = ann.as(); if (cls != NoClass.class) { return cls; } } return null; }
@Override public Class<?> findSerializationContentType(Annotated am, JavaType baseType) { JsonSerialize ann = am.getAnnotation(JsonSerialize.class); if (ann != null) { Class<?> cls = ann.contentAs(); if (cls != NoClass.class) { return cls; } } return null; }
@Override public JsonSerialize.Typing findSerializationTyping(Annotated a) { JsonSerialize ann = a.getAnnotation(JsonSerialize.class); return (ann == null) ? null : ann.typing(); }
@Override public Class<? extends JsonDeserializer<?>> findDeserializer(Annotated a) { /* 21-May-2009, tatu: Slight change; primary annotation is now * @JsonDeserialize; @JsonUseDeserializer is deprecated */ JsonDeserialize ann = a.getAnnotation(JsonDeserialize.class); if (ann != null) { Class<? extends JsonDeserializer<?>> deserClass = ann.using(); if (deserClass != JsonDeserializer.None.class) { return deserClass; } } // 31-Jan-2010, tatus: @JsonUseDeserializer removed as of 1.5 return null; }
@Override public Class<?> findDeserializationContentType(Annotated am, JavaType baseContentType, String propName) { // Primary annotation, JsonDeserialize JsonDeserialize ann = am.getAnnotation(JsonDeserialize.class); if (ann != null) { Class<?> cls = ann.contentAs(); if (cls != NoClass.class) { return cls; } } /* 30-Jun-2011, tatu: Here we used to have support for @JsonContentClass; * removed in 1.9 */ return null; }
@Override public Class<?> findDeserializationType(Annotated am, JavaType baseType, String propName) { // Primary annotation, JsonDeserialize JsonDeserialize ann = am.getAnnotation(JsonDeserialize.class); if (ann != null) { Class<?> cls = ann.as(); if (cls != NoClass.class) { return cls; } } /* 30-Jun-2011, tatu: Here we used to have support for @JsonClass; * removed in 1.9 */ return null; }
@Override public Class<?> findDeserializationKeyType(Annotated am, JavaType baseKeyType, String propName) { // Primary annotation, JsonDeserialize JsonDeserialize ann = am.getAnnotation(JsonDeserialize.class); if (ann != null) { Class<?> cls = ann.keyAs(); if (cls != NoClass.class) { return cls; } } /* 30-Jun-2011, tatu: Here we used to have support for @JsonKeyClass; * removed in 1.9 */ return null; }
@SuppressWarnings("deprecation") @Override public JsonSerialize.Inclusion findSerializationInclusion(Annotated a, JsonSerialize.Inclusion defValue) { JsonSerialize ann = a.getAnnotation(JsonSerialize.class); if (ann != null) { return ann.include(); } /* 23-May-2009, tatu: Will still support now-deprecated (as of 1.1) * legacy annotation too: */ JsonWriteNullProperties oldAnn = a.getAnnotation(JsonWriteNullProperties.class); if (oldAnn != null) { boolean writeNulls = oldAnn.value(); return writeNulls ? JsonSerialize.Inclusion.ALWAYS : JsonSerialize.Inclusion.NON_NULL; } return defValue; }
@Override public List<NamedType> findSubtypes(Annotated a) { JsonSubTypes t = a.getAnnotation(JsonSubTypes.class); if (t == null) return null; JsonSubTypes.Type[] types = t.value(); ArrayList<NamedType> result = new ArrayList<NamedType>(types.length); for (JsonSubTypes.Type type : types) { result.add(new NamedType(type.value(), type.name())); } return result; }
@Override public Object findSerializer(Annotated a) { /* 21-May-2009, tatu: Slight change; primary annotation is now * @JsonSerialize; @JsonUseSerializer is deprecated */ JsonSerialize ann = a.getAnnotation(JsonSerialize.class); if (ann != null) { Class<? extends JsonSerializer<?>> serClass = ann.using(); if (serClass != JsonSerializer.None.class) { return serClass; } } /* 18-Oct-2010, tatu: [JACKSON-351] @JsonRawValue handled just here, for now; * if we need to get raw indicator from other sources need to add * separate accessor within {@link AnnotationIntrospector} interface. */ JsonRawValue annRaw = a.getAnnotation(JsonRawValue.class); if ((annRaw != null) && annRaw.value()) { // let's construct instance with nominal type: Class<?> cls = a.getRawType(); return new RawSerializer<Object>(cls); } return null; }
JsonTypeInfo info = ann.getAnnotation(JsonTypeInfo.class); JsonTypeResolver resAnn = ann.getAnnotation(JsonTypeResolver.class); if (resAnn != null) { JsonTypeIdResolver idResInfo = ann.getAnnotation(JsonTypeIdResolver.class); TypeIdResolver idRes = (idResInfo == null) ? null : config.typeIdResolverInstance(ann, idResInfo.value());
@Override public Class<? extends JsonSerializer<?>> findKeySerializer(Annotated a) { JsonSerialize ann = a.getAnnotation(JsonSerialize.class); if (ann != null) { Class<? extends JsonSerializer<?>> serClass = ann.keyUsing(); if (serClass != JsonSerializer.None.class) { return serClass; } } return null; }