private <A extends Annotation> MetaConstraint<A> adaptOriginAndImplicitGroup(MetaConstraint<A> constraint) {
ConstraintOrigin definedIn = definedIn( beanClass, constraint.getLocation().getDeclaringClass() );
if ( definedIn == ConstraintOrigin.DEFINED_LOCALLY ) {
return constraint;
}
Class<?> constraintClass = constraint.getLocation().getDeclaringClass();
ConstraintDescriptorImpl<A> descriptor = new ConstraintDescriptorImpl<>(
constraintHelper,
constraint.getLocation().getMember(),
constraint.getDescriptor().getAnnotationDescriptor(),
constraint.getElementType(),
constraintClass.isInterface() ? constraintClass : null,
definedIn,
constraint.getDescriptor().getConstraintType()
);
return MetaConstraints.create( typeResolutionHelper, valueExtractorManager, descriptor, constraint.getLocation() );
}