<!doctype html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-style-type" content="text/css">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Ant Task</title>
</head>
<body>

<h2>Ant Task</h2>

<b>ProGuard</b> can be run as a task in the Java-based build tool Ant (version
1.6.0 or higher).
<p>

Before you can use the <code>proguard</code> task, you have to tell Ant about
this new task. The easiest way is to add the following line to your
<code>build.xml</code> file:
<p>

<pre>
&lt;taskdef resource="proguard/ant/task.properties"
         classpath="/usr/local/java/proguard/lib/proguard.jar" /&gt;
</pre>
<p>

Please make sure the class path is set correctly for your system.
<p>

There are three ways to configure the ProGuard task: using an external
configuration file, using embedded ProGuard configuration options, or using
the equivalent XML configuration tags. These three ways can be combined,
depending on practical circumstances and personal preference.
<p>

<h3>1. An external ProGuard configuration file</h3>

The simplest way to use the ProGuard task in an Ant build file is to keep your
ProGuard configuration file, and include it from Ant. You can include your
ProGuard configuration file by setting
the <a href="#configuration_attribute"><code>configuration</code></a>
attribute of your
<code>proguard</code> task. Your ant build file will then look like this:
<p>

<pre>
&lt;taskdef resource="proguard/ant/task.properties"
         classpath="/usr/local/java/proguard/lib/proguard.jar" /&gt;
&lt;proguard configuration="myconfigfile.pro"/&gt;
</pre>
<p>

This is a convenient option if you prefer ProGuard's configuration style over
XML, if you want to keep your build file small, or if you have to share your
configuration with developers who don't use Ant.
<p>

<h3>2. Embedded ProGuard configuration options</h3>

Instead of keeping an external ProGuard configuration file, you can also copy
the contents of the file into the nested text of the <code>proguard</code> task
(the PCDATA area). Your Ant build file will then look like this:
<p>

<pre>
&lt;taskdef resource="proguard/ant/task.properties"
         classpath="/usr/local/java/proguard/lib/proguard.jar" /&gt;
&lt;proguard&gt;
  -libraryjars ${java.home}/lib/rt.jar
  -injars      in.jar
  -outjars     out.jar

  -keepclasseswithmembers public class * {
      public static void main(java.lang.String[]);
  }
&lt;/proguard&gt;
</pre>
<p>

Some minor syntactical changes are required in order to conform with the XML
standard.
<p>

Firstly, the <code>#</code> character cannot be used for comments in an XML
file. Comments must be enclosed by an opening <code>&lt;!--</code> and a
closing <code>--&gt;</code>. All occurrences of the <code>#</code> character
can be removed.
<p>

Secondly, the use of <code>&lt;</code> and <code>&gt;</code> characters would
upset the structure of the XML build file. Environment variables are now
enclosed by an opening <code>${</code> and a closing <code>}</code>. This
syntax also allows you to use Ant properties within the ProGuard
configuration. Other occurrences of <code>&lt;</code> and <code>&gt;</code>
have to be encoded as <code>&amp;lt;</code> and <code>&amp;gt;</code>.
<p>

<h3>3. XML configuration tags</h3>

If you really prefer a full-blown XML configuration, you can replace the
ProGuard configuration options by XML configuration tags. The resulting
configuration will be equivalent, but much more verbose and difficult to read,
as XML goes. The remainder of this page presents the supported tags. For a
more extensive discussion of their meaning, please consult the traditional <a
href="usage.html">Usage</a> section. You can find some sample configuration
files in the <code>examples/ant</code> directory of the ProGuard distribution.
<p>

<a name="proguard">&nbsp;</a>
<h2>Task Attributes and Nested Elements</h2>

The <code><b>&lt;proguard&gt;</b></code> task and the
<code><b>&lt;proguardconfiguration&gt;</b></code> task can have the following
attributes (only for <code>&lt;proguard&gt;</code>) and nested
elements:

<dl>

<dt><a name="configuration_attribute"><code><b>configuration</b></code></a>
    = "<i>filename</i>"</dt>
<dd>Read and merge options from the given ProGuard-style configuration
    file. Note: for reading XML-style configurations, use the <a
    href="#configuration_element"><code>configuration</code></a>
    <i>element</i>.</dd>

<dt><a href="usage.html#dontskipnonpubliclibraryclasses"><code><b>skipnonpubliclibraryclasses</b></code></a>
    = "<i>boolean</i>"
    (default = true)</dt>
