Package com.googlecode.htmlcompressor.compressor

# Class YuiJavaScriptCompressor

java.lang.Object
com.googlecode.htmlcompressor.compressor.YuiJavaScriptCompressor

All Implemented Interfaces:
  `Compressor`

public class YuiJavaScriptCompressor extends Object implements Compressor
Basic JavaScript compressor implementation using Yahoo YUI Compressor that could be used by `HtmlCompressor` for inline JavaScript compression.

Author:
  Sergiy Kovalchuk
See Also:
  - `HtmlCompressor.setJavaScriptCompressor(Compressor)`
  - Yahoo YUI Compressor

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `YuiJavaScriptCompressor.DefaultErrorReporter`
  Default `ErrorReporter` implementation that uses `System.err` stream for error reporting.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `YuiJavaScriptCompressor()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `compress(String source)`
  The main method that compresses the given source and returns a compressed result.
  `org.mozilla.javascript.ErrorReporter`
  `getErrorReporter()`
  Returns `ErrorReporter` used by YUI Compressor to log error messages during JavasSript compression.
  `int`
  `getLineBreak()`
  Returns number of symbols per line Yahoo YUI Compressor will use during JavaScript compression.
  `boolean`
  `isDisableOptimizations()`
  Returns `true` if Yahoo YUI Compressor will disable all the built-in micro optimizations during JavaScript compression.
  `boolean`
  `isNoMunge()`
  Returns `true` if Yahoo YUI Compressor will only minify javascript without obfuscating local symbols.
  `boolean`
  `isPreserveAllSemiColons()`
  Returns `true` if Yahoo YUI Compressor will preserve unnecessary semicolons during JavaScript compression.
  `void`
  `setDisableOptimizations(boolean disableOptimizations)`
  Tells Yahoo YUI Compressor to disable all the built-in micro optimizations during JavaScript compression.
  `void`
  `setErrorReporter(org.mozilla.javascript.ErrorReporter errorReporter)`
  Sets `ErrorReporter` that YUI Compressor will use for reporting errors during JavaScript compression.
  `void`
  `setLineBreak(int lineBreak)`
  Tells Yahoo YUI Compressor to break lines after the specified number of symbols during JavaScript compression.
  `void`
  `setNoMunge(boolean noMunge)`
  Tells Yahoo YUI Compressor to only minify javascript without obfuscating local symbols.
  `void`
  `setPreserveAllSemiColons(boolean preserveAllSemiColons)`
  Tells Yahoo YUI Compressor to preserve unnecessary semicolons during JavaScript compression.

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

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

- ## Constructor Details

  - ### YuiJavaScriptCompressor

    public YuiJavaScriptCompressor()

- ## Method Details

  - ### compress

    public String compress(String source)
    Description copied from interface: `Compressor`
    The main method that compresses the given source and returns a compressed result.
    Specified by:
      `compress` in interface `Compressor`
    Parameters:
      `source` - The source to compress.
    Returns:
      Compressed result.

  - ### isNoMunge

    public boolean isNoMunge()
    Returns `true` if Yahoo YUI Compressor will only minify javascript without obfuscating local symbols. This corresponds to `--nomunge` command line option.
    Returns:
      `nomunge` parameter value used for JavaScript compression.
    See Also:
      - Yahoo YUI Compressor

  - ### setNoMunge

    public void setNoMunge(boolean noMunge)
    Tells Yahoo YUI Compressor to only minify javascript without obfuscating local symbols. This corresponds to `--nomunge` command line option. This option has effect only if JavaScript compression is enabled. Default is `false`.
    Parameters:
      `noMunge` - set `true` to enable `nomunge` mode
    See Also:
      - Yahoo YUI Compressor

  - ### isPreserveAllSemiColons

    public boolean isPreserveAllSemiColons()
    Returns `true` if Yahoo YUI Compressor will preserve unnecessary semicolons during JavaScript compression. This corresponds to `--preserve-semi` command line option.
    Returns:
      `preserve-semi` parameter value used for JavaScript compression.
    See Also:
      - Yahoo YUI Compressor

  - ### setPreserveAllSemiColons

    public void setPreserveAllSemiColons(boolean preserveAllSemiColons)
    Tells Yahoo YUI Compressor to preserve unnecessary semicolons during JavaScript compression. This corresponds to `--preserve-semi` command line option. This option has effect only if JavaScript compression is enabled. Default is `false`.
    Parameters:
      `preserveAllSemiColons` - set `true` to enable `preserve-semi` mode
    See Also:
      - Yahoo YUI Compressor

  - ### isDisableOptimizations

    public boolean isDisableOptimizations()
    Returns `true` if Yahoo YUI Compressor will disable all the built-in micro optimizations during JavaScript compression. This corresponds to `--disable-optimizations` command line option.
    Returns:
      `disable-optimizations` parameter value used for JavaScript compression.
    See Also:
      - Yahoo YUI Compressor

  - ### setDisableOptimizations

    public void setDisableOptimizations(boolean disableOptimizations)
    Tells Yahoo YUI Compressor to disable all the built-in micro optimizations during JavaScript compression. This corresponds to `--disable-optimizations` command line option. This option has effect only if JavaScript compression is enabled. Default is `false`.
    Parameters:
      `disableOptimizations` - set `true` to enable `disable-optimizations` mode
    See Also:
      - Yahoo YUI Compressor

  - ### getLineBreak

    public int getLineBreak()
    Returns number of symbols per line Yahoo YUI Compressor will use during JavaScript compression. This corresponds to `--line-break` command line option.
    Returns:
      `line-break` parameter value used for JavaScript compression.
    See Also:
      - Yahoo YUI Compressor

  - ### setLineBreak

    public void setLineBreak(int lineBreak)
    Tells Yahoo YUI Compressor to break lines after the specified number of symbols during JavaScript compression. This corresponds to `--line-break` command line option. This option has effect only if JavaScript compression is enabled. Default is `-1` to disable line breaks.
    Parameters:
      `lineBreak` - set number of symbols per line
    See Also:
      - Yahoo YUI Compressor

  - ### getErrorReporter

    public org.mozilla.javascript.ErrorReporter getErrorReporter()
    Returns `ErrorReporter` used by YUI Compressor to log error messages during JavasSript compression.
    Returns:
      `ErrorReporter` used by YUI Compressor to log error messages during JavasSript compression
    See Also:
      - Yahoo YUI Compressor
      - Error Reporter Interface

  - ### setErrorReporter

    public void setErrorReporter(org.mozilla.javascript.ErrorReporter errorReporter)
    Sets `ErrorReporter` that YUI Compressor will use for reporting errors during JavaScript compression. If no `ErrorReporter` was provided `YuiJavaScriptCompressor.DefaultErrorReporter` will be used which reports errors to `System.err` stream.
    Parameters:
      `errorReporter` - `ErrorReporter` that will be used by YUI Compressor
    See Also:
      - `YuiJavaScriptCompressor.DefaultErrorReporter`
      - Yahoo YUI Compressor
      - ErrorReporter Interface