Class AbstractParametersProvider

java.lang.Object
io.helidon.declarative.codegen.http.webserver.AbstractParametersProvider

public abstract class AbstractParametersProvider extends Object
A provider of parameters when code generating call of methods with annotated parameter, such as HTTP headers, path parameters etc.
  • Constructor Details

    • AbstractParametersProvider

      protected AbstractParametersProvider()
      Constructor with no side effects.
  • Method Details

    • codegenFromParameters

      @Deprecated(forRemoval=true, since="4.5.0") protected void codegenFromParameters(ContentBuilder<?> contentBuilder, TypeName parameterType, String paramName, boolean optional)
      Deprecated, for removal: This API element is subject to removal in a future version.
      use codegenFromParameters(ParameterCodegenContext, TypeName, String, boolean, ParametersSource) or codegenFromParameters(FieldHandler, ContentBuilder, TypeName, String, boolean, ParametersSource) for mapper-aware and generic-type-aware generation; this legacy overload is retained only to preserve the pre-4.5.0 code shape for existing subclasses
      Code generate getting a value from parameters.
      Parameters:
      contentBuilder - content builder to update
      parameterType - type of the parameter we need to get
      paramName - name of the parameter we need to get
      optional - whether the parameter is optional
    • codegenFromParameters

      protected void codegenFromParameters(ParameterCodegenContext ctx, TypeName parameterType, String paramName, boolean optional, AbstractParametersProvider.ParametersSource source)
      Code generate getting a value from parameters.
      Parameters:
      ctx - source generation context
      parameterType - type of the parameter we need to get
      paramName - name of the parameter we need to get
      optional - whether the parameter is optional
      source - parameter source configuration
    • codegenFromParameters

      protected void codegenFromParameters(FieldHandler fieldHandler, ContentBuilder<?> contentBuilder, TypeName parameterType, String paramName, boolean optional, AbstractParametersProvider.ParametersSource source)
      Code generate getting a value from parameters without endpoint metadata.
      Parameters:
      fieldHandler - handler used to emit helper fields
      contentBuilder - content builder to update
      parameterType - type of the parameter we need to get
      paramName - name of the parameter we need to get
      optional - whether the parameter is optional
      source - parameter source configuration
    • providerType

      protected abstract String providerType()
      Type of this provider, such as "header", used when code generating error messages.
      Returns:
      provider type
    • ensureMapperField

      protected void ensureMapperField(FieldHandler fieldHandler)
      Ensure the generated feature exposes the shared mappers dependency field.
      Parameters:
      fieldHandler - field handler used to declare the field and constructor parameter
    • parametersSource

      protected AbstractParametersProvider.ParametersSource parametersSource(String accessor, boolean filterEmptyStringValues, String mapperQualifier)
      Create parameter-source metadata for shared parameter extraction helpers.
      Parameters:
      accessor - accessor expression used to obtain the parameter source
      filterEmptyStringValues - whether empty string values should be filtered out
      mapperQualifier - mapper qualifier used for mapped parameter conversion
      Returns:
      parameter-source metadata