# Interface RewriteMap

All Known Implementing Classes:
  `InternalRewriteMap.Escape, InternalRewriteMap.LowerCase, InternalRewriteMap.Unescape, InternalRewriteMap.UpperCase, RandomizedTextRewriteMap`

public interface RewriteMap
Interface for user defined lookup/replacement logic that can be defined in a `rewrite.config` file by a `RewriteMap` directive. Such a map can then be used by a `RewriteRule` defined in the same file.

An example `rewrite.config` file could look like:

    RewriteMap uc example.UpperCaseMap

    RewriteRule ^/(.*)$ ${uc:$1}

One parameter can be optionally appended to the `RewriteMap` directive. This could be used – for example – to specify a name of a file, that contains a lookup table used by the implementation of the map.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `lookup(String key)`
  Maps a key to a replacement value.
  The method is free to return `null` to indicate, that the default value from the `RewriteRule` directive should be used.
  `String`
  `setParameters(String params)`
  Optional parameter that can be defined through the `RewriteMap` directive in the `rewrite.config` file.
  `default void`
  `setParameters(String... params)`
  Optional parameters that can be defined through the `RewriteMap` directive in the `rewrite.config` file.

- ## Method Details

  - ### setParameters

    String setParameters(String params)
    Optional parameter that can be defined through the `RewriteMap` directive in the `rewrite.config` file.
    Parameters:
      `params` - the optional parameter
    Returns:
      value is currently ignored

  - ### setParameters

    default void setParameters(String... params)
    Optional parameters that can be defined through the `RewriteMap` directive in the `rewrite.config` file.

    This method will be called, if there is more than one parameter defined.

    Parameters:
      `params` - the optional parameters

  - ### lookup

    String lookup(String key)
    Maps a key to a replacement value.
    The method is free to return `null` to indicate, that the default value from the `RewriteRule` directive should be used.
    Parameters:
      `key` - used by the actual implementation to generate a mapped value
    Returns:
      mapped value or `null`