<dd>Ignore non-public library classes.</dd>

<dt><a href="usage.html#dontskipnonpubliclibraryclassmembers"><code><b>skipnonpubliclibraryclassmembers</b></code></a>
    = "<i>boolean</i>"
    (default = true)</dt>
<dd>Ignore package visible library class members.</dd>

<dt><a href="usage.html#target"><code><b>target</b></code></a>
    = "<i>version</i>"
    (default = none)</dt>
<dd>Set the given version number in the processed classes.</dd>

<dt><a href="usage.html#forceprocessing"><code><b>forceprocessing</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Process the input, even if the output seems up to date.</dd>

<dt><a href="usage.html#printseeds"><code><b>printseeds</b></code></a>
    = "<i>boolean or filename</i>"
    (default = false)</dt>
<dd>List classes and class members matched by the various <code>keep</code>
    commands, to the standard output or to the given file.</dd>

<dt><a href="usage.html#dontshrink"><code><b>shrink</b></code></a>
    = "<i>boolean</i>"
    (default = true)</dt>
<dd>Shrink the input class files.</dd>

<dt><a href="usage.html#printusage"><code><b>printusage</b></code></a>
    = "<i>boolean or filename</i>"
    (default = false)</dt>
<dd>List dead code of the input class files, to the standard output or to the
    given file.</dd>

<dt><a href="usage.html#dontoptimize"><code><b>optimize</b></code></a>
    = "<i>boolean</i>"
    (default = true)</dt>
<dd>Optimize the input class files.</dd>

<dt><a href="usage.html#optimizationpasses"><code><b>optimizationpasses</b></code></a>
    = "<i>n</i>"
    (default = 1)</dt>
<dd>The number of optimization passes to be performed.</dd>

<dt><a href="usage.html#allowaccessmodification"><code><b>allowaccessmodification</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Allow the access modifiers of classes and class members to be modified,
    while optimizing.</dd>

<dt><a href="usage.html#mergeinterfacesaggressively"><code><b>mergeinterfacesaggressively</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Allow any interfaces to be merged, while optimizing.</dd>

<dt><a href="usage.html#dontobfuscate"><code><b>obfuscate</b></code></a>
    = "<i>boolean</i>"
   (default = true)</dt>
<dd>Obfuscate the input class files.</dd>

<dt><a href="usage.html#printmapping"><code><b>printmapping</b></code></a>
    = "<i>boolean or filename</i>"
    (default = false)</dt>
<dd>Print the mapping from old names to new names for classes and class members
    that have been renamed, to the standard output or to the given file.</dd>

<dt><a href="usage.html#applymapping"><code><b>applymapping</b></code></a>
    = "<i>filename</i>"
    (default = none)</dt>
<dd>Reuse the given mapping, for incremental obfuscation.</dd>

<dt><a href="usage.html#obfuscationdictionary"><code><b>obfuscationdictionary</b></code></a>
    = "<i>filename</i>"
    (default = none)</dt>
<dd>Use the words in the given text file as obfuscated field names and method
    names.</dd>

<dt><a href="usage.html#classobfuscationdictionary"><code><b>classobfuscationdictionary</b></code></a>
    = "<i>filename</i>"
    (default = none)</dt>
<dd>Use the words in the given text file as obfuscated class names.</dd>

<dt><a href="usage.html#packageobfuscationdictionary"><code><b>packageobfuscationdictionary</b></code></a>
    = "<i>filename</i>"
    (default = none)</dt>
<dd>Use the words in the given text file as obfuscated package names.</dd>

<dt><a href="usage.html#overloadaggressively"><code><b>overloadaggressively</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Apply aggressive overloading while obfuscating.</dd>

<dt><a href="usage.html#useuniqueclassmembernames"><code><b>useuniqueclassmembernames</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Ensure uniform obfuscated class member names for subsequent incremental
    obfuscation.</dd>

<dt><a href="usage.html#dontusemixedcaseclassnames"><code><b>usemixedcaseclassnames</b></code></a>
    = "<i>boolean</i>"
    (default = true)</dt>
<dd>Generate mixed-case class names while obfuscating.</dd>

<dt><a href="usage.html#flattenpackagehierarchy"><code><b>flattenpackagehierarchy</b></code></a>
    = "<i>package_name</i>"
    (default = none)</dt>
<dd>Repackage all packages that are renamed into the single given parent
    package.</dd>

