
io.quarkus.hibernate.validator.runtime.ArcProxyBeanMetaDataClassNormalizer Maven / Gradle / Ivy
package io.quarkus.hibernate.validator.runtime;
import org.hibernate.validator.metadata.BeanMetaDataClassNormalizer;
import io.quarkus.arc.ClientProxy;
import io.quarkus.arc.Subclass;
/**
* In the case of a proxy generated by Arc, return the parent class.
*
* This can have more than one level of hierarchy, for example:
*
* - When using @{@link io.quarkus.test.junit.mockito.InjectMock} or @{@link io.quarkus.test.junit.mockito.InjectSpy}
*
*/
public class ArcProxyBeanMetaDataClassNormalizer implements BeanMetaDataClassNormalizer {
@Override
public Class super T> normalize(Class beanClass) {
Class super T> targetClass = beanClass;
while (Subclass.class.isAssignableFrom(targetClass)) {
targetClass = targetClass.getSuperclass();
}
while (ClientProxy.class.isAssignableFrom(targetClass)) {
targetClass = targetClass.getSuperclass();
}
return targetClass;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy