Note: for now, the method in {{TypeHelper}} is called {{extractType()}}. The names used in the issue are from an upcoming PR that might target 6.1.
These are 2 implementations of basically the same thing but... they are really different and I'm pretty sure we could break them easily.
For {{TypeHelper#extract(Validated|Constraint)Type()}}, I initially thought it might fail but it does not as, in fact, methods that look generic are tied to {{ConstraintValidator}}. See {{TypeHelper#resolveTypes()}} for instance. I renamed the entry method.
For {{ValueExtractor Descriptor#getContainerType()}}, I'm pretty sure the logic can be broken pretty easily by making the VE not extending directly ValueExtractor but extending another interface with type parameters.
I think we should make this more consistent and use Classmate. Note that in one case, we want to be able to get the annotation whereas in the other case we don't care and we want a class. That might count. |
|