Package org.apache.commons.configuration2.interpol

# Class InterpolatorSpecification.Builder

java.lang.Object
org.apache.commons.configuration2.interpol.InterpolatorSpecification.Builder

Enclosing class:
  `InterpolatorSpecification`

public static class InterpolatorSpecification.Builder extends Object

A builder class for creating instances of `InterpolatorSpecification`.

This class provides a fluent API for defining the various properties of an `InterpolatorSpecification` object. Note: This builder class is not thread-safe.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Builder()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `InterpolatorSpecification`
  `create()`
  Creates a new `InterpolatorSpecification` instance with the properties set so far.
  `void`
  `reset()`
  Removes all data from this builder.
  `InterpolatorSpecification.Builder`
  `withDefaultLookup(Lookup lookup)`
  Adds the given `Lookup` object to the list of default lookups.
  `InterpolatorSpecification.Builder`
  `withDefaultLookups(Collection<? extends Lookup> lookups)`
  Adds the content of the given collection to the default lookups managed by this builder.
  `InterpolatorSpecification.Builder`
  `withInterpolator(ConfigurationInterpolator ci)`
  Sets the `ConfigurationInterpolator` instance for the `InterpolatorSpecification`.
  `InterpolatorSpecification.Builder`
  `withParentInterpolator(ConfigurationInterpolator parent)`
  Sets an optional parent `ConfigurationInterpolator`.
  `InterpolatorSpecification.Builder`
  `withPrefixLookup(String prefix, Lookup lookup)`
  Adds a `Lookup` object for a given prefix.
  `InterpolatorSpecification.Builder`
  `withPrefixLookups(Map<String,? extends Lookup> lookups)`
  Adds the content of the given map to the prefix lookups managed by this builder.
  `InterpolatorSpecification.Builder`
  `withStringConverter(Function<Object,String> fn)`
  Sets the function used to convert interpolated values to strings.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Builder

    public Builder()
    Constructs a new instance.

- ## Method Details

  - ### create

    public InterpolatorSpecification create()
    Creates a new `InterpolatorSpecification` instance with the properties set so far. After that this builder instance is reset so that it can be reused for creating further specification objects.
    Returns:
      the newly created `InterpolatorSpecification`

  - ### reset

    public void reset()
    Removes all data from this builder. Afterwards it can be used to define a brand new `InterpolatorSpecification` object.

  - ### withDefaultLookup

    public InterpolatorSpecification.Builder withDefaultLookup(Lookup lookup)
    Adds the given `Lookup` object to the list of default lookups.
    Parameters:
      `lookup` - the `Lookup` (must not be null)
    Returns:
      a reference to this builder for method chaining
    Throws:
      `IllegalArgumentException` - if the `Lookup` is null

  - ### withDefaultLookups

    public InterpolatorSpecification.Builder withDefaultLookups(Collection<? extends Lookup> lookups)
    Adds the content of the given collection to the default lookups managed by this builder. The collection can be null, then this method has no effect.
    Parameters:
      `lookups` - the collection with lookups to be added
    Returns:
      a reference to this builder for method chaining
    Throws:
      `IllegalArgumentException` - if the collection contains null entries

  - ### withInterpolator

    public InterpolatorSpecification.Builder withInterpolator(ConfigurationInterpolator ci)
    Sets the `ConfigurationInterpolator` instance for the `InterpolatorSpecification`. This means that a `ConfigurationInterpolator` has been created and set up externally and can be used directly.
    Parameters:
      `ci` - the `ConfigurationInterpolator` (can be null)
    Returns:
      a reference to this builder for method chaining

  - ### withParentInterpolator

    public InterpolatorSpecification.Builder withParentInterpolator(ConfigurationInterpolator parent)
    Sets an optional parent `ConfigurationInterpolator`. If defined, this object is set as parent of a newly created `ConfigurationInterpolator` instance.
    Parameters:
      `parent` - the parent `ConfigurationInterpolator` (can be null)
    Returns:
      a reference to this builder for method chaining

  - ### withPrefixLookup

    public InterpolatorSpecification.Builder withPrefixLookup(String prefix, Lookup lookup)
    Adds a `Lookup` object for a given prefix.
    Parameters:
      `prefix` - the prefix (must not be null)
      `lookup` - the `Lookup` (must not be null)
    Returns:
      a reference to this builder for method chaining
    Throws:
      `IllegalArgumentException` - if a required parameter is missing

  - ### withPrefixLookups

    public InterpolatorSpecification.Builder withPrefixLookups(Map<String,? extends Lookup> lookups)
    Adds the content of the given map to the prefix lookups managed by this builder. The map can be null, then this method has no effect.
    Parameters:
      `lookups` - the map with prefix lookups to be added
    Returns:
      a reference to this builder for method chaining
    Throws:
      `IllegalArgumentException` - if the map contains null values

  - ### withStringConverter

    public InterpolatorSpecification.Builder withStringConverter(Function<Object,String> fn)
    Sets the function used to convert interpolated values to strings. Pass `null` if the default conversion function is to be used.
    Parameters:
      `fn` - function used to convert interpolated values to string or `null` if the default conversion function is to be used
    Returns:
      a reference to this builder for method chaining