/** @param addParamAnnotations Whether parameter annotations are to be added as well */
 protected void _addMixOvers(
     Constructor<?> mixin, AnnotatedConstructor target, boolean addParamAnnotations) {
   for (Annotation a : mixin.getDeclaredAnnotations()) {
     if (_annotationIntrospector.isHandled(a)) {
       target.addOrOverride(a);
     }
   }
   if (addParamAnnotations) {
     Annotation[][] pa = mixin.getParameterAnnotations();
     for (int i = 0, len = pa.length; i < len; ++i) {
       for (Annotation a : pa[i]) {
         target.addOrOverrideParam(i, a);
       }
     }
   }
 }
 protected AnnotatedConstructor _constructConstructor(Constructor<?> ctor, boolean defaultCtor) {
   return new AnnotatedConstructor(
       ctor,
       _collectRelevantAnnotations(ctor.getDeclaredAnnotations()),
       defaultCtor ? null : _collectRelevantAnnotations(ctor.getParameterAnnotations()));
 }