code: private <T> ParameterMetadata<T> next(Part part, Class<T> type, Parameter parameter) {
          Assert.notNull(type, "Type must not be null!");
  
          ParameterMetadata<T> value = new ParameterMetadata<T>(type, parameter.getName().get(), part.getType(),
                  bindableParameterValues == null ? ParameterMetadata.PLACEHOLDER : bindableParameterValues.next());
          expressions.add(value);
  
          return value;
      }
docs: Builds a new {@link ParameterMetadata} for the given type and name.
  
  @param <T>
  @param part      must not be {@literal null}.
  @param type      parameter type, must not be {@literal null}.
  @param parameter
  @return