I still do not exactly know what you are trying to achieve. But there is no replacement for that method -- the only reason it existed in the past was to allow full generic type resolution of the member, and this is not needed any more (`getType()` method can return fully resolved type).
-+ Tatu +- On Tue, Aug 15, 2017 at 5:42 PM, Jama A <[email protected]> wrote: > And I see that there's a getTypeContext() method replaced the old > getContextClass in this commit but I don't know how to make use of it to > achieve my goal. > > > On Tuesday, August 15, 2017 at 5:39:32 PM UTC-7, Jama A wrote: >> >> Sorry about the bad explanation, so here's the small part of my custom >> AnnotationInspector. >> >> >> public class DocumentAnnotationIntrospector extends >> NopAnnotationIntrospector { >> >> >> @Override >> public Object findInjectableValueId( AnnotatedMember annotatedMember ) >> { >> // let's say, annotationMember value is BaseFoo#version and I want >> to get the actual class (Bar) of that object not the parent (BaseFoo) >> Class<?> declaringClass = annotatedMember.getDeclaringClass(); // >> here it returns parent class not the sub-class(Bar) that type of object. >> >> // but before I used to have annotatedMember.getContextClass() - I >> have a custom logic that preprocesses and injects a value in here based on >> the subclass. >> >> return null; >> } >> } >> >> >> >> When deserializing the Bar object (from above example) - all annotated >> fields go through the `findInjectableValueId ()` method of my custom >> annotation inspector. And in v2.5, there're used to be >> annotatedMember.getContextClass(); which used to return Bar class for the >> fields that declared in the parent class. But now I don't have that method >> in 2.8, but the only option I see is that >> annotatedMember.getDeclaringClass() which returns BaseFoo class >> >> Please let me know if more clarification is needed. >> >> Thanks!! >> >> On Tuesday, August 15, 2017 at 5:03:53 PM UTC-7, Tatu Saloranta wrote: >>> >>> On Tue, Aug 15, 2017 at 4:10 PM, Jama A <[email protected]> wrote: >>> > I used >>> > >>> > `com.fasterxml.jackson.databind.introspect.AnnotatedMember#getContextClass` >>> > in my project to get actual sub-class name that field has a value. But >>> > it >>> > was removed in this commit [Starting work on ensuring proper resolution >>> > of >>> > member types;......] >>> > But now I can't find a context class, consider this example. >>> > >>> > abstract class BaseFoo { >>> > private String id; >>> > private Long version; >>> > >>> > >>> > /// getters/setters >>> > >>> > >>> > } >>> > >>> > class Bar extends BaseFoo{ >>> > //some other fields >>> > >>> > } >>> > >>> > >>> > In my custom AnnotationIntrospector I need to find the actual sub-class >>> > (Bar) from the AnnotatedMember object. I see there's only >>> > AnnotatedMember#getDeclaringClass() which returns the class that >>> > physically >>> > declared (BaseFoo) >>> > >>> > But I can't make use of it - how can I find actual sub-class that >>> > annotated >>> > member field is associated? >>> >>> Unfortunately I don't think I fully understand the use case from this. >>> Could you share example code from your custom AnnotationIntrospector >>> method to help understand what information you are looking to get? >>> >>> -+ Tatu +- > > -- > You received this message because you are subscribed to the Google Groups > "jackson-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "jackson-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