<dt><a href="usage.html#repackageclasses"><code><b>repackageclasses</b></code></a>
    = "<i>package_name</i>"
    (default = none)</dt>
<dd>Repackage all class files that are renamed into the single given
    package.</dd>

<dt><a href="usage.html#renamesourcefileattribute"><code><b>renamesourcefileattribute</b></code></a>
    = "<i>string</i>"
    (default = none)</dt>
<dd>Put the given constant string in the <code>SourceFile</code>
    attributes.</dd>

<dt><a href="usage.html#dontpreverify"><code><b>preverify</b></code></a>
    = "<i>boolean</i>"
    (default = true)</dt>
<dd>Preverify the processed class files if they are targeted at Java Micro
    Edition or at Java 6 or higher.</dd>

<dt><a href="usage.html#microedition"><code><b>microedition</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Targets the processed class files at Java Micro Edition.</dd>

<dt><a href="usage.html#verbose"><code><b>verbose</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Write out some more information during processing.</dd>

<dt><a href="usage.html#dontnote"><code><b>note</b></code></a>
    = "<i>boolean</i>"
   (default = true)</dt>
<dd>Print notes about potential mistakes or omissions in the configuration.
    Use the nested element <a href="#dontnote">dontnote</a> for more
    fine-grained control.</dd>

<dt><a href="usage.html#dontwarn"><code><b>warn</b></code></a>
    = "<i>boolean</i>"
    (default = true)</dt>
<dd>Print warnings about unresolved references. Use the nested
    element <a href="#dontwarn">dontwarn</a> for more fine-grained
    control. <i>Only use this option if you know what you're doing!</i></dd>

<dt><a href="usage.html#ignorewarnings"><code><b>ignorewarnings</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Print warnings about unresolved references, but continue processing
    anyhow. <i>Only use this option if you know what you're doing!</i></dd>

<dt><a href="usage.html#printconfiguration"><code><b>printconfiguration</b></code></a>
    = "<i>boolean or filename</i>"
    (default = false)</dt>
<dd>Write out the entire configuration in traditional ProGuard style, to the
    standard output or to the given file. Useful to replace unreadable
    XML configurations.</dd>

<dt><a href="usage.html#dump"><code><b>dump</b></code></a>
    = "<i>boolean or filename</i>"
    (default = false)</dt>
<dd>Write out the internal structure of the processed class files, to the
    standard output or to the given file.</dd>

<dt><a href="usage.html#injars"><code><b>&lt;injar</b></code></a>
    <a href="#classpath"><i>class_path</i></a>
    <code><b>/&gt;</b></code></dt>
<dd>Specifies the program jars (or wars, ears, zips, or directories).</dd>

<dt><a href="usage.html#outjars"><code><b>&lt;outjar</b></code></a>
    <a href="#classpath"><i>class_path</i></a>
    <code><b>/&gt;</b></code></dt>
<dd>Specifies the name of the output jars (or wars, ears, zips, or
    directories).</dd>

<dt><a href="usage.html#libraryjars"><code><b>&lt;libraryjar</b></code></a>
    <a href="#classpath"><i>class_path</i></a>
    <code><b>/&gt;</b></code></dt>
<dd>Specifies the library jars (or wars, ears, zips, or directories).</dd>

<dt><a href="usage.html#keepdirectories"><code><b>&lt;keepdirectory name = </b></code></a>"<i>directory_name</i>"
    <code><b>/&gt;</b></code><br/>
    <a href="usage.html#keepdirectories"><code><b>&lt;keepdirectories filter = </b></code></a>"<a href="usage.html#filefilters"><i>directory_filter</i></a>"
    <code><b>/&gt;</b></code></dt>
<dd>Keep the specified directories in the output jars (or wars, ears, zips, or
    directories).</dd>

<dt><a href="usage.html#keep"><code><b>&lt;keep</b></code></a>
    <a href="#keepmodifier"><i>modifiers</i></a>
    <a href="#classspecification"><i>class_specification</i></a>
    <code><b>&gt;</b></code>
    <a href="#classmemberspecification"><i>class_member_specifications</i></a>
    <code><b>&lt;/keep&gt;</b></code></dt>
<dd>Preserve the specified classes <i>and</i> class members.</dd>

