# Class StatusTransformer

java.lang.Object
org.apache.catalina.manager.StatusTransformer

public class StatusTransformer extends Object
This is a refactoring of the servlet to externalize the output into a simple class. Although we could use XSLT, that is unnecessarily complex.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StatusTransformer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `formatSeconds(Object obj)`
  Formats the given time (given in seconds) as a string.
  `static String`
  `formatSize(Object obj, boolean mb)`
  Display the given size in bytes, either as KiB or MiB.
  `static String`
  `formatTime(Object obj, boolean seconds)`
  Display the given time in ms, either as ms or s.
  `protected static String`
  `getConnectorName(String name)`
  Return the connector name without the port, for auto port connectors.
  `static void`
  `setContentType(HttpServletResponse response, int mode)`
  `static void`
  `writeBody(PrintWriter writer, Object[] args, int mode)`
  Write the header body.
  `static void`
  `writeConnectorsState(PrintWriter writer, MBeanServer mBeanServer, Vector<ObjectName> threadPools, Vector<ObjectName> globalRequestProcessors, Vector<ObjectName> requestProcessors, int mode, Object[] args)`
  Write connector state.
  `static void`
  `writeConnectorState(PrintWriter writer, ObjectName tpName, String name, MBeanServer mBeanServer, Vector<ObjectName> globalRequestProcessors, Vector<ObjectName> requestProcessors, int mode, Object[] args)`
  Write connector state.
  `protected static void`
  `writeContext(PrintWriter writer, ObjectName objectName, MBeanServer mBeanServer, int mode)`
  Write context state.
  `static void`
  `writeDetailedState(PrintWriter writer, MBeanServer mBeanServer, int mode)`
  Write applications state.
  `static void`
  `writeFooter(PrintWriter writer, int mode)`
  `static void`
  `writeHeader(PrintWriter writer, Object[] args, int mode)`
  Write an HTML or XML header.
  `static void`
  `writeJspMonitor(PrintWriter writer, Set<ObjectName> jspMonitorONs, MBeanServer mBeanServer, int mode)`
  Write JSP monitoring information.
  `static void`
  `writeManager(PrintWriter writer, Object[] args, int mode)`
  Write the manager webapp information.
  `static void`
  `writeManager(PrintWriter writer, ObjectName objectName, MBeanServer mBeanServer, int mode)`
  Write detailed information about a manager.
  `static void`
  `writeOSState(PrintWriter writer, int mode, Object[] args)`
  Write the OS state.
  `static void`
  `writePageHeading(PrintWriter writer, Object[] args, int mode)`
  `protected static void`
  `writeProcessorState(PrintWriter writer, ObjectName pName, MBeanServer mBeanServer, int mode)`
  Write processor state.
  `static void`
  `writeServerInfo(PrintWriter writer, Object[] args, int mode)`
  `static void`
  `writeVMState(PrintWriter writer, int mode, Object[] args)`
  Write the VM state.
  `static void`
  `writeWrapper(PrintWriter writer, ObjectName objectName, MBeanServer mBeanServer, int mode)`
  Write detailed information about a wrapper.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### StatusTransformer

    public StatusTransformer()

