com.googlecode.htmlcompressor.compressor
Class ClosureJavaScriptCompressor

java.lang.Object
  extended by com.googlecode.htmlcompressor.compressor.ClosureJavaScriptCompressor
All Implemented Interfaces:
Compressor

public class ClosureJavaScriptCompressor
extends Object
implements Compressor

Basic JavaScript compressor implementation using Google Closure Compiler that could be used by HtmlCompressor for inline JavaScript compression.

Author:
Sergiy Kovalchuk
See Also:
HtmlCompressor.setJavaScriptCompressor(Compressor), Google Closure Compiler

Field Summary
static String COMPILATION_LEVEL_ADVANCED
           
static String COMPILATION_LEVEL_SIMPLE
           
static String COMPILATION_LEVEL_WHITESPACE
           
 
Constructor Summary
ClosureJavaScriptCompressor()
           
ClosureJavaScriptCompressor(com.google.javascript.jscomp.CompilationLevel compilationLevel)
           
 
Method Summary
 String compress(String source)
          The main method that compresses the given source and returns a compressed result.
 com.google.javascript.jscomp.CompilationLevel getCompilationLevel()
          Returns level of optimization that is applied when compiling JavaScript code.
 com.google.javascript.jscomp.CompilerOptions getCompilerOptions()
          Returns options that are used by the Closure compiler.
 List<com.google.javascript.jscomp.JSSourceFile> getExterns()
          Returns JSSourceFile used as a reference during the compression at CompilationLevel.ADVANCED_OPTIMIZATIONS level.
 Level getLoggingLevel()
          Returns logging level used by the Closure compiler.
 com.google.javascript.jscomp.WarningLevel getWarningLevel()
          Returns WarningLevel used by the Closure compiler
 boolean isCustomExternsOnly()
          Returns true if default externs defined inside Closure's jar are ignored and only user defined ones are used.
 void setCompilationLevel(com.google.javascript.jscomp.CompilationLevel compilationLevel)
          Sets level of optimization that should be applied when compiling JavaScript code.
 void setCompilerOptions(com.google.javascript.jscomp.CompilerOptions compilerOptions)
          Sets options that will be used by the Closure compiler.
 void setCustomExternsOnly(boolean customExternsOnly)
          If set to true, default externs defined inside Closure's jar will be ignored and only user defined ones will be used.
 void setExterns(List<com.google.javascript.jscomp.JSSourceFile> externs)
          Sets external JavaScript files that are used as a reference for function declarations if CompilationLevel.ADVANCED_OPTIMIZATIONS compression level is used.
 void setLoggingLevel(Level loggingLevel)
          Sets logging level for the Closure compiler.
 void setWarningLevel(com.google.javascript.jscomp.WarningLevel warningLevel)
          Indicates the amount of information you want from the compiler about possible problems in your code.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMPILATION_LEVEL_SIMPLE

public static final String COMPILATION_LEVEL_SIMPLE
See Also:
Constant Field Values

COMPILATION_LEVEL_ADVANCED

public static final String COMPILATION_LEVEL_ADVANCED
See Also:
Constant Field Values

COMPILATION_LEVEL_WHITESPACE

public static final String COMPILATION_LEVEL_WHITESPACE
See Also:
Constant Field Values
Constructor Detail

ClosureJavaScriptCompressor

public ClosureJavaScriptCompressor()

ClosureJavaScriptCompressor

public ClosureJavaScriptCompressor(com.google.javascript.jscomp.CompilationLevel compilationLevel)
Method Detail

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.

getCompilationLevel

public com.google.javascript.jscomp.CompilationLevel getCompilationLevel()
Returns level of optimization that is applied when compiling JavaScript code.

Returns:
CompilationLevel that is applied when compiling JavaScript code.
See Also:
CompilationLevel

setCompilationLevel

public void setCompilationLevel(com.google.javascript.jscomp.CompilationLevel compilationLevel)
Sets level of optimization that should be applied when compiling JavaScript code. If none is provided, CompilationLevel.SIMPLE_OPTIMIZATIONS will be used by default.

Warning: Using CompilationLevel.ADVANCED_OPTIMIZATIONS could break inline JavaScript if externs are not set properly.

Parameters:
compilationLevel - Optimization level to use, could be set to CompilationLevel.ADVANCED_OPTIMIZATIONS, CompilationLevel.SIMPLE_OPTIMIZATIONS, CompilationLevel.WHITESPACE_ONLY
See Also:
Advanced Compilation and Externs, Closure Compiler Compilation Levels, CompilationLevel

getCompilerOptions

public com.google.javascript.jscomp.CompilerOptions getCompilerOptions()
Returns options that are used by the Closure compiler.

Returns:
CompilerOptions that are used by the compiler
See Also:
CompilerOptions

setCompilerOptions

public void setCompilerOptions(com.google.javascript.jscomp.CompilerOptions compilerOptions)
Sets options that will be used by the Closure compiler. If none is provided, default options constructor will be used: new CompilerOptions().

Parameters:
compilerOptions - CompilerOptions that will be used by the compiler
See Also:
CompilerOptions

getLoggingLevel

public Level getLoggingLevel()
Returns logging level used by the Closure compiler.

Returns:
Level of logging used by the Closure compiler

setLoggingLevel

public void setLoggingLevel(Level loggingLevel)
Sets logging level for the Closure compiler.

Parameters:
loggingLevel - logging level for the Closure compiler.
See Also:
Level

getExterns

public List<com.google.javascript.jscomp.JSSourceFile> getExterns()
Returns JSSourceFile used as a reference during the compression at CompilationLevel.ADVANCED_OPTIMIZATIONS level.

Returns:
JSSourceFile used as a reference during compression

setExterns

public void setExterns(List<com.google.javascript.jscomp.JSSourceFile> externs)
Sets external JavaScript files that are used as a reference for function declarations if CompilationLevel.ADVANCED_OPTIMIZATIONS compression level is used.

A number of default externs defined inside Closure's jar will be used besides user defined ones, to use only user defined externs set setCustomExternsOnly(true)

Warning: Using CompilationLevel.ADVANCED_OPTIMIZATIONS could break inline JavaScript if externs are not set properly.

Parameters:
externs - JSSourceFile to use as a reference during compression
See Also:
setCompilationLevel(CompilationLevel), setCustomExternsOnly(boolean), Advanced Compilation and Externs, JSSourceFile

getWarningLevel

public com.google.javascript.jscomp.WarningLevel getWarningLevel()
Returns WarningLevel used by the Closure compiler

Returns:
WarningLevel used by the Closure compiler

setWarningLevel

public void setWarningLevel(com.google.javascript.jscomp.WarningLevel warningLevel)
Indicates the amount of information you want from the compiler about possible problems in your code.

Parameters:
warningLevel - WarningLevel to use
See Also:

isCustomExternsOnly

public boolean isCustomExternsOnly()
Returns true if default externs defined inside Closure's jar are ignored and only user defined ones are used.

Returns:
true if default externs defined inside Closure's jar are ignored and only user defined ones are used

setCustomExternsOnly

public void setCustomExternsOnly(boolean customExternsOnly)
If set to true, default externs defined inside Closure's jar will be ignored and only user defined ones will be used.

Parameters:
customExternsOnly - true to skip default externs and use only user defined ones
See Also:
setExterns(List), setCompilationLevel(CompilationLevel)


Copyright © 2009-2012 Sergiy Kovalchuk. All Rights Reserved.