<dt><a href="usage.html#keepclassmembers"><code><b>&lt;keepclassmembers</b></code></a>
    <a href="#keepmodifier"><i>modifiers</i></a>
    <a href="#classspecification"><i>class_specification</i></a>
    <code><b>&gt;</b></code>
    <a href="#classmemberspecification"><i>class_member_specifications</i></a>
    <code><b>&lt;/keepclassmembers&gt;</b></code></dt>
<dd>Preserve the specified class members, if their classes are preserved as
    well.</dd>

<dt><a href="usage.html#keepclasseswithmembers"><code><b>&lt;keepclasseswithmembers</b></code></a>
    <a href="#keepmodifier"><i>modifiers</i></a>
    <a href="#classspecification"><i>class_specification</i></a>
    <code><b>&gt;</b></code>
    <a href="#classmemberspecification"><i>class_member_specifications</i></a>
    <code><b>&lt;/keepclasseswithmembers&gt;</b></code></dt>
<dd>Preserve the specified classes <i>and</i> class members, if all of the
    specified class members are present.</dd>

<dt><a href="usage.html#keepnames"><code><b>&lt;keepnames</b></code></a>
    <a href="#classspecification"><i>class_specification</i></a>
    <code><b>&gt;</b></code>
    <a href="#classmemberspecification"><i>class_member_specifications</i></a>
    <code><b>&lt;/keepnames&gt;</b></code></dt>
