# Class SSIMediator

java.lang.Object
org.apache.catalina.ssi.SSIMediator

public class SSIMediator extends Object
Allows the different SSICommand implementations to share data/talk to each other

Author:
  Bip Thelin, Amy Roh, Paul Speed, Dan Sandberg, David Becker

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final String`
  `className`
  `protected final SSIConditionalState`
  `conditionalState`
  `protected String`
  `configErrMsg`
  `protected String`
  `configSizeFmt`
  `protected String`
  `configTimeFmt`
  `protected static final String`
  `DEFAULT_CONFIG_ERR_MSG`
  `protected static final String`
  `DEFAULT_CONFIG_SIZE_FMT`
  `protected static final String`
  `DEFAULT_CONFIG_TIME_FMT`
  `protected static final String`
  `ENCODING_ENTITY`
  `protected static final String`
  `ENCODING_NONE`
  `protected static final String`
  `ENCODING_URL`
  `protected int`
  `lastMatchCount`
  `protected final long`
  `lastModifiedDate`
  `protected final SSIExternalResolver`
  `ssiExternalResolver`
  `protected Strftime`
  `strftime`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SSIMediator(SSIExternalResolver ssiExternalResolver, long lastModifiedDate)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `clearMatchGroups()`
  `protected String`
  `encode(String value, String encoding)`
  `protected String`
  `formatDate(Date date, TimeZone timeZone)`
  `SSIConditionalState`
  `getConditionalState()`
  `String`
  `getConfigErrMsg()`
  `String`
  `getConfigSizeFmt()`
  `String`
  `getConfigTimeFmt()`
  `long`
  `getFileLastModified(String path, boolean virtual)`
  `long`
  `getFileSize(String path, boolean virtual)`
  `String`
  `getFileText(String path, boolean virtual)`
  `Collection<String>`
  `getVariableNames()`
  `String`
  `getVariableValue(String variableName)`
  `String`
  `getVariableValue(String variableName, String encoding)`
  `protected boolean`
  `isNameReserved(String name)`
  `void`
  `log(String message)`
  `void`
  `log(String message, Throwable throwable)`
  `protected void`
  `populateMatchGroups(Matcher matcher)`
  `void`
  `setConfigErrMsg(String configErrMsg)`
  `void`
  `setConfigSizeFmt(String configSizeFmt)`
  `void`
  `setConfigTimeFmt(String configTimeFmt)`
  `void`
  `setConfigTimeFmt(String configTimeFmt, boolean fromConstructor)`
  `protected void`
  `setDateVariables(boolean fromConstructor)`
  `void`
  `setVariableValue(String variableName, String variableValue)`
  `String`
  `substituteVariables(String val)`
  Applies variable substitution to the specified String and returns the new resolved string.

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

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

- ## Field Details

  - ### ENCODING_NONE

    protected static final String ENCODING_NONE
    See Also:
      - Constant Field Values

  - ### ENCODING_ENTITY

    protected static final String ENCODING_ENTITY
    See Also:
      - Constant Field Values

  - ### ENCODING_URL

    protected static final String ENCODING_URL
    See Also:
      - Constant Field Values

  - ### DEFAULT_CONFIG_ERR_MSG

    protected static final String DEFAULT_CONFIG_ERR_MSG
    See Also:
      - Constant Field Values

  - ### DEFAULT_CONFIG_TIME_FMT

    protected static final String DEFAULT_CONFIG_TIME_FMT
    See Also:
      - Constant Field Values

  - ### DEFAULT_CONFIG_SIZE_FMT

    protected static final String DEFAULT_CONFIG_SIZE_FMT
    See Also:
      - Constant Field Values

  - ### configErrMsg

    protected String configErrMsg

  - ### configTimeFmt

    protected String configTimeFmt

  - ### configSizeFmt

    protected String configSizeFmt

  - ### className

    protected final String className

  - ### ssiExternalResolver

    protected final SSIExternalResolver ssiExternalResolver

  - ### lastModifiedDate

    protected final long lastModifiedDate

  - ### strftime

    protected Strftime strftime

  - ### conditionalState

    protected final SSIConditionalState conditionalState

  - ### lastMatchCount

    protected int lastMatchCount

- ## Constructor Details

  - ### SSIMediator

    public SSIMediator(SSIExternalResolver ssiExternalResolver, long lastModifiedDate)

- ## Method Details

  - ### setConfigErrMsg

    public void setConfigErrMsg(String configErrMsg)

  - ### setConfigTimeFmt

    public void setConfigTimeFmt(String configTimeFmt)

  - ### setConfigTimeFmt

    public void setConfigTimeFmt(String configTimeFmt, boolean fromConstructor)

  - ### setConfigSizeFmt

    public void setConfigSizeFmt(String configSizeFmt)

  - ### getConfigErrMsg

    public String getConfigErrMsg()

  - ### getConfigTimeFmt

    public String getConfigTimeFmt()

  - ### getConfigSizeFmt

    public String getConfigSizeFmt()

  - ### getConditionalState

    public SSIConditionalState getConditionalState()

  - ### getVariableNames

    public Collection<String> getVariableNames()

  - ### getFileSize

    public long getFileSize(String path, boolean virtual) throws IOException
    Throws:
      `IOException`

  - ### getFileLastModified

    public long getFileLastModified(String path, boolean virtual) throws IOException
    Throws:
      `IOException`

  - ### getFileText

    public String getFileText(String path, boolean virtual) throws IOException
    Throws:
      `IOException`

  - ### isNameReserved

    protected boolean isNameReserved(String name)

  - ### getVariableValue

    public String getVariableValue(String variableName)

  - ### setVariableValue

    public void setVariableValue(String variableName, String variableValue)

  - ### getVariableValue

    public String getVariableValue(String variableName, String encoding)

  - ### substituteVariables

    public String substituteVariables(String val)
    Applies variable substitution to the specified String and returns the new resolved string.
    Parameters:
      `val` - The value which should be checked
    Returns:
      the value after variable substitution

  - ### formatDate

    protected String formatDate(Date date, TimeZone timeZone)

  - ### encode

    protected String encode(String value, String encoding)

  - ### log

    public void log(String message)

  - ### log

    public void log(String message, Throwable throwable)

  - ### setDateVariables

    protected void setDateVariables(boolean fromConstructor)

  - ### clearMatchGroups

    protected void clearMatchGroups()

  - ### populateMatchGroups

    protected void populateMatchGroups(Matcher matcher)