proguard
Class Configuration

java.lang.Object
  extended by proguard.Configuration

public class Configuration
extends java.lang.Object

The ProGuard configuration.

See Also:
ProGuard

Field Summary
 java.util.List adaptClassStrings
          A list of Strings specifying a filter for clases whose string constants are to be adapted, based on corresponding obfuscated class names.
 java.util.List adaptResourceFileContents
          A list of Strings specifying a filter for files whose contents are to be adapted, based on obfuscated class names.
 java.util.List adaptResourceFileNames
          A list of Strings specifying a filter for files whose names are to be adapted, based on corresponding obfuscated class names.
 boolean allowAccessModification
          Specifies whether the access of class members can be modified.
 java.io.File applyMapping
          An optional input file for reading an obfuscation mapping.
 java.util.List assumeNoSideEffects
          A list of ClassSpecification instances, whose methods are assumed to have no side effects.
 java.io.File classObfuscationDictionary
          An optional name of a file containing obfuscated class names.
 java.io.File dump
          An optional output file for printing out the processed code in a more or less readable form.
 java.lang.String flattenPackageHierarchy
          An optional base package if the obfuscated package hierarchy is to be flattened, null otherwise.
 boolean ignoreWarnings
          Specifies whether to ignore any warnings.
 java.util.List keep
          A list of KeepClassSpecification instances, whose class names and class member names are to be kept from shrinking, optimization, and/or obfuscation.
 java.util.List keepAttributes
          A list of Strings specifying optional attributes to be kept.
 java.util.List keepDirectories
          A list of Strings specifying directories to be kept in the output directories or the output jars.
 java.util.List keepPackageNames
          A list of Strings specifying package names to be kept.
 long lastModified
          Specifies the last modification time of this configuration.
 ClassPath libraryJars
          A list of library entries (jars, wars, ears, zips, and directories).
 boolean mergeInterfacesAggressively
          Specifies whether interfaces may be merged aggressively.
 boolean microEdition
          Specifies whether the code should be preverified for Java Micro Edition (creating StackMap attributes) instead of for Java Standard Edition (creating StackMapTable attributes).
 java.lang.String newSourceFileAttribute
          An optional replacement for all SourceFile attributes.
 java.util.List note
          A list of Strings specifying a filter for the classes for which not to print notes, if there are noteworthy potential problems.
 boolean obfuscate
          Specifies whether the code should be obfuscated.
 java.io.File obfuscationDictionary
          An optional name of a file containing obfuscated class member names.
 int optimizationPasses
          Specifies the number of optimization passes.
 java.util.List optimizations
          A list of Strings specifying the optimizations to be performed.
 boolean optimize
          Specifies whether the code should be optimized.
 boolean overloadAggressively
          Specifies whether to apply aggressive name overloading on class members.
 java.io.File packageObfuscationDictionary
          An optional name of a file containing obfuscated package names.
 boolean preverify
          Specifies whether the code should be preverified.
 java.io.File printConfiguration
          An optional output file for printing out the configuration that ProGuard is using (with included files and replaced variables).
 java.io.File printMapping
          An optional output file for listing the obfuscation mapping.
 java.io.File printSeeds
          An optional output file for listing the kept seeds.
 java.io.File printUsage
          An optional output file for listing the unused classes and class members.
 ClassPath programJars
          A list of input and output entries (jars, wars, ears, zips, and directories).
 java.lang.String repackageClasses
          An optional base package if the obfuscated classes are to be repackaged into a single package, null otherwise.
 boolean shrink
          Specifies whether the code should be shrunk.
 boolean skipNonPublicLibraryClasses
          Specifies whether to skip non-public library classes while reading library jars.
 boolean skipNonPublicLibraryClassMembers
          Specifies whether to skip non-public library class members while reading library classes.
 int targetClassVersion
          Specifies the version number of the output classes, or 0 if the version number can be left unchanged.
 boolean useMixedCaseClassNames
          Specifies whether obfuscated packages and classes can get mixed-case names.
 boolean useUniqueClassMemberNames
          Specifies whether to generate globally unique class member names.
 boolean verbose
          Specifies whether to print verbose messages.
 java.util.List warn
          A list of Strings specifying a filter for the classes for which not to print warnings, if there are any problems.
 java.util.List whyAreYouKeeping
          A list of ClassSpecification instances, for which an explanation is to be printed, why they are kept in the shrinking step.
 
Constructor Summary
Configuration()
           
 
Method Summary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

programJars

public ClassPath programJars
A list of input and output entries (jars, wars, ears, zips, and directories).


libraryJars

public ClassPath libraryJars
A list of library entries (jars, wars, ears, zips, and directories).


skipNonPublicLibraryClasses

public boolean skipNonPublicLibraryClasses
Specifies whether to skip non-public library classes while reading library jars.


skipNonPublicLibraryClassMembers

public boolean skipNonPublicLibraryClassMembers
Specifies whether to skip non-public library class members while reading library classes.


keepDirectories

public java.util.List keepDirectories
A list of Strings specifying directories to be kept in the output directories or the output jars. A null list means no directories. An empty list means all directories. The directory names may contain "**", "*", or "?" wildcards, and they may be preceded by the "!" negator.


targetClassVersion

