@Override
    public void bindValue(T value, TemporalType specifiedTemporalType) {
      validateBinding(getParameterType(), value, specifiedTemporalType);

      nativeParamRegistration.bindValue(value, specifiedTemporalType);

      if (bind == null) {
        bind =
            new ParameterBind<T>() {
              @Override
              public T getValue() {
                return nativeParamRegistration.getBind().getValue();
              }

              @Override
              public TemporalType getSpecifiedTemporalType() {
                return nativeParamRegistration.getBind().getExplicitTemporalType();
              }
            };
      }
    }
 @Override
 public ParameterMode getMode() {
   return nativeParamRegistration.getMode();
 }
 @Override
 public Integer getPosition() {
   return nativeParamRegistration.getPosition();
 }
 @Override
 public Class<T> getParameterType() {
   return nativeParamRegistration.getType();
 }
 @Override
 public String getName() {
   return nativeParamRegistration.getName();
 }