Class ParamBuilder

Object
ParamBuilder

public class ParamBuilder extends Object
Builder for DataAccessFactory#Param instances.

Provides a fluent API for creating DataAccessFactory.Param objects, making parameter definition more readable and maintainable. This builder helps with consistent parameter creation and reduces boilerplate code.

Example usage:

 
 DataAccessFactory.Param param = new ParamBuilder("uri")
     .type(String.class)
     .description("URI to the data source")
     .required(true)
     .metadata(Parameter.LEVEL, "advanced")
     .build();
 
 
  • Constructor Details

    • ParamBuilder

      public ParamBuilder(String key)
      Creates a new ParamBuilder with the specified key.
      Parameters:
      key - the parameter key (used in parameter maps)
  • Method Details

    • type

      public ParamBuilder type(Class<?> type)
      Sets the parameter type.
      Parameters:
      type - the class representing the parameter type
      Returns:
      this builder for method chaining
    • description

      public ParamBuilder description(String description)
      Sets the parameter description.
      Parameters:
      description - the description text
      Returns:
      this builder for method chaining
    • description

      public ParamBuilder description(InternationalString description)
      Sets the parameter description using an InternationalString.
      Parameters:
      description - the internationalized description
      Returns:
      this builder for method chaining
    • title

      public ParamBuilder title(String title)
      Sets the parameter title.
      Parameters:
      title - the title text
      Returns:
      this builder for method chaining
    • title

      public ParamBuilder title(InternationalString title)
      Sets the parameter title using an InternationalString.
      Parameters:
      title - the internationalized title
      Returns:
      this builder for method chaining
    • required

      public ParamBuilder required(boolean required)
      Sets whether the parameter is required.
      Parameters:
      required - true if the parameter is required, false otherwise
      Returns:
      this builder for method chaining
    • defaultValue

      public ParamBuilder defaultValue(Object defaultValue)
      Sets the default value for the parameter.
      Parameters:
      defaultValue - the default value
      Returns:
      this builder for method chaining
    • metadata

      public ParamBuilder metadata(String key, Object value)
      Adds a metadata entry to the parameter.
      Parameters:
      key - the metadata key
      value - the metadata value
      Returns:
      this builder for method chaining
    • metadata

      public ParamBuilder metadata(Map<String,Object> metadata)
      Sets the metadata map for the parameter, replacing any existing metadata.
      Parameters:
      metadata - the complete metadata map
      Returns:
      this builder for method chaining
    • minOccurs

      public ParamBuilder minOccurs(int minOccurs)
      Sets the minimum number of occurrences for this parameter.
      Parameters:
      minOccurs - the minimum number of occurrences
      Returns:
      this builder for method chaining
      Throws:
      IllegalArgumentException - if minOccurs is negative
    • maxOccurs

      public ParamBuilder maxOccurs(int maxOccurs)
      Sets the maximum number of occurrences for this parameter.
      Parameters:
      maxOccurs - the maximum number of occurrences
      Returns:
      this builder for method chaining
      Throws:
      IllegalArgumentException - if maxOccurs is less than minOccurs
    • level

      public ParamBuilder level(String level)
      Sets this parameter as part of the UI interface level.
      Parameters:
      level - the UI level (e.g., "user", "advanced", "program")
      Returns:
      this builder for method chaining
    • userLevel

      public ParamBuilder userLevel()
      Marks this parameter as a user-level parameter.
      Returns:
      this builder for method chaining
    • advancedLevel

      public ParamBuilder advancedLevel()
      Marks this parameter as an advanced-level parameter.
      Returns:
      this builder for method chaining
    • programLevel

      public ParamBuilder programLevel()
      Marks this parameter as a program-level parameter.
      Returns:
      this builder for method chaining
    • build

      public DataAccessFactory.Param build()
      Builds and returns a DataAccessFactory.Param with the configured properties.
      Returns:
      a new DataAccessFactory.Param instance
      Throws:
      IllegalStateException - if required properties are not set