/** * Helper method that can be used to see if specified property is annotated * to indicate use of a converter for property value (in case of container types, * it is container type itself, not key or content type). * * @since 2.2 */ protected JsonSerializer<Object> findConvertingSerializer(SerializerProvider provider, BeanPropertyWriter prop) throws JsonMappingException { final AnnotationIntrospector intr = provider.getAnnotationIntrospector(); if (intr != null) { AnnotatedMember m = prop.getMember(); if (m != null) { Object convDef = intr.findSerializationConverter(m); if (convDef != null) { Converter<Object,Object> conv = provider.converterInstance(prop.getMember(), convDef); JavaType delegateType = conv.getOutputType(provider.getTypeFactory()); // [databind#731]: Should skip if nominally java.lang.Object JsonSerializer<?> ser = delegateType.isJavaLangObject() ? null : provider.findValueSerializer(delegateType, prop); return new StdDelegatingSerializer(conv, delegateType, ser); } } } return null; }
@Override public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) { return super.changeProperties(config, beanDesc, beanProperties.stream().filter(bpw -> { final AnnotatedMember jacksonMember = bpw.getMember(); final Member member = jacksonMember.getMember(); if (member instanceof Method) { final Method method = (Method) member; if (method.isDefault()) { try { // only exclude default methods if they are defined on interfaces from the core components String className = beanDesc.getBeanClass().getMethod(method.getName()).getDeclaringClass().getName(); return !className.startsWith(PACKAGE_CORE_COMPONENTS) || className.contains(PACKAGE_IMPL_INTERNAL); } catch (NoSuchMethodException e) { return false; } } } return true; }).collect(Collectors.toList())); } });
private static LinkSerializationMethod getSerializationMethod(HalSerializationConfig halSerializationConfig, BeanPropertyWriter property) { LinkSerialization linkSerialization = property.getAnnotation(LinkSerialization.class); if (linkSerialization == null) { linkSerialization = property.getMember().getDeclaringClass().getAnnotation(LinkSerialization.class); } if (linkSerialization == null) { return halSerializationConfig.getLinkSerializationMethod(); } else { return linkSerialization.value(); } }
/** * Helper method that can be used to see if specified property is annotated * to indicate use of a converter for property value (in case of container types, * it is container type itself, not key or content type). * * @since 2.2 */ protected JsonSerializer<Object> findConvertingSerializer(SerializerProvider provider, BeanPropertyWriter prop) throws JsonMappingException { final AnnotationIntrospector intr = provider.getAnnotationIntrospector(); if (intr != null) { AnnotatedMember m = prop.getMember(); if (m != null) { Object convDef = intr.findSerializationConverter(m); if (convDef != null) { Converter<Object,Object> conv = provider.converterInstance(prop.getMember(), convDef); JavaType delegateType = conv.getOutputType(provider.getTypeFactory()); // [databind#731]: Should skip if nominally java.lang.Object JsonSerializer<?> ser = delegateType.isJavaLangObject() ? null : provider.findValueSerializer(delegateType, prop); return new StdDelegatingSerializer(conv, delegateType, ser); } } } return null; }
/** * Helper method that can be used to see if specified property is annotated * to indicate use of a converter for property value (in case of container types, * it is container type itself, not key or content type). * * @since 2.2 */ protected JsonSerializer<Object> findConvertingSerializer(SerializerProvider provider, BeanPropertyWriter prop) throws JsonMappingException { final AnnotationIntrospector intr = provider.getAnnotationIntrospector(); if (intr != null) { AnnotatedMember m = prop.getMember(); if (m != null) { Object convDef = intr.findSerializationConverter(m); if (convDef != null) { Converter<Object,Object> conv = provider.converterInstance(prop.getMember(), convDef); JavaType delegateType = conv.getOutputType(provider.getTypeFactory()); // [databind#731]: Should skip if nominally java.lang.Object JsonSerializer<?> ser = delegateType.isJavaLangObject() ? null : provider.findValueSerializer(delegateType, prop); return new StdDelegatingSerializer(conv, delegateType, ser); } } } return null; }
/** * Helper method that can be used to see if specified property is annotated * to indicate use of a converter for property value (in case of container types, * it is container type itself, not key or content type). * * @since 2.2 */ protected JsonSerializer<Object> findConvertingSerializer(SerializerProvider provider, BeanPropertyWriter prop) throws JsonMappingException { final AnnotationIntrospector intr = provider.getAnnotationIntrospector(); if (intr != null) { AnnotatedMember m = prop.getMember(); if (m != null) { Object convDef = intr.findSerializationConverter(m); if (convDef != null) { Converter<Object,Object> conv = provider.converterInstance(prop.getMember(), convDef); JavaType delegateType = conv.getOutputType(provider.getTypeFactory()); // [databind#731]: Should skip if nominally java.lang.Object JsonSerializer<?> ser = delegateType.isJavaLangObject() ? null : provider.findValueSerializer(delegateType, prop); return new StdDelegatingSerializer(conv, delegateType, ser); } } } return null; }
/** * Helper method that can be used to see if specified property is annotated * to indicate use of a converter for property value (in case of container types, * it is container type itself, not key or content type). * * @since 2.2 */ protected JsonSerializer<Object> findConvertingSerializer(SerializerProvider provider, BeanPropertyWriter prop) throws JsonMappingException { final AnnotationIntrospector intr = provider.getAnnotationIntrospector(); if (intr != null) { AnnotatedMember m = prop.getMember(); if (m != null) { Object convDef = intr.findSerializationConverter(m); if (convDef != null) { Converter<Object,Object> conv = provider.converterInstance(prop.getMember(), convDef); JavaType delegateType = conv.getOutputType(provider.getTypeFactory()); // [databind#731]: Should skip if nominally java.lang.Object JsonSerializer<?> ser = delegateType.isJavaLangObject() ? null : provider.findValueSerializer(delegateType, prop); return new StdDelegatingSerializer(conv, delegateType, ser); } } } return null; }
while (it.hasNext()) { BeanPropertyWriter bpw = it.next(); AnnotatedMember member = bpw.getMember();
if (idProperty.isPresent()) { final BeanPropertyWriter idPropertyWriter = idProperty.get(); final Member idPropertyMember = idPropertyWriter.getMember().getMember(); checkMember(idPropertyMember, idPropertyWriter.getName(), cls); idType = getGenericType(idPropertyMember);
for (int i = 0, len = beanProperties.size(); i < len; ++i) { BeanPropertyWriter bpw = beanProperties.get(i); final AnnotatedMember member = bpw.getMember(); String ns = AnnotationUtil.findNamespaceAnnotation(intr, member); Boolean isAttribute = AnnotationUtil.findIsAttributeAnnotation(intr, member);
for (int i = 0, len = beanProperties.size(); i < len; ++i) { BeanPropertyWriter bpw = beanProperties.get(i); final AnnotatedMember member = bpw.getMember(); String ns = AnnotationUtil.findNamespaceAnnotation(intr, member); Boolean isAttribute = AnnotationUtil.findIsAttributeAnnotation(intr, member);
if (beanHelper != null) { for (final BeanPropertyWriter beanPropertyWriter : beanHelper.getProperties()) { final Member propertyMember = beanPropertyWriter.getMember().getMember(); checkMember(propertyMember, beanPropertyWriter.getName(), sourceClass.type); Type propertyType = getGenericType(propertyMember);