- ## Method Details

  - ### setContentType

    public static void setContentType(HttpServletResponse response, int mode)

  - ### writeHeader

    public static void writeHeader(PrintWriter writer, Object[] args, int mode)
    Write an HTML or XML header.
    Parameters:
      `writer` - the PrintWriter to use
      `args` - Path prefix for URLs
      `mode` - - 0 = HTML header, 1 = XML declaration, 2 = JSON

  - ### writeBody

    public static void writeBody(PrintWriter writer, Object[] args, int mode)
    Write the header body. XML output doesn't bother to output this stuff, since it's just title.
    Parameters:
      `writer` - The output writer
      `args` - What to write
      `mode` - 0 means write

  - ### writeManager

    public static void writeManager(PrintWriter writer, Object[] args, int mode)
    Write the manager webapp information.
    Parameters:
      `writer` - The output writer
      `args` - What to write
      `mode` - 0 means write

  - ### writePageHeading

    public static void writePageHeading(PrintWriter writer, Object[] args, int mode)

  - ### writeServerInfo

    public static void writeServerInfo(PrintWriter writer, Object[] args, int mode)

  - ### writeFooter

    public static void writeFooter(PrintWriter writer, int mode)

  - ### writeOSState

    public static void writeOSState(PrintWriter writer, int mode, Object[] args)
    Write the OS state.
    Parameters:
      `writer` - The output writer
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
      `args` - I18n labels for the OS state values

  - ### writeVMState

    public static void writeVMState(PrintWriter writer, int mode, Object[] args) throws Exception
    Write the VM state.
    Parameters:
      `writer` - The output writer
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
      `args` - I18n labels for the VM state values
    Throws:
      `Exception` - Propagated JMX error

  - ### writeConnectorsState

    public static void writeConnectorsState(PrintWriter writer, MBeanServer mBeanServer, Vector<ObjectName> threadPools, Vector<ObjectName> globalRequestProcessors, Vector<ObjectName> requestProcessors, int mode, Object[] args) throws Exception
    Write connector state.
    Parameters:
      `writer` - The output writer
      `mBeanServer` - MBean server
      `threadPools` - MBean names for the thread pools of the connectors
      `globalRequestProcessors` - MBean names for the global request processors
      `requestProcessors` - MBean names for the request processors
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
      `args` - I18n labels for the Connector state values
    Throws:
      `Exception` - Propagated JMX error

  - ### writeConnectorState

    public static void writeConnectorState(PrintWriter writer, ObjectName tpName, String name, MBeanServer mBeanServer, Vector<ObjectName> globalRequestProcessors, Vector<ObjectName> requestProcessors, int mode, Object[] args) throws Exception
    Write connector state.
    Parameters:
      `writer` - The output writer
      `tpName` - MBean name of the thread pool
      `name` - Connector name
      `mBeanServer` - MBean server
      `globalRequestProcessors` - MBean names for the global request processors
      `requestProcessors` - MBean names for the request processors
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
      `args` - I18n labels for the Connector state values
    Throws:
      `Exception` - Propagated JMX error

  - ### getConnectorName

    protected static String getConnectorName(String name)
    Return the connector name without the port, for auto port connectors.
    Parameters:
      `name` - the connector name
    Returns:
      the name without the port for the auto connectors

  - ### writeProcessorState

    protected static void writeProcessorState(PrintWriter writer, ObjectName pName, MBeanServer mBeanServer, int mode) throws Exception
    Write processor state.
    Parameters:
      `writer` - The output writer
      `pName` - MBean name of the processor
      `mBeanServer` - MBean server
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
    Throws:
      `Exception` - Propagated JMX error

  - ### writeDetailedState

    public static void writeDetailedState(PrintWriter writer, MBeanServer mBeanServer, int mode) throws Exception
    Write applications state.
    Parameters:
      `writer` - The output writer
      `mBeanServer` - MBean server
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
    Throws:
      `Exception` - Propagated JMX error

  - ### writeContext

    protected static void writeContext(PrintWriter writer, ObjectName objectName, MBeanServer mBeanServer, int mode) throws Exception
    Write context state.
    Parameters:
      `writer` - The output writer
      `objectName` - The context MBean name
      `mBeanServer` - MBean server
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
    Throws:
      `Exception` - Propagated JMX error

  - ### writeManager

    public static void writeManager(PrintWriter writer, ObjectName objectName, MBeanServer mBeanServer, int mode) throws Exception
    Write detailed information about a manager.
    Parameters:
      `writer` - The output writer
      `objectName` - The manager MBean name
      `mBeanServer` - MBean server
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
    Throws:
      `Exception` - Propagated JMX error

  - ### writeJspMonitor

    public static void writeJspMonitor(PrintWriter writer, Set<ObjectName> jspMonitorONs, MBeanServer mBeanServer, int mode) throws Exception
    Write JSP monitoring information.
    Parameters:
      `writer` - The output writer
      `jspMonitorONs` - The JSP MBean names
      `mBeanServer` - MBean server
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
    Throws:
      `Exception` - Propagated JMX error

  - ### writeWrapper

    public static void writeWrapper(PrintWriter writer, ObjectName objectName, MBeanServer mBeanServer, int mode) throws Exception
    Write detailed information about a wrapper.
    Parameters:
      `writer` - The output writer
      `objectName` - The wrapper MBean names
      `mBeanServer` - MBean server
      `mode` - Mode `0` will generate HTML. Mode `1` will generate XML.
    Throws:
      `Exception` - Propagated JMX error

  - ### formatSize

    public static String formatSize(Object obj, boolean mb)
    Display the given size in bytes, either as KiB or MiB.
    Parameters:
      `obj` - The object to format
      `mb` - true to display MiB, false for KiB
    Returns:
      formatted size

  - ### formatTime

    public static String formatTime(Object obj, boolean seconds)
    Display the given time in ms, either as ms or s.
    Parameters:
      `obj` - The object to format
      `seconds` - true to display seconds, false for milliseconds
    Returns:
      formatted time

  - ### formatSeconds

    public static String formatSeconds(Object obj)
    Formats the given time (given in seconds) as a string.
    Parameters:
      `obj` - Time object to be formatted as string
    Returns:
      formatted time