@Override
 public ParameterConstraintMappingContext constraint(ConstraintDef<?, ?> definition) {
   super.addConstraint(
       ConfiguredConstraint.forParameter(
           definition, executableContext.getExecutable(), parameterIndex));
   return this;
 }
  ParameterConstraintMappingContextImpl(
      ExecutableConstraintMappingContextImpl executableContext, int parameterIndex) {
    super(executableContext.getTypeContext().getConstraintMapping());

    this.executableContext = executableContext;
    this.parameterIndex = parameterIndex;
  }
 @Override
 public CrossParameterConstraintMappingContext ignoreAnnotations(boolean ignoreAnnotations) {
   mapping
       .getAnnotationProcessingOptions()
       .ignoreConstraintAnnotationsForCrossParameterConstraint(
           executableContext.getExecutable(), ignoreAnnotations);
   return this;
 }
 public ConstrainedParameter build(
     ConstraintHelper constraintHelper, ParameterNameProvider parameterNameProvider) {
   // TODO HV-919 Support specification of type parameter constraints via XML and API
   return new ConstrainedParameter(
       ConfigurationSource.API,
       ConstraintLocation.forParameter(executableContext.getExecutable(), parameterIndex),
       ReflectionHelper.typeOf(executableContext.getExecutable(), parameterIndex),
       parameterIndex,
       executableContext
           .getExecutable()
           .getParameterNames(parameterNameProvider)
           .get(parameterIndex),
       getConstraints(constraintHelper),
       Collections.<MetaConstraint<?>>emptySet(),
       groupConversions,
       isCascading,
       unwrapMode());
 }
 @Override
 public MethodConstraintMappingContext method(String name, Class<?>... parameterTypes) {
   return executableContext.getTypeContext().method(name, parameterTypes);
 }
 @Override
 public ConstructorConstraintMappingContext constructor(Class<?>... parameterTypes) {
   return executableContext.getTypeContext().constructor(parameterTypes);
 }
 @Override
 public ReturnValueConstraintMappingContext returnValue() {
   return executableContext.returnValue();
 }
 @Override
 public CrossParameterConstraintMappingContext crossParameter() {
   return executableContext.crossParameter();
 }
 @Override
 public ParameterConstraintMappingContext parameter(int index) {
   return executableContext.parameter(index);
 }
 CrossParameterConstraintMappingContextImpl(
     ExecutableConstraintMappingContextImpl executableContext) {
   super(executableContext.getTypeContext().getConstraintMapping());
   this.executableContext = executableContext;
 }