public int targetClassVersion
Specifies the version number of the output classes, or 0 if the version number can be left unchanged.


lastModified

public long lastModified
Specifies the last modification time of this configuration. This time is necessary to check whether the input has to be processed. Setting it to Long.MAX_VALUE forces processing, even if the modification times of the output appear more recent than the modification times of the input.


keep

public java.util.List keep
A list of KeepClassSpecification instances, whose class names and class member names are to be kept from shrinking, optimization, and/or obfuscation.


printSeeds

public java.io.File printSeeds
An optional output file for listing the kept seeds. An empty file name means the standard output.


shrink

public boolean shrink
Specifies whether the code should be shrunk.


printUsage

public java.io.File printUsage
An optional output file for listing the unused classes and class members. An empty file name means the standard output.


whyAreYouKeeping

public java.util.List whyAreYouKeeping
A list of ClassSpecification instances, for which an explanation is to be printed, why they are kept in the shrinking step.


optimize

public boolean optimize
Specifies whether the code should be optimized.


optimizations

public java.util.List optimizations
A list of Strings specifying the optimizations to be performed. A null list means all optimizations. The optimization names may contain "*" or "?" wildcards, and they may be preceded by the "!" negator.


optimizationPasses

public int optimizationPasses
Specifies the number of optimization passes.


assumeNoSideEffects

public java.util.List assumeNoSideEffects
A list of ClassSpecification instances, whose methods are assumed to have no side effects.


allowAccessModification

public boolean allowAccessModification
Specifies whether the access of class members can be modified.


mergeInterfacesAggressively

public boolean mergeInterfacesAggressively
Specifies whether interfaces may be merged aggressively.


obfuscate

public boolean obfuscate
Specifies whether the code should be obfuscated.


printMapping

public java.io.File printMapping
An optional output file for listing the obfuscation mapping. An empty file name means the standard output.


applyMapping

public java.io.File applyMapping
An optional input file for reading an obfuscation mapping.


obfuscationDictionary

public java.io.File obfuscationDictionary
An optional name of a file containing obfuscated class member names.


classObfuscationDictionary

public java.io.File classObfuscationDictionary
An optional name of a file containing obfuscated class names.


packageObfuscationDictionary

public java.io.File packageObfuscationDictionary
An optional name of a file containing obfuscated package names.


overloadAggressively

public boolean overloadAggressively
Specifies whether to apply aggressive name overloading on class members.


useUniqueClassMemberNames

public boolean useUniqueClassMemberNames
Specifies whether to generate globally unique class member names.


useMixedCaseClassNames

public boolean useMixedCaseClassNames
Specifies whether obfuscated packages and classes can get mixed-case names.


keepPackageNames

public java.util.List keepPackageNames
A list of Strings specifying package names to be kept. A null list means no names. An empty list means all names. The package names may contain "**", "*", or "?" wildcards, and they may be preceded by the "!" negator.


flattenPackageHierarchy

public java.lang.String flattenPackageHierarchy
An optional base package if the obfuscated package hierarchy is to be flattened, null otherwise.


repackageClasses

public java.lang.String repackageClasses
An optional base package if the obfuscated classes are to be repackaged into a single package, null otherwise.


keepAttributes

public java.util.List keepAttributes
A list of Strings specifying optional attributes to be kept. A null list means no attributes. An empty list means all attributes. The attribute names may contain "*" or "?" wildcards, and they may be preceded by the "!" negator.


newSourceFileAttribute

public java.lang.String newSourceFileAttribute
An optional replacement for all SourceFile attributes.


adaptClassStrings

public java.util.List adaptClassStrings
A list of Strings specifying a filter for clases whose string constants are to be adapted, based on corresponding obfuscated class names.


adaptResourceFileNames

public java.util.List adaptResourceFileNames
A list of Strings specifying a filter for files whose names are to be adapted, based on corresponding obfuscated class names.


adaptResourceFileContents

public java.util.List adaptResourceFileContents
A list of Strings specifying a filter for files whose contents are to be adapted, based on obfuscated class names.


preverify

public boolean preverify
Specifies whether the code should be preverified.


microEdition

public boolean microEdition
Specifies whether the code should be preverified for Java Micro Edition (creating StackMap attributes) instead of for Java Standard Edition (creating StackMapTable attributes).


verbose

public boolean verbose
Specifies whether to print verbose messages.


note

public java.util.List note
A list of Strings specifying a filter for the classes for which not to print notes, if there are noteworthy potential problems. A null list means all classes. The class names may contain "**", "*", or "?" wildcards, and they may be preceded by the "!" negator.


warn

public java.util.List warn
A list of Strings specifying a filter for the classes for which not to print warnings, if there are any problems. A null list means all classes. The class names may contain "**", "*", or "?" wildcards, and they may be preceded by the "!" negator.


ignoreWarnings

public boolean ignoreWarnings
Specifies whether to ignore any warnings.


printConfiguration

public java.io.File printConfiguration
An optional output file for printing out the configuration that ProGuard is using (with included files and replaced variables). An empty file name means the standard output.


dump

public java.io.File dump
An optional output file for printing out the processed code in a more or less readable form. An empty file name means the standard output.

Constructor Detail

Configuration

public Configuration()