<dd>Preserve the names of the specified classes <i>and</i> class members (if
    they aren't removed in the shrinking step).</dd>

<dt><a href="usage.html#keepclassmembernames"><code><b>&lt;keepclassmembernames</b></code></a>
    <a href="#classspecification"><i>class_specification</i></a>
    <code><b>&gt;</b></code>
    <a href="#classmemberspecification"><i>class_member_specifications</i></a>
    <code><b>&lt;/keepclassmembernames&gt;</b></code></dt>
<dd>Preserve the names of the specified class members (if they aren't removed
    in the shrinking step).</dd>

<dt><a href="usage.html#keepclasseswithmembernames"><code><b>&lt;keepclasseswithmembernames</b></code></a>
    <a href="#classspecification"><i>class_specification</i></a>
    <code><b>&gt;</b></code>
    <a href="#classmemberspecification"><i>class_member_specifications</i></a>
    <code><b>&lt;/keepclasseswithmembernames&gt;</b></code></dt>
<dd>Preserve the names of the specified classes <i>and</i> class members, if
    all of the specified class members are present (after the shrinking
    step).</dd>

<dt><a href="usage.html#whyareyoukeeping"><code><b>&lt;whyareyoukeeping</b></code></a>
    <a href="#classspecification"><i>class_specification</i></a>
    <code><b>&gt;</b></code>
    <a href="#classmemberspecification"><i>class_member_specifications</i></a>
    <code><b>&lt;/whyareyoukeeping&gt;</b></code></dt>
<dd>Print details on why the given classes and class members are being kept in
    the shrinking step.</dd>

<dt><a href="usage.html#assumenosideeffects"><code><b>&lt;assumenosideeffects</b></code></a>
    <a href="#classspecification"><i>class_specification</i></a>
    <code><b>&gt;</b></code>
    <a href="#classmemberspecification"><i>class_member_specifications</i></a>
    <code><b>&lt;/assumenosideeffects&gt;</b></code></dt>
<dd>Assume that the specified methods don't have any side effects, while
    optimizing. <i>Only use this option if you know what you're
    doing!</i></dd>

<dt><a href="usage.html#optimizations"><code><b>&lt;optimization name = </b></code></a>"<a href="optimizations.html"><i>optimization_name</i></a>"
    <code><b>/&gt;</b></code><br/>
    <a href="usage.html#optimizations"><code><b>&lt;optimizations filter = </b></code></a>""<a href="optimizations.html"><i>optimization_filter</i></a>"
    <code><b>/&gt;</b></code></dt>
<dd>Perform only the specified optimizations.</dd>

<dt><a href="usage.html#keeppackagenames"><code><b>&lt;keeppackagename name = </b></code></a>"<i>package_name</i>"
    <code><b>/&gt;</b></code><br/>
    <a href="usage.html#keeppackagenames"><code><b>&lt;keeppackagenames filter = </b></code></a>"<a href="usage.html#filters"><i>package_filter</i></a>"
    <code><b>/&gt;</b></code></dt>
<dd>Keep the specified package names from being obfuscated. If no name is
    given, all package names are preserved.</dd>

<dt><a href="usage.html#keepattributes"><code><b>&lt;keepattribute name = </b></code></a>"<i>attribute_name</i>"
    <code><b>/&gt;</b></code><br/>
    <a href="usage.html#keepattributes"><code><b>&lt;keepattributes filter = </b></code></a>"<a href="usage.html#filters"><i>attribute_filter</i></a>"
    <code><b>/&gt;</b></code></dt>
<dd>Preserve the specified optional Java bytecode attributes, with optional
    wildcards. If no name is given, all attributes are preserved.</dd>

<dt><a href="usage.html#adaptclassstrings"><code><b>&lt;adaptclassstrings filter = </b></code></a>"<a href="usage.html#filters"><i>class_filter</i></a>"
    <code><b>/&gt;</b></code></dt>
<dd>Adapt string constants in the specified classes, based on the obfuscated
    names of any corresponding classes.</dd>

<dt><a href="usage.html#adaptresourcefilenames"><code><b>&lt;adaptresourcefilenames filter = </b></code></a>"<a href="usage.html#filefilters"><i>file_filter</i></a>"
    <code><b>/&gt;</b></code></dt>
<dd>Rename the specified resource files, based on the obfuscated names of the
    corresponding class files.</dd>

<dt><a href="usage.html#adaptresourcefilecontents"><code><b>&lt;adaptresourcefilecontents filter = </b></code></a>"<a href="usage.html#filefilters"><i>file_filter</i></a>"
    <code><b>/&gt;</b></code></dt>
<dd>Update the contents of the specified resource files, based on the
    obfuscated names of the processed classes.</dd>

<dt><a name="dontnote" />
    <a href="usage.html#dontnote"><code><b>&lt;dontnote filter = </b></code></a>"<a href="usage.html#filters"><i>class_filter</i></a>"
    <code><b>/&gt;</b></code></dt>
<dd>Don't print notes about classes matching the specified class name
    filter.</dd>

<dt><a name="dontwarn" />
    <a href="usage.html#dontwarn"><code><b>&lt;dontwarn filter = </b></code></a>"<a href="usage.html#filters"><i>class_filter</i></a>"
    <code><b>/&gt;</b></code></dt>
<dd>Don't print warnings about classes matching the specified class name
    filter. <i>Only use this option if you know what you're doing!</i></dd>

<dt><a name="configuration_element"><code><b>&lt;configuration refid = </b></code></a>"<i>ref_id</i>"
    <code><b>/&gt;</b></code></dt>
<dd>Includes the configuration specified in the
    <code>&lt;proguardconfiguration&gt;</code> task (or
    <code>&lt;proguard&gt;</code> task) with the attribute <code>id</code> =
    "<i>ref_id</i>". Note that only the nested elements of this configuration
    are considered, not the attributes. Also note: for reading ProGuard-style
    configuration files, use the <a
    href="#configuration_attribute"><code>configuration</code></a>
    <i>attribute</i>.</dd>

</dl>

<a name="classpath">&nbsp;</a>
<h2>Class Path Attributes and Nested Elements</h2>

The jar tags are path tags, so they can have any of the path attributes (or
nested elements). The most common attributes are:

<dl>

<dt><code><b>path</b></code> = "<i>path</i>"</dt>
<dd>The names of the jars (or wars, ears, zips, or directories), separated by
    the path separator.</dd>

<dt><code><b>location</b></code> = "<i>name</i>" (or <code><b>file</b></code>
    = "<i>name</i>", or <code><b>dir</b></code> = "<i>name</i>", or
    <code><b>name</b></code> = "<i>name</i>")</dt>
<dd>Alternatively, the name of a single jar (or war, ear, zip, or
    directory).</dd>

<dt><code><b>refid</b></code> = "<i>ref_id</i>"</dt>
<dd>Alternatively, a reference to the path or file set with the attribute
    <code>id</code> = "<i>ref_id</i>".</dd>

</dl>

In addition, the jar tags can have ProGuard-style filter attributes:

<dl>

<dt><code><b>filter</b></code> =
    "<a href="usage.html#filefilters"><i>file_filter</i></a>"</dt>
<dd>An optional filter for all class file names and resource file names that
    are encountered.</dd>

<dt><code><b>jarfilter</b></code> =
    "<a href="usage.html#filefilters"><i>file_filter</i></a>"</dt>
<dd>An optional filter for all jar names that are encountered.</dd>

<dt><code><b>warfilter</b></code> =
    "<a href="usage.html#filefilters"><i>file_filter</i></a>"</dt>
<dd>An optional filter for all war names that are encountered.</dd>

<dt><code><b>earfilter</b></code> =
    "<a href="usage.html#filefilters"><i>file_filter</i></a>"</dt>
<dd>An optional filter for all ear names that are encountered.</dd>

<dt><code><b>zipfilter</b></code> =
    "<a href="usage.html#filefilters"><i>file_filter</i></a>"</dt>
<dd>An optional filter for all zip names that are encountered.</dd>

</dl>

<a name="keepmodifier">&nbsp;</a>
<h2>Keep Modifier Attributes</h2>

The keep tags can have the following <i>modifier</i> attributes:

<dl>

<dt><a href="usage.html#allowshrinking"><code><b>allowshrinking</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Specifies whether the entry points specified in the keep tag may be
    shrunk.</dd>

<dt><a href="usage.html#allowoptimization"><code><b>allowoptimization</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Specifies whether the entry points specified in the keep tag may be
    optimized.</dd>

<dt><a href="usage.html#allowobfuscation"><code><b>allowobfuscation</b></code></a>
    = "<i>boolean</i>"
    (default = false)</dt>
<dd>Specifies whether the entry points specified in the keep tag may be
    obfuscated.</dd>

</dl>

<a name="classspecification">&nbsp;</a>
<h2>Class Specification Attributes and Nested Elements</h2>

The keep tags can have the following <i>class_specification</i> attributes and
<i>class_member_specifications</i> nested elements:

<dl>

<dt><code><b>access</b></code> = "<i>access_modifiers</i>"</dt>
<dd>The optional access modifiers of the class. Any space-separated list of
    "public", "final", and "abstract", with optional negators "!".</dd>

<dt><code><b>type</b></code> = "<i>type</i>"</dt>
<dd>The optional type of the class: one of "class", "interface", or
    "!interface".</dd>

<dt><code><b>name</b></code> = "<i>class_name</i>"</dt>
<dd>The optional fully qualified name of the class, with optional
    wildcards.</dd>

<dt><code><b>extends</b></code> = "<i>class_name</i>"</dt>
<dd>The optional fully qualified name of the class the specified classes
    must extend, with optional wildcards.</dd>

<dt><code><b>implements</b></code> = "<i>class_name</i>"</dt>
<dd>The optional fully qualified name of the class the specified classes
    must implement, with optional wildcards.</dd>

<dt><code><b>&lt;field</b></code>
    <a href="#classmemberspecification"><i>class_member_specification</i></a>
    <code><b>/&gt;</b></code></dt>
<dd>Specifies a field.</dd>

<dt><code><b>&lt;method</b></code>
    <a href="#classmemberspecification"><i>class_member_specification</i></a>
    <code><b>/&gt;</b></code></dt>
<dd>Specifies a method.</dd>

<dt><code><b>&lt;constructor</b></code>
    <a href="#classmemberspecification"><i>class_member_specification</i></a>
    <code><b>/&gt;</b></code></dt>
<dd>Specifies a constructor.</dd>

</dl>

<a name="classmemberspecification">&nbsp;</a>
<h2>Class Member Specification Attributes</h2>

The class member tags can have the following <i>class_member_specification</i>
attributes:

<dl>

<dt><code><b>access</b></code> = "<i>access_modifiers</i>"</dt>
<dd>The optional access modifiers of the class. Any space-separated list of
    "public", "protected", "private", "static", etc., with optional negators
    "!".</dd>

<dt><code><b>type</b></code> = "<i>type</i>"</dt>
<dd>The optional fully qualified type of the class member, with optional
    wildcards. Not applicable for constructors, but required for methods for
    which the <code>parameters</code> attribute is specified.</dd>

<dt><code><b>name</b></code> = "<i>name</i>"</dt>
<dd>The optional name of the class member, with optional wildcards. Not
    applicable for constructors.</dd>

<dt><code><b>parameters</b></code> = "<i>parameters</i>"</dt>
<dd>The optional comma-separated list of fully qualified method parameters,
    with optional wildcards. Not applicable for fields, but required for
    constructors, and for methods for which the <code>type</code> attribute is
    specified.</dd>

</dl>

<hr>
<address>
Copyright &copy; 2002-2009
<a href="http://www.graphics.cornell.edu/~eric/">Eric Lafortune</a>.
</address>
</body>
</html>
