@Override
 public PropertyConstraintMappingContext constraint(ConstraintDef<?, ?> definition) {
   if (member instanceof Field) {
     super.addConstraint(ConfiguredConstraint.forProperty(definition, member));
   } else {
     super.addConstraint(
         ConfiguredConstraint.forExecutable(
             definition, ExecutableElement.forMethod((Method) member)));
   }
   return this;
 }
 @Override
 public ParameterConstraintMappingContext constraint(ConstraintDef<?, ?> definition) {
   super.addConstraint(
       ConfiguredConstraint.forParameter(
           definition, executableContext.getExecutable(), parameterIndex));
   return this;
 }
  public TypeConstraintMappingContext<C> constraint(ConstraintDef<?, ?> definition) {

    mapping.addConstraintConfig(ConfiguredConstraint.forType(definition, beanClass));
    return this;
  }
 public ReturnValueConstraintMappingContext constraint(ConstraintDef<?, ?> definition) {
   mapping.addMethodConstraintConfig(ConfiguredConstraint.forReturnValue(definition, method));
   return this;
 }