List of usage examples for com.fasterxml.jackson.databind.ser BeanPropertyWriter getMember
public AnnotatedMember getMember()
From source file:org.jddd.jackson.SimpleValueObjectSerializerModifier.java
@Override public BeanSerializerBuilder updateBuilder(SerializationConfig config, BeanDescription beanDesc, BeanSerializerBuilder builder) { for (BeanPropertyWriter writer : builder.getProperties()) { JavaType propertyType = writer.getMember().getType(); Class<?> type = propertyType.getRawClass(); List<BeanPropertyDefinition> properties = getProperties(propertyType, config); Optional.ofNullable(AnnotationUtils.findAnnotation(type, ValueObject.class))// .filter(it -> properties.size() == 1)// .flatMap(it -> properties.stream().findFirst())// .ifPresent(it -> writer.assignSerializer(new PropertyAccessingSerializer(it))); }//ww w . j a v a2s . c o m return builder; }
From source file:org.craftercms.commons.jackson.mvc.GDataPropertyFilter.java
@Override protected boolean include(final BeanPropertyWriter writer) { Class<?> clazz = writer.getMember().getDeclaringClass(); String propName = writer.getName(); if (!isPrimitive(clazz)) { propName = getMostSuperClassName(clazz) + "." + propName; }// w w w . j a v a 2 s . co m checkForCrafterAnnotations(writer); return checkProperty(propName); }
From source file:com.basho.riak.client.convert.RiakBeanSerializerModifier.java
/** * Checks if the property has any of the Riak annotations on it or the * Jackson JsonProperty annotation. /*from w ww. j a v a2s .co m*/ * * If a Riak annotation is present without the Jackson JsonProperty * annotation, this will return false. * * If a property has been annotated with both the Jackson JsonProperty * annotation and a Riak annotation, the Jackson annotation takes precedent * and this will return true. * * @param beanPropertyWriter * a {@link BeanPropertyWriter} to check for Riak* annotations * @return true if the property is not Riak annotated or is Jackson * JsonProperty annotated, false otherwise */ private boolean keepProperty(BeanPropertyWriter beanPropertyWriter) { RiakKey key = null; RiakUsermeta usermeta = null; RiakLinks links = null; RiakIndex index = null; RiakVClock vclock = null; JsonProperty jacksonJsonProperty = null; RiakTombstone tombstone = null; AnnotatedMember member = beanPropertyWriter.getMember(); if (member instanceof AnnotatedField) { AnnotatedElement element = member.getAnnotated(); key = element.getAnnotation(RiakKey.class); usermeta = element.getAnnotation(RiakUsermeta.class); links = element.getAnnotation(RiakLinks.class); index = element.getAnnotation(RiakIndex.class); vclock = element.getAnnotation(RiakVClock.class); tombstone = element.getAnnotation(RiakTombstone.class); jacksonJsonProperty = element.getAnnotation(JsonProperty.class); } else { @SuppressWarnings("rawtypes") Class clazz = member.getDeclaringClass(); Field field; try { field = clazz.getDeclaredField(beanPropertyWriter.getName()); key = field.getAnnotation(RiakKey.class); usermeta = field.getAnnotation(RiakUsermeta.class); links = field.getAnnotation(RiakLinks.class); index = field.getAnnotation(RiakIndex.class); vclock = field.getAnnotation(RiakVClock.class); tombstone = field.getAnnotation(RiakTombstone.class); jacksonJsonProperty = field.getAnnotation(JsonProperty.class); } catch (SecurityException e) { throw new RuntimeException(e); } catch (NoSuchFieldException e) { // ignore, not a field means not a Riak annotated field. } } if (jacksonJsonProperty != null) { return true; } else { return key == null && usermeta == null && links == null && vclock == null && index == null && tombstone == null; } }