Prepare release 0.12.


git-svn-id: https://svn.apache.org/repos/asf/creadur/rat/branches/0.12-release-branch@1706434 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/trunk/.gitignore b/trunk/.gitignore
new file mode 100644
index 0000000..1f487e0
--- /dev/null
+++ b/trunk/.gitignore
@@ -0,0 +1,18 @@
+*.ipr
+*.iws
+/target/*
+**/target/*
+.svn
+**/.svn
+.project
+*/.project
+.classpath
+*/.classpath
+.settings
+*/.settings
+*.iml
+*/*.iml
+*/*.ipr
+*/*.iws
+.idea/*
+*/.idea
diff --git a/trunk/BUILD.txt b/trunk/BUILD.txt
new file mode 100644
index 0000000..562bb7a
--- /dev/null
+++ b/trunk/BUILD.txt
@@ -0,0 +1,18 @@
+How to build RAT
+================
+
+There is a maven default goal configured that builds and installs a fresh artifact. Just launch maven without any goals in the project root directory.
+or
+Normal development:
+
+    mvn install
+
+Normal development without running tests:
+
+    mvn -Dmaven.test.skip=true install
+
+Build apache release
+
+    mvn clean install -Papache-release
+
+RAT uses the previos release version during the build to verify it complies its own rules.
diff --git a/trunk/LICENSE b/trunk/LICENSE
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/trunk/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/trunk/NOTICE b/trunk/NOTICE
new file mode 100644
index 0000000..5f12ecc
--- /dev/null
+++ b/trunk/NOTICE
@@ -0,0 +1,5 @@
+Apache Rat
+Copyright 2006-2014 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/trunk/README.txt b/trunk/README.txt
new file mode 100644
index 0000000..9a32668
--- /dev/null
+++ b/trunk/README.txt
@@ -0,0 +1,53 @@
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+                            Apache Rat
+                            ==========
+
+Apache Rat is developed by the Apache Creadur project of the Apache Software
+Foundation. Join us at http://creadur.apache.org and read more about Apache Rat
+at http://creadur.apache.org/rat.
+
+Release Audit Tool (Rat) is a tool to improve accuracy and efficiency when checking
+releases. It is heuristic in nature: making guesses about possible problems. It
+will produce false positives and cannot find every possible issue with a release.
+It's reports require interpretation.
+
+Rat was developed in response to a need felt in the Apache Incubator to be able to
+review releases for the most common faults less labour intensively. It is therefore
+highly tuned to the Apache style of releases.
+
+Rat is intended to be self documenting: reports should include introductory material
+describing their function. Building Rat describes how to run Rat. Running Rat
+describes the options available. These release notes describe the current state of
+Rat.
+
+A good way to use Rat is to through the source. This allows the code base to be
+easily patched for example to add new generated file matchers. The main jar is
+runnable and self-documenting. This jar is available as a standard alone binary.
+
+Rat includes a task library for Ant 1.7. This allows Rat reports to be run against
+a wide variety of resources. See ant-task-examples.xml. To use the Ant tasks,
+Apache Ant 1.7 is required. See http://ant.apache.org/.
+
+For Maven builds, the plugin is recommended.
+
+In response to demands from project quality tool developers, Rat is available as a
+library (rat-lib jar) suitable for inclusion in tools. Note that binary compatibility
+is not guaranteed between 0.x releases. The XML output format is not yet in it's
+final form and so library users are recommended to either use the supplied
+stylesheets or keep in close touch with the code.
+
diff --git a/trunk/RELEASE-NOTES.txt b/trunk/RELEASE-NOTES.txt
new file mode 100644
index 0000000..953b801
--- /dev/null
+++ b/trunk/RELEASE-NOTES.txt
@@ -0,0 +1,67 @@
+              Apache Creadur Rat 0.12
+                  RELEASE NOTES
+
+The Apache Creadur Rat team is pleased to announce the release of Apache Creadur Rat 0.12
+
+Apache Rat is a release audit tool. It improves accuracy and efficiency when checking
+releases. It is heuristic in nature: making guesses about possible problems. It
+will produce false positives and cannot find every possible issue with a release.
+Its reports require interpretation.
+
+In response to demands from project quality tool developers, Rat is available as a
+library suitable for inclusion in tools. This POM describes that library.
+Note that binary compatibility is not guaranteed between 0.x releases.
+
+Apache Rat is developed by the Apache Creadur project, a language and build
+agnostic home for software distribution comprehension and audit tools.
+
+We now require Maven 3.0.5+ to build Rat, but as before we only require
+Maven 2.2.1+ if you want to use Rat in your own Maven projects.
+We've integrated Rat into the ASF Jenkins to ensure continuous builds with various JDK versions.
+
+Changes in this version include:
+
+New features:
+o RAT-196:  Minor refactoring in pom.xml. Thanks to Karl Heinz Marbais.
+o RAT-61:   List files with unapproved licenses in Maven output. Thanks to Jukka Zitting.
+o RAT-170:  RAT should use itself during build and site generation. Thanks to Philipp Ottlinger.
+o RAT-181:  BinaryGuesser should treat *.truststore as binary.
+o RAT-184:  Add DEPENDENCIES to the list of ignored files in NoteGuesser. Thanks to Karl Heinz Marbaise.
+o RAT-185:  .repository folder should be ignored. Thanks to Karl Heinz Marbaise.
+o RAT-186:  BinaryGuesser should recognize PSD files as images.
+o RAT-187:  Add 'SAR', 'HAR', 'WSR' as archives which should be ignored. Thanks to Karl Heinz Marbaise.
+o RAT-197:  Improve exclusion defaults when working with Maven 3.3.1 (exclude .mvn). Thanks to Karl Heinz Marbaise.
+o RAT-201:  BinaryGuesser should treat *.swf as binary.
+            Furthermore BinaryGuesser falls back to UTF-8 encoding in case the encoding given via system property
+            (-Dfile.encoding) was not found.
+o RAT-202:  Report layout differs between successful RAT checks and existence of unapproved files.
+o RAT-202:  Report layout differs between successful RAT checks and existence of unapproved files.
+o RAT-203:  Using 'license' in README, source code, javadoc, comments and site instead of 'licence';
+            improve terminology to not confuse RAT consumers.
+o RAT-204:  Unify resource handling in code and tests, make sure the resources are properly closed. Apply minor refactorings.
+
+Fixed Bugs:
+o RAT-163:  Removing the Gradle Plugin from the Rat Core project, so that building
+            with Java 5 works again.
+o RAT-158:  Fix SAX-Parser warning by explicitly excluding xerces in Doxia 1.2. Thanks to Hervé Boutemy.
+o RAT-173:  Allow complete skip of RAT plugin with rat.skip property. Thanks to Chris Burroughs.
+o RAT-174:  CDDL1License still very slow, replace Pattern matching with simple String comparison. Thanks to Chris Burroughs.
+o RAT-175:  SourceCodeManagementSystems.hasIgnoreFile() should return boolean.
+o RAT-177:  Final arrays should be private.
+o RAT-188:  Fix problems with AnimalSniffer-plugin when running in GUMP with Java 8.
+            Workaround for https://jira.codehaus.org/browse/MANIMALSNIFFER-45 Thanks to Mark Thomas.
+o RAT-160:  Ignore build.log created by maven-invoker-plugin. Thanks to Christopher Tubbs.
+o RAT-179:  Maven plugin and Ant task do not support adding extra approved licenses.
+o RAT-180:  Generify and beautify texts in RAT report.
+o RAT-194:  Upgrade to Doxia 1.6 if called directly, does not affect problems reported in RAT-158. Minor improvements. Thanks to Hervé Boutemy.
+o RAT-198:  Upgrade plexus-utils to 3.0.20. Thanks to Karl Heinz Marbaise.
+o RAT-172:  Exclude technical directories of source code management systems and their ignore files from RAT scans.
+o RAT-200:  Upgrade ASF parent POM to 17.
+
+
+Historical list of changes: http://creadur.apache.org/rat/changes-report.html
+
+For complete information on Apache Creadur Rat, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Apache Creadur Rat website:
+
+http://creadur.apache.org/rat/
diff --git a/trunk/RELEASE_NOTES.txt b/trunk/RELEASE_NOTES.txt
new file mode 100644
index 0000000..422396e
--- /dev/null
+++ b/trunk/RELEASE_NOTES.txt
@@ -0,0 +1,269 @@
+Rat 0.12 (SNAPSHOT)
+===================
+
+ * We now require Maven 3.0.5+ to build Rat, but as before we only require
+   Maven 2.2.1+ if you want to use Rat in your own Maven projects.
+ * We've integrated Rat into the ASF Jenkins to ensure continuous builds with various JDK versions. 
+ * Issues resolved (see http://issues.apache.org/jira):
+   Bug
+    * [RAT-158] - Fix SAX-Parser warning by explicitly excluding xerces in Doxia 1.2.
+                  (thanks to Hervé Boutemy)
+    * [RAT-173] - Allow complete skip of RAT plugin with rat.skip property
+                  (thanks to Chris Burroughs)
+    * [RAT-174] - CDDL1License still very slow, replace Pattern matching with simple String comparison
+                  (thanks to Chris Burroughs)
+    * [RAT-175] - SourceCodeManagementSystems.hasIgnoreFile() should return boolean
+    * [RAT-177] - final arrays should be private
+    * [RAT-188] - Fix problems with AnimalSniffer-plugin when running in GUMP with Java 8.
+                  Workaround for https://jira.codehaus.org/browse/MANIMALSNIFFER-45
+                  (thanks to Mark Thomas)
+    * [RAT-160] - Ignore build.log that is created by maven-invoker-plugin runs. Temporary fix until invoker plugin improves
+                  configurability of that file. 
+                  (thanks to Christopher Tubbs)
+    * [RAT-179] - Maven plugin and Ant task do not support adding extra approved licenses.
+    * [RAT-180] - Generify and beautify texts in RAT report. 
+
+   New features
+    * [RAT-171] - Maven plugin allows scanning of source code management ignore files. Their contents is added as exclusion to be ignored during RAT runs.
+                  Supported source code management systems are: SVN, Git, Bazaar, Mercurial and CVS. 
+                  An ignore-file's contents is taken as it is without parsing or validating.
+
+   Improvement
+    * [RAT-196] - Minor refactoring in pom.xml.
+                  (thanks to Karl Heinz Marbaise) 
+    * [RAT-194] - Upgrade to Doxia 1.6 if called directly, does not affect problems reported in RAT-158. Minor improvements.
+                  (thanks to Hervé Boutemy)
+    * [RAT-61]  - List files with unapproved licenses in Maven output
+    * [RAT-170] - RAT should use itself during build and site generation
+    * [RAT-181] - BinaryGuesser should treat *.truststore as binary
+    * [RAT-184] - Add DEPENDENCIES to the list of ignored files in NoteGuesser.
+                  (thanks to Karl Heinz Marbaise)
+    * [RAT-185] - .repository folder should be ignored
+    * [RAT-186] - BinaryGuesser should recognize PSD files as images
+    * [RAT-187] - Add 'SAR', 'HAR', 'WSR' as archives which should be ignored.
+                  (thanks to Karl Heinz Marbaise)
+    * [RAT-197] - Improve exclusion defaults when working with Maven 3.3.1 (exclude .mvn).
+                  (thanks to Karl Heinz Marbaise)
+    * [RAT-198] - Upgrade to plexus-utils 3.0.20.
+                  (thanks to Karl Heinz Marbaise)
+    * [RAT-172] - Exclude technical directories of source code management systems and their ignore files from RAT scans. 
+                  Enabled for SVN,Git,Mercurial,Bazar and CVS.
+    * [RAT-200] - Update to latest ASF parent pom v17.
+    * [RAT-201] - BinaryGuesser should treat *.swf as binary. 
+                  Furthermore BinaryGuesser falls back to UTF-8 encoding in case the encoding given via system property (-Dfile.encoding) was not found.
+    * [RAT-202] - Report layout differs between successful RAT checks and existence of unapproved files.
+    * [RAT-203] - Using 'license' in README, source code, javadoc, comments and site instead of 'licence'; improve terminology to not confuse RAT consumers.
+    * [RAT-204] - Unify resource handling in code and tests, make sure the resources are properly closed. Apply minor refactorings.
+
+Rat 0.11
+========
+
+ * Rat stays at compiler level 1.5 to be more compliant with other Maven plugins,
+   fixed build/CI environment to reflect and ensure that.
+ * Fixed Javadoc warnings during build, upgraded Maven Plugin Plugin to avoid
+   warnings in generated code (https://jira.codehaus.org/browse/MPLUGIN-237)
+ * Issues resolved (see http://issues.apache.org/jira):
+   Bug
+    * [RAT-135] - addLicenseHeaders is missing a space on license header.
+    * [RAT-144] - AbstractRatMojo String constant arrays should be private
+    * [RAT-148] - LicenseAddingReport#report has useless call to metaData.getData
+                  (thanks to Chris A. Mattmann)
+    * [RAT-151] - Detect more archive file formats
+    * [RAT-152] - Recognize the format for .bsh, .fml and .jsp file types
+    * [RAT-153] - Do not add extra empty lines when appending headers for the Apache License
+    * [RAT-154] - Indentation of the license header should be decided per family
+    * [RAT-155] - Do not add empty first and last lines in the license header for certain families
+    * [RAT-156] - Add some symmetry when applying license headers to files with file type specific headers
+    * [RAT-159] - Detect OpenOffice documents as being archives
+  Improvement
+    * [RAT-129] - Add support for CDDL 1.0
+    * [RAT-162] - CDDL1License.matches slow with large inputs
+                  (thanks to Andrew Gaul)
+    * [RAT-164] - Allow skipping execution entirely
+    * [RAT-165] - Use a maven defaultGoal for RAT's base pom.xml
+
+Rat 0.10
+========
+The main change is RAT-138 - Rat 0.9 could run much slower than 0.8 on some input.
+
+ * Simpler binary archive
+ * Issues resolved (see http://issues.apache.org/jira):
+   * Bugs fixed:
+     * [RAT-137] Website shows incorrect Maven goals in some pages
+     * [RAT-128] Use the proper name for the Apache License
+     * [RAT-138] RAT runs very slowly on some input
+     * [RAT-140] OASISLicense allows invalid Copyright line
+     * [RAT-139] FullTextMatchingLicense.prune uses inefficient deleteAtChar
+     * [RAT-145] Maven plugin should not run in the "verify" phase, but in the "validate" phase
+   * Improvements:
+     * [RAT-129] Add support for CDDL 1.0 
+ * Updated dependencies and plugins
+ * Fixed up generics and annotations
+
+Rat 0.9
+=======
+ * Improved documentation
+ * Rat now requires Java5 at runtime
+ * The Antlib contains a new matcher type that allows matching on the
+   full text of the license rather than a single line.
+ * Support automatic addition of license headers to svg files.
+ * Issues Resolved (see http://issues.apache.org/jira):
+   * Bugs Fixed:
+     * [RAT-3]   - Incorrect alignment of file contents
+     * [RAT-102] - typo in pom.xml / field description
+     * [RAT-109] - Return value of mkdirs() is not checked
+                   and no error handling occurs
+     * [RAT-116] - Docs don't say what the default excludes are
+     * [RAT-120] - fix some maven warning and upgrade some
+                   dependencies.
+     * [RAT-121] - use maven java5 annotations for maven plugins
+     * [RAT-122] - Maven Plugin: field to ignore errors and continue
+                   the build
+     * [RAT-124] - Rat plugin should exclude the configuration directory
+                   used by IDEA
+     * [RAT-126] - Default excludes do not ignore .git/ repository
+   * Improvements:
+     * [RAT-13]  - [GOOGLE-14] GNU License support
+     * [RAT-49]  - Recognise MIT LIcense
+     * [RAT-104] - Using jUnit4 annotation based tests instead of
+                   junit3 - migration from junit 3.8.2 to current
+                   junit 4.10
+     * [RAT-106] - Minor Javadoc errors fixed in 3 files
+     * [RAT-108] - Add native support for thrift generated code to be
+                   ignored
+     * [RAT-111] - RAT does not ignore javah generated files
+     * [RAT-125] - Support applied AL20 license headers, including
+                   checking for required copyright header line
+   * New Features
+     * [RAT-78]  - Support doxia 1.1.2
+   * Tasks
+     * [RAT-59]  - Upgrade To Java 1.5
+     * [RAT-119] - Upgrade Maven prerequisite to 2.2.1
+
+Rat 0.8
+=======
+ * Some website fixes
+ * The Antlib and Maven plugins now provide simpler ways to detect
+   licenses not directly supported by Rat.
+ * Issues Resolved (see http://issues.apache.org/jira):
+  * Bug:
+    * RAT-86 CLI doesn't allow adding of licenses unless a custom
+      stylesheet has been specified
+    * RAT-87 Tests could leave temporary files around.
+    * RAT-92 When adding licenses Rat used \n instead of the platform
+      dependent line--end character(s)
+    * RAT-94 Streams were not always closed immediately when adding
+      licenses.
+  * Improvement:
+    * RAT-79 Support automatic addition of license headers to Velocity
+      templates
+    * RAT-83 Support automatic addition of license headers to Scala
+      source files
+    * RAT-84 Support automatic addition of license headers to Ruby
+      source files
+    * RAT-89 Support automatic addition of license headers to Perl,
+      TCL, C++, C# and PHP source files
+    * RAT-91 Support automatic addition of license headers to Groovy
+      source files
+    * RAT-85 Allow --addLicense as an alias for --addLicence for
+      people used to the US spelling.
+    * RAT-34 --addLicense will add the license to the top of Java
+      files without a package line or XML files without an XML
+      declaration now - it used to not add anything.
+    * RAT-67 The XML and standard plain text reports now contain a
+      timestamp with the time the report has been generated.
+    * RAT-95 When adding licenses Rat will now remove any BOM from the file.
+    * RAT-93 --addLicense now supports more .NET specific files like
+      MS Visual Studio project and solution files
+    * RAT-99 The command line interface has a new option that
+      specifies a file containing regular expressions for files to exclude
+
+Rat 0.7
+=======
+ * Some website fixes
+ * Issues Resolved (see http://issues.apache.org/jira):
+  * Bug:
+    * RAT-62 Some of Rat's own files missing License Headers
+    * RAT-63 ant-task-examples.xml has an wrong uri in the -typedef ant target
+    * RAT-70 Missing closing html tag in generated report by
+  * Improvement:
+    * RAT-17 Support the use of archives as input
+    * RAT-30 / RAT-76 Support automatic addition of license headers
+    * RAT-52 Merge In Rat Output Semantics
+    * RAT-56 Commons IO Wildcard Excludes
+    * RAT-65 Rat Pom cleanup
+    * RAT-68 Add support for Python, C, & script files (.bat & .sh)
+    * RAT-72 Keep version in plugins sample doc up to date
+    * RAT-73 / RAT-74 Support for XML output in Ant task and Maven Plugin
+    * RAT-74 / RAT-75 Support for custom XSLT stylesheets
+
+Rat 0.6
+===========
+ * Support for TMF header
+ * Comprehend PEM, CRL file endings
+ * Added reporting capability to recursive rat script
+ * Moved to the Incubator@Apache
+ * Issues Resolved (see http://issues.apache.org/jira):
+  * Bug:
+    * RAT-3 Incorrect alignment of file contents
+    * RAT-11 Incorrect number of unnapproved licences reported
+    * RAT-12 Incorrect SCM info in maven plugin pom
+    * RAT-29 NPE on "mvn install" in rat-anttasks
+    * RAT-33 Mailing list subscribe points to unsubscribe
+    * RAT-34 No license header added for java files that do not contain project line
+    * RAT-35 Incorrect number of unapproved licenses reported by rat:check
+    * RAT-36 Report header incorrectly refers to an "L" license marker
+  * Improvement:
+    * RAT-8 [PATCH] add JavaCC to GeneratedLicenseNotRequired
+    * RAT-9 A more informative website
+    * RAT-10 A few Javadoc comments
+    * RAT-23  More details in text summary
+    * RAT-24 Include checksums on web page
+    * RAT-26 Improve web summary
+    * RAT-27 Index page
+    * RAT-37 List all resources with unapproved licenses at the beginning of the report
+  * New Feature
+    * RAT-6 RAT Source Import
+  * Task
+    * RAT-28 Repackage maven plugin
+  * Wish
+    * RAT-1 maven-rat-plugin and ant-rat tasks
+
+Rat 0.5.1
+=========
+ * Fixed file closing bug
+ * Fixed XML bad character bug
+
+Rat 0.5
+=======
+ * Added header matcher for DoJo.
+ * Refactoring existing codebase to separate concerns and use
+   resource pipeline.
+ * New header matching library.
+
+Rat 0.4.1
+=========
+Rat 0.4.1 is the first release with distributions. The release was cut
+for this purpose.
+
+Rat 0.4.1 Notes
+===============
+ * Created POM for use with Rat library.
+ * Ant task switched to use Xml based report.
+
+Rat 0.4 Notes
+=============
+ * Ant tasks added. These allow Rat reports to be run against a wide variety
+   of resources from within Ant.
+ * Legacy report is now deprecated. It will be removed before the next release.
+ * Created stylesheet for xml reports which produce output similar to the legacy
+   plain text report. Application now uses the xml report with that stylesheet.
+ * Revised xml output format
+ * Improve support for binary recognition by adding code that tastes files
+
+Rat 0.3 Notes
+=============
+ * This is the last release with the original hacked together plain test report.
+   The new XML reporting code is present but is not yet the default.
+ * Rat 0.3 is the first release with release notes. All previous releases are
+   now consigned to Ancient History. No record of them will be found here.
diff --git a/trunk/ant-task-examples.xml b/trunk/ant-task-examples.xml
new file mode 100644
index 0000000..ea365e9
--- /dev/null
+++ b/trunk/ant-task-examples.xml
@@ -0,0 +1,128 @@
+<?xml version='1.0'?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+<project default="javasources" name="Ant task examples">
+  <description>
+    A few examples of using the Ant task, for more examples see the
+    AntUnit tests
+  </description>
+
+  <property name="src-dir" location="apache-rat-core/src/main/java"/>
+  <property name="version" value="0.11"/>
+  <property name="src-jar"
+            location="apache-rat-core/target/apache-rat-core-${version}-sources.jar"/>
+
+  <target name="javasources" depends="-taskdef"
+    description="runs the tasks over Rat's source tree excluding the license directory">
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
+      <fileset dir="${src-dir}">
+        <exclude name="rat/license/"/>
+      </fileset>
+    </rat:report>
+  </target>
+
+  <target name="jar" depends="-taskdef"
+    description="runs the task over Rat's source tree">
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
+      <zipfileset src="${src-jar}"/>
+    </rat:report>
+  </target>
+
+  <target name="tarball" depends="-taskdef"
+    description="creates a tarball of Rat's source tree and runs the task over the tarball">
+    <tar destfile="ratsrc.tar.gz" compression="gzip">
+      <fileset dir="${src-dir}"/>
+    </tar>
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
+      <tarfileset>
+        <gzipresource>
+          <file file="ratsrc.tar.gz"/>
+        </gzipresource>
+      </tarfileset>
+    </rat:report>
+    <delete file="ratsrc.tar.gz"/>
+  </target>
+
+  <target name="javasources-w3c" depends="-taskdef"
+    description="runs the tasks over Rat's source tree accepting only the W3C license">
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
+      addDefaultLicenseMatchers="false">
+      <fileset dir="${src-dir}"/>
+
+      <rat:w3c/>
+
+    </rat:report>
+  </target>
+
+  <target name="url" depends="-taskdef"
+    description="runs the task on the ASF's homepage">
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
+      <url url="http://www.apache.org/"/>
+    </rat:report>
+  </target>
+
+  <target name="run-on-rat" depends="-taskdef">
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
+      <fileset dir="."/>
+    </rat:report>
+  </target>
+
+  <target name="run-on-rat-output-xml" depends="-taskdef"
+          description="Runs Rat on its own source tree and creates an XML report">
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
+                format="xml" reportFile="rat-report.xml">
+      <fileset dir="."/>
+    </rat:report>
+  </target>
+
+  <target name="run-on-rat-output-styled" depends="-taskdef"
+          description="Runs Rat on its own source tree and creates a report using XSLT">
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
+                format="styled" reportFile="rat-report.txt">
+      <stylesheet>
+        <file file="apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl"/>
+      </stylesheet>
+      <fileset dir="."/>
+    </rat:report>
+  </target>
+
+  <target name="restrict" depends="-taskdef"
+          description="Run Rat on all files in this source tree that have been modified today">
+    <tstamp/>
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
+      <restrict>
+        <fileset dir="."/>
+        <date when="after" datetime="${DSTAMP}" pattern="yyyyMMdd"/>
+      </restrict>
+    </rat:report>
+  </target>
+
+  <target name="-taskdef">
+    <typedef resource="org/apache/rat/anttasks/antlib.xml"
+             uri="antlib:org.apache.rat.anttasks">
+      <classpath>
+        <fileset dir=".">
+           <include name="**/apache-rat*.jar"/>
+           <include name="**/commons-*.jar"/>
+        </fileset>
+      </classpath>
+    </typedef>
+  </target>
+</project>
diff --git a/trunk/apache-rat-api/.gitignore b/trunk/apache-rat-api/.gitignore
new file mode 100644
index 0000000..22e1131
--- /dev/null
+++ b/trunk/apache-rat-api/.gitignore
@@ -0,0 +1,19 @@
+*.ipr
+*.iws
+/target/*
+**/target/*
+.svn
+**/.svn
+.project
+*/.project
+.classpath
+*/.classpath
+.settings
+*/.settings
+*.iml
+*/*.iml
+*/*.ipr
+*/*.iws
+.idea/*
+*/.idea
+/target/
diff --git a/trunk/apache-rat-api/pom.xml b/trunk/apache-rat-api/pom.xml
new file mode 100644
index 0000000..7ecfc3c
--- /dev/null
+++ b/trunk/apache-rat-api/pom.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.rat</groupId>
+    <artifactId>apache-rat-project</artifactId>
+    <version>0.12-SNAPSHOT</version>
+  </parent>
+  <packaging>jar</packaging>
+
+  <artifactId>apache-rat-api</artifactId>
+
+  <name>Apache Creadur Rat::API</name>
+  <description>Shared beans and services.</description>
+
+  <dependencies>
+    <!-- Test Dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-library</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/trunk/apache-rat-api/src/main/java/org/apache/rat/api/domain/LicenseFamily.java b/trunk/apache-rat-api/src/main/java/org/apache/rat/api/domain/LicenseFamily.java
new file mode 100644
index 0000000..94592bc
--- /dev/null
+++ b/trunk/apache-rat-api/src/main/java/org/apache/rat/api/domain/LicenseFamily.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rat.api.domain;
+
+/**
+ * Licenses are grouped into families. Each family has similar legal semantics,
+ * though some small details may differ.
+ * <p>
+ * For example, the <a href='http://opensource.org/licenses/BSD-3-Clause'>3
+ * clause BSD license</a> is in a family where members differ by &lt;OWNER&gt;,
+ * &lt;ORGANIZATION&gt; and &lt;YEAR&gt; parameters.
+ * 
+ */
+public final class LicenseFamily {
+
+    /**
+     * Further information associated with the license family. Human readable.
+     * Possibly null.
+     */
+    private final String notes;
+    /**
+     * Names of the category containing this license family. Choosing a suitable
+     * URI is recommended. Possibly null;
+     */
+    private final String category;
+    /**
+     * Uniquely identifies this family. Choosing a suitable URI is recommended.
+     * Not null.
+     */
+    private final String name;
+
+    /**
+     * Constructs an immutable license family.
+     * 
+     * @param name
+     *            the name uniquely identifying this family. Recommended that
+     *            this be an URI. Not null.
+     * @param category
+     *            the name of the category containing this license family.
+     *            Recommended that this be an URI. Possibly null.
+     * @param notes
+     *            further information associated with the license family. Human
+     *            readable. Possibly null.
+     */
+    public LicenseFamily(final String name, final String category,
+            final String notes) {
+        super();
+        this.notes = notes;
+        this.category = category;
+        this.name = name;
+    }
+
+    /**
+     * Gets further information associated with the license family. Human
+     * readable.
+     * 
+     * @return possibly null
+     */
+    public String getNotes() {
+        return this.notes;
+    }
+
+    /**
+     * Gets the name of the category containing this license family. Recommended
+     * that this be an URI.
+     * 
+     * @return possibly null
+     */
+    public String getCategory() {
+        return this.category;
+    }
+
+    /**
+     * Gets the name uniquely identifying this family. Recommended that this be
+     * an URI.
+     * 
+     * @return not null
+     */
+    public String getName() {
+        return this.name;
+    }
+
+}
diff --git a/trunk/apache-rat-api/src/main/java/org/apache/rat/api/domain/LicenseFamilyBuilder.java b/trunk/apache-rat-api/src/main/java/org/apache/rat/api/domain/LicenseFamilyBuilder.java
new file mode 100644
index 0000000..9d58a96
--- /dev/null
+++ b/trunk/apache-rat-api/src/main/java/org/apache/rat/api/domain/LicenseFamilyBuilder.java
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rat.api.domain;
+
+/**
+ * Builds {@link LicenseFamily} instances.
+ */
+public final class LicenseFamilyBuilder {
+
+    /**
+     * Begins to build a license family.
+     * 
+     * @return a builder for a license family, not null
+     */
+    public static LicenseFamilyBuilder aLicenseFamily() {
+        return new LicenseFamilyBuilder();
+    }
+
+    /** Further information associated with the license family. Human readable. */
+    private String notes;
+    /**
+     * Names of the category containing this license family. Recommended that
+     * this be an URI.
+     */
+    private String category;
+    /** Uniquely identifies this family. Choosing a suitable URI is recommended */
+    private String name;
+
+    /** Use {@link #aLicenseFamily()  */
+    private LicenseFamilyBuilder() {
+    }
+
+    /**
+     * Builds a family.
+     * 
+     * @return not null
+     */
+    public LicenseFamily build() {
+        return new LicenseFamily(this.name, this.category, this.notes);
+    }
+
+    /**
+     * Builds family with further information associated with the license
+     * family. Human readable.
+     * 
+     * @param notes
+     *            possibly null
+     * @return this instance, not null
+     */
+    public LicenseFamilyBuilder withNotes(final String notes) {
+        this.notes = notes;
+        return this;
+    }
+
+    /**
+     * Builds family with category containing this license family. Choosing a
+     * suitable URI is recommended
+     * 
+     * @param category
+     *            possible null
+     * @return this instance, not null
+     */
+    public LicenseFamilyBuilder withCategory(final String category) {
+        this.category = category;
+        return this;
+    }
+
+    /**
+     * 
+     * Uniquely identifies this family. Choosing a suitable URI is recommended.
+     * 
+     * @param name
+     *            not null
+     * @return this instance, not null
+     */
+    public LicenseFamilyBuilder withName(final String name) {
+        this.name = name;
+        return this;
+    }
+}
diff --git a/trunk/apache-rat-api/src/main/java/org/apache/rat/api/domain/RatLicenseFamily.java b/trunk/apache-rat-api/src/main/java/org/apache/rat/api/domain/RatLicenseFamily.java
new file mode 100644
index 0000000..1a186bc
--- /dev/null
+++ b/trunk/apache-rat-api/src/main/java/org/apache/rat/api/domain/RatLicenseFamily.java
@@ -0,0 +1,137 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rat.api.domain;
+
+import static org.apache.rat.api.domain.LicenseFamilyBuilder.aLicenseFamily;
+
+/**
+ * Enumerates standard license families known to Rat.
+ */
+public enum RatLicenseFamily {
+
+	APACHE(
+			"Apache License Version 2.0",
+			"AL   ",
+			"Note that APACHE requires a NOTICE. All modifications require notes. See http://www.apache.org/licenses/LICENSE-2.0."),
+	GPL1(
+			"GNU General Public License, version 1",
+			"GPL1 ",
+			"Note that GPL1 requires a NOTICE. All modifications require notes. See http://www.gnu.org/licenses/gpl-1.0.html."),
+	GPL2(
+			"GNU General Public License, version 2",
+			"GPL2 ",
+			"Note that GPL2 requires a NOTICE. All modifications require notes. See http://www.gnu.org/licenses/gpl-2.0.html."),
+	GPL3(
+			"GNU General Public License, version 3",
+			"GPL3 ",
+			"Note that GPL3 requires a NOTICE. All modifications require notes. See http://www.gnu.org/licenses/gpl-3.0.html."),
+	MIT(
+			"The MIT License",
+			"MIT  ",
+			"Note that MIT requires a NOTICE. All modifications require notes. See http://opensource.org/licenses/MIT."),
+	CDDL1(
+			"COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0",
+			"CDDL1",
+			"Note that CDDL1 requires a NOTICE. All modifications require notes. See https://oss.oracle.com/licenses/CDDL."),
+	OASIS(
+			"OASIS Open License",
+			"OASIS",
+			"Note that OASIS requires a NOTICE. All modifications require notes. See https://www.oasis-open.org/policies-guidelines/ipr."),
+	TMF854(
+			"Modified BSD License",
+			"TMF  ",
+			"Note that TMF854 requires a NOTICE. All modifications require notes. See http://opensource.org/licenses/BSD-3-Clause."),
+	 DOJO(
+			"Modified BSD License",
+			"DOJO ",
+			"Note that DOJO requires a NOTICE. All modifications require notes. See http://dojotoolkit.org/community/licensing.shtml."),
+    W3C(
+            "W3C Software Copyright",
+            "W3C  ",
+            "Note that W3C requires a NOTICE. All modifications require notes. See http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231."),
+
+    W3C_DOCUMENTATION(
+            "W3C Document Copyright",
+            "W3CD ",
+            "Note that W3CD does not allow modifications. See http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231.");
+
+    /** @see LicenseFamily#getName() */
+    private final String name;
+    /** @see LicenseFamily#getCategory() */
+    private final String category;
+    /** @see LicenseFamily#getNotes() */
+    private final String notes;
+    /** Constructed from other data */
+    private final LicenseFamily licenseFamily;
+
+    /**
+     * Constructs an instance.
+     * 
+     * @param name
+     *            not null
+     * @param category
+     *            not null
+     * @param notes
+     *            not null
+     */
+    private RatLicenseFamily(final String name, final String category,
+            final String notes) {
+        this.name = name;
+        this.category = category;
+        this.notes = notes;
+        this.licenseFamily = aLicenseFamily().withCategory(getCategory())
+                .withName(getName()).withNotes(getNotes()).build();
+    }
+
+    /**
+     * @see LicenseFamily#getName()
+     * 
+     * @return not null
+     */
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * @see LicenseFamily#getCategory()
+     * 
+     * @return possibly null
+     */
+    public String getCategory() {
+        return this.category;
+    }
+
+    /**
+     * @see LicenseFamily#getNotes()
+     * 
+     * @return possibly null
+     */
+    public String getNotes() {
+        return this.notes;
+    }
+
+    /**
+     * Gets a {@link LicenseFamily} representing this data.
+     * 
+     * @return not null
+     */
+    public LicenseFamily licenseFamily() {
+        return this.licenseFamily;
+    }
+}
diff --git a/trunk/apache-rat-api/src/test/java/org/apache/rat/api/domain/LicenseFamilyBuilderTest.java b/trunk/apache-rat-api/src/test/java/org/apache/rat/api/domain/LicenseFamilyBuilderTest.java
new file mode 100644
index 0000000..739806c
--- /dev/null
+++ b/trunk/apache-rat-api/src/test/java/org/apache/rat/api/domain/LicenseFamilyBuilderTest.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rat.api.domain;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+
+import org.junit.Test;
+
+public class LicenseFamilyBuilderTest {
+
+    @Test
+    public void testBuilderBuilds() {
+        final LicenseFamily family =
+                LicenseFamilyBuilder.aLicenseFamily().build();
+        assertNotNull("Builder should build", family);
+    }
+
+    @Test
+    public void testWithNotes() {
+        final String someNotes = "Some notes";
+        final LicenseFamily family =
+                LicenseFamilyBuilder.aLicenseFamily().withNotes(someNotes)
+                        .build();
+        assertThat(family.getNotes(), is(someNotes));
+    }
+
+    @Test
+    public void testWithCategory() {
+        final String someCategory = "Some license category";
+        final LicenseFamily family =
+                LicenseFamilyBuilder.aLicenseFamily()
+                        .withCategory(someCategory).build();
+        assertThat(family.getCategory(), is(someCategory));
+    }
+
+    @Test
+    public void testWithName() {
+        final String someName = "A name for a license";
+        final LicenseFamily family =
+                LicenseFamilyBuilder.aLicenseFamily().withName(someName)
+                        .build();
+        assertThat(family.getName(), is(someName));
+
+    }
+}
diff --git a/trunk/apache-rat-api/src/test/java/org/apache/rat/api/domain/RatLicenseFamilyTest.java b/trunk/apache-rat-api/src/test/java/org/apache/rat/api/domain/RatLicenseFamilyTest.java
new file mode 100644
index 0000000..bf7c7bd
--- /dev/null
+++ b/trunk/apache-rat-api/src/test/java/org/apache/rat/api/domain/RatLicenseFamilyTest.java
@@ -0,0 +1,226 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rat.api.domain;
+
+import static org.apache.rat.api.domain.RatLicenseFamily.APACHE;
+import static org.apache.rat.api.domain.RatLicenseFamily.CDDL1;
+import static org.apache.rat.api.domain.RatLicenseFamily.DOJO;
+import static org.apache.rat.api.domain.RatLicenseFamily.GPL1;
+import static org.apache.rat.api.domain.RatLicenseFamily.GPL2;
+import static org.apache.rat.api.domain.RatLicenseFamily.GPL3;
+import static org.apache.rat.api.domain.RatLicenseFamily.MIT;
+import static org.apache.rat.api.domain.RatLicenseFamily.OASIS;
+import static org.apache.rat.api.domain.RatLicenseFamily.TMF854;
+import static org.apache.rat.api.domain.RatLicenseFamily.W3C;
+import static org.apache.rat.api.domain.RatLicenseFamily.W3C_DOCUMENTATION;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import org.junit.Test;
+
+public class RatLicenseFamilyTest {
+
+    @Test
+    public void testW3CLicenseFamilyCategory() {
+        assertThat(W3C.getCategory(), is("W3C  "));
+    }
+
+    @Test
+    public void testW3CLicenseFamilyName() {
+        assertThat(W3C.getName(), is("W3C Software Copyright"));
+    }
+
+    @Test
+    public void testW3CLicenseFamilyNotes() {
+        assertThat(
+                W3C.getNotes(),
+                is("Note that W3C requires a NOTICE. All modifications require notes. See http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231."));
+    }
+
+    @Test
+    public void testW3CDocLicenseFamilyCategory() {
+        assertThat(W3C_DOCUMENTATION.getCategory(), is("W3CD "));
+    }
+
+    @Test
+    public void testW3CDocLicenseFamilyName() {
+        assertThat(W3C_DOCUMENTATION.getName(), is("W3C Document Copyright"));
+    }
+
+    @Test
+    public void testW3CDocLicenseFamilyNotes() {
+        assertThat(
+                W3C_DOCUMENTATION.getNotes(),
+                is("Note that W3CD does not allow modifications. See http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231."));
+    }
+
+	@Test
+	public void testAPACHELicenseFamilyCategory() {
+		assertThat(APACHE.getCategory(), is("AL   "));
+	}
+
+	@Test
+	public void testAPACHELicenseFamilyName() {
+		assertThat(APACHE.getName(), is("Apache License Version 2.0"));
+	}
+
+	@Test
+	public void testAPACHELicenseFamilyNotes() {
+		assertThat(
+				APACHE.getNotes(),
+				is("Note that APACHE requires a NOTICE. All modifications require notes. See http://www.apache.org/licenses/LICENSE-2.0."));
+	}
+
+	@Test
+	public void testGPL1LicenseFamilyCategory() {
+		assertThat(GPL1.getCategory(), is("GPL1 "));
+	}
+
+	@Test
+	public void testGPL1LicenseFamilyName() {
+		assertThat(GPL1.getName(), is("GNU General Public License, version 1"));
+	}
+
+	@Test
+	public void testGPL1LicenseFamilyNotes() {
+		assertThat(
+				GPL1.getNotes(),
+				is("Note that GPL1 requires a NOTICE. All modifications require notes. See http://www.gnu.org/licenses/gpl-1.0.html."));
+	}
+
+	@Test
+	public void testGPL2LicenseFamilyCategory() {
+		assertThat(GPL2.getCategory(), is("GPL2 "));
+	}
+
+	@Test
+	public void testGPL2LicenseFamilyName() {
+		assertThat(GPL2.getName(), is("GNU General Public License, version 2"));
+	}
+
+	@Test
+	public void testGPL2LicenseFamilyNotes() {
+		assertThat(
+				GPL2.getNotes(),
+				is("Note that GPL2 requires a NOTICE. All modifications require notes. See http://www.gnu.org/licenses/gpl-2.0.html."));
+	}
+
+	@Test
+	public void testGPL3LicenseFamilyCategory() {
+		assertThat(GPL3.getCategory(), is("GPL3 "));
+	}
+
+	@Test
+	public void testGPL3LicenseFamilyName() {
+		assertThat(GPL3.getName(), is("GNU General Public License, version 3"));
+	}
+
+	@Test
+	public void testGPL3LicenseFamilyNotes() {
+		assertThat(
+				GPL3.getNotes(),
+				is("Note that GPL3 requires a NOTICE. All modifications require notes. See http://www.gnu.org/licenses/gpl-3.0.html."));
+	}
+
+	@Test
+	public void testMITLicenseFamilyCategory() {
+		assertThat(MIT.getCategory(), is("MIT  "));
+	}
+
+	@Test
+	public void testMITLicenseFamilyName() {
+		assertThat(MIT.getName(), is("The MIT License"));
+	}
+
+	@Test
+	public void testMITLicenseFamilyNotes() {
+		assertThat(
+				MIT.getNotes(),
+				is("Note that MIT requires a NOTICE. All modifications require notes. See http://opensource.org/licenses/MIT."));
+	}
+
+	@Test
+	public void testCDDL1LicenseFamilyCategory() {
+		assertThat(CDDL1.getCategory(), is("CDDL1"));
+	}
+
+	@Test
+	public void testCDDL1LicenseFamilyName() {
+		assertThat(CDDL1.getName(),
+				is("COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0"));
+	}
+
+	@Test
+	public void testCDDL1LicenseFamilyNotes() {
+		assertThat(
+				CDDL1.getNotes(),
+				is("Note that CDDL1 requires a NOTICE. All modifications require notes. See https://oss.oracle.com/licenses/CDDL."));
+	}
+
+	@Test
+	public void testOASISLicenseFamilyCategory() {
+		assertThat(OASIS.getCategory(), is("OASIS"));
+	}
+
+	@Test
+	public void testOASISLicenseFamilyName() {
+		assertThat(OASIS.getName(), is("OASIS Open License"));
+	}
+
+	@Test
+	public void testOASISLicenseFamilyNotes() {
+		assertThat(
+				OASIS.getNotes(),
+				is("Note that OASIS requires a NOTICE. All modifications require notes. See https://www.oasis-open.org/policies-guidelines/ipr."));
+	}
+	
+	@Test
+	public void testTMF854LicenseFamilyCategory() {
+		assertThat(TMF854.getCategory(), is("TMF  "));
+	}
+
+	@Test
+	public void testTMF854LicenseFamilyName() {
+		assertThat(TMF854.getName(), is("Modified BSD License"));
+	}
+
+	@Test
+	public void testTMF854LicenseFamilyNotes() {
+		assertThat(
+				TMF854.getNotes(),
+				is("Note that TMF854 requires a NOTICE. All modifications require notes. See http://opensource.org/licenses/BSD-3-Clause."));
+	}
+	
+	@Test
+	public void testDOJOLicenseFamilyCategory() {
+		assertThat(DOJO.getCategory(), is("DOJO "));
+	}
+
+	@Test
+	public void testDOJOLicenseFamilyName() {
+		assertThat(DOJO.getName(), is("Modified BSD License"));
+	}
+
+	@Test
+	public void testDOJOLicenseFamilyNotes() {
+		assertThat(
+				DOJO.getNotes(),
+				is("Note that DOJO requires a NOTICE. All modifications require notes. See http://dojotoolkit.org/community/licensing.shtml."));
+	}
+}
diff --git a/trunk/apache-rat-core/pom.xml b/trunk/apache-rat-core/pom.xml
new file mode 100644
index 0000000..b7eb2ac
--- /dev/null
+++ b/trunk/apache-rat-core/pom.xml
@@ -0,0 +1,115 @@
+<?xml version='1.0'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.rat</groupId>
+    <artifactId>apache-rat-project</artifactId>
+    <version>0.12-SNAPSHOT</version>
+  </parent>
+  <artifactId>apache-rat-core</artifactId>
+  <packaging>jar</packaging>
+  <name>Apache Creadur Rat::Core</name>
+  <description>The core functionality, shared by the Ant tasks
+    and the Maven plugin.</description>
+
+  <build>
+    <resources>
+      <resource>
+        <filtering>false</filtering>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <filtering>true</filtering>
+        <directory>src/main/filtered-resources</directory>
+      </resource>
+      <resource>
+        <directory>..</directory>
+        <targetPath>META-INF</targetPath>
+        <includes>
+          <include>RELEASE_NOTES.txt</include>
+        </includes>
+      </resource>
+    </resources>
+
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <configuration>
+            <excludes>
+              <!-- These files have bad license headers because they are used to test bad license headers -->
+              <exclude>src/test/resources/appliedAL20/bad/*.*</exclude>
+              <exclude>src/test/resources/oasis/bad/*.*</exclude>
+              <!-- These files does not have license headers because they are used to test license headers -->
+              <exclude>src/test/resources/elements/Source.java</exclude>
+              <exclude>src/test/resources/elements/ILoggerFactory.java</exclude>
+              <exclude>src/test/resources/elements/sub/Empty.txt</exclude>
+              <exclude>src/test/resources/violations/bad.txt</exclude>
+              <exclude>src/test/resources/violations/FilterTest.cs</exclude>
+              <!-- used to test for binary files; does not work on UTF-8 (e.g. MacOSX) -->
+              <exclude>src/test/resources/binaries/Image-png.not</exclude>
+            </excludes>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.rat</groupId>
+      <artifactId>apache-rat-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-collections</groupId>
+      <artifactId>commons-collections</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-compress</artifactId>
+      <exclusions>
+        <!-- Not actually used (yet) so no point including it -->
+        <exclusion>
+          <groupId>org.tukaani</groupId>
+          <artifactId>xz</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-cli</groupId>
+      <artifactId>commons-cli</artifactId>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/Defaults.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/Defaults.java
new file mode 100644
index 0000000..68fb5ec
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/Defaults.java
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.generation.GeneratedLicenseNotRequired;
+import org.apache.rat.analysis.generation.JavaDocLicenseNotRequired;
+import org.apache.rat.analysis.license.ApacheSoftwareLicense20;
+import org.apache.rat.analysis.license.CDDL1License;
+import org.apache.rat.analysis.license.DojoLicenseHeader;
+import org.apache.rat.analysis.license.GPL1License;
+import org.apache.rat.analysis.license.GPL2License;
+import org.apache.rat.analysis.license.GPL3License;
+import org.apache.rat.analysis.license.MITLicense;
+import org.apache.rat.analysis.license.OASISLicense;
+import org.apache.rat.analysis.license.TMF854LicenseHeader;
+import org.apache.rat.analysis.license.W3CDocLicense;
+import org.apache.rat.analysis.license.W3CLicense;
+import org.apache.rat.analysis.util.HeaderMatcherMultiplexer;
+import org.apache.rat.api.MetaData;
+
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+
+/**
+ * Utility class that holds constants shared by the CLI tool and the Ant tasks.
+ */
+public class Defaults {
+    /**
+     * no instances
+     */
+    private Defaults() {
+    }
+
+    /**
+     * The standard list of licenses to include in the reports.
+     * Needs to match configuration in {@link org.apache.rat.policy.DefaultPolicy}.
+     */
+    public static final List<IHeaderMatcher> DEFAULT_MATCHERS = Collections.unmodifiableList(
+            Arrays.asList(new ApacheSoftwareLicense20(),
+                    new GPL1License(),
+                    new GPL2License(),
+                    new GPL3License(),
+                    new MITLicense(),
+                    new W3CLicense(),
+                    new W3CDocLicense(),
+                    new OASISLicense(),
+                    new JavaDocLicenseNotRequired(), // does not have a MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_... entry
+                    new GeneratedLicenseNotRequired(), // does not have a MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_... entry
+                    new DojoLicenseHeader(),
+                    new TMF854LicenseHeader(),
+                    new CDDL1License()));
+
+    // all classes in license package implementing ILicenseFamily
+    public static final List<String> DEFAULT_LICENSE_FAMILIES = Collections.unmodifiableList(
+            Arrays.asList(
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_ACADEMIC_FREE_LICENSE_VERSION_2_1, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_APACHE_LICENSE_VERSION_2_0, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_CDDL1, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_1, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_2, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_3, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_MIT, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_MODIFIED_BSD_LICENSE, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_OASIS_OPEN_LICENSE, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_W3C_DOCUMENT_COPYRIGHT, //
+                    MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_W3C_SOFTWARE_COPYRIGHT
+                    //
+            ));
+
+    public static final String PLAIN_STYLESHEET = "org/apache/rat/plain-rat.xsl";
+    public static final String UNAPPROVED_LICENSES_STYLESHEET = "org/apache/rat/unapproved-licenses.xsl";
+
+    public static InputStream getPlainStyleSheet() {
+        return Defaults.class.getClassLoader().getResourceAsStream(Defaults.PLAIN_STYLESHEET);
+    }
+
+    public static InputStream getUnapprovedLicensesStyleSheet() {
+        return Defaults.class.getClassLoader().getResourceAsStream(Defaults.UNAPPROVED_LICENSES_STYLESHEET);
+    }
+
+    public static InputStream getDefaultStyleSheet() {
+        return getPlainStyleSheet();
+    }
+
+    public static IHeaderMatcher createDefaultMatcher() {
+        return new HeaderMatcherMultiplexer(Defaults.DEFAULT_MATCHERS);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/Report.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/Report.java
new file mode 100644
index 0000000..0cc09f1
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/Report.java
@@ -0,0 +1,428 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.OptionBuilder;
+import org.apache.commons.cli.OptionGroup;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+import org.apache.commons.cli.PosixParser;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.filefilter.NotFileFilter;
+import org.apache.commons.io.filefilter.OrFileFilter;
+import org.apache.commons.io.filefilter.RegexFileFilter;
+import org.apache.commons.io.filefilter.WildcardFileFilter;
+import org.apache.rat.api.RatException;
+import org.apache.rat.report.IReportable;
+import org.apache.rat.report.RatReport;
+import org.apache.rat.report.claim.ClaimStatistic;
+import org.apache.rat.report.xml.XmlReportFactory;
+import org.apache.rat.report.xml.writer.IXmlWriter;
+import org.apache.rat.report.xml.writer.impl.base.XmlWriter;
+import org.apache.rat.walker.ArchiveWalker;
+import org.apache.rat.walker.DirectoryWalker;
+
+import javax.xml.transform.TransformerConfigurationException;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStreamWriter;
+import java.io.PipedReader;
+import java.io.PipedWriter;
+import java.io.PrintStream;
+import java.io.Writer;
+import java.util.List;
+
+
+public class Report {
+    private static final char EXCLUDE_CLI = 'e';
+    private static final char EXCLUDE_FILE_CLI = 'E';
+    private static final char STYLESHEET_CLI = 's';
+
+    //@SuppressWarnings("unchecked")
+    public static final void main(String args[]) throws Exception {
+        final ReportConfiguration configuration = new ReportConfiguration();
+        configuration.setHeaderMatcher(Defaults.createDefaultMatcher());
+        configuration.setApproveDefaultLicenses(true);
+        Options opts = buildOptions();
+
+        PosixParser parser = new PosixParser();
+        CommandLine cl = null;
+        try {
+            cl = parser.parse(opts, args);
+        } catch (ParseException e) {
+            System.err.println("Please use the \"--help\" option to see a list of valid commands and options");
+            System.exit(1);
+            return; // dummy return (won't be reached) to avoid Eclipse complaint about possible NPE for "cl"
+        }
+
+        if (cl.hasOption('h')) {
+            printUsage(opts);
+        }
+
+        args = cl.getArgs();
+        if (args == null || args.length != 1) {
+            printUsage(opts);
+        } else {
+            Report report = new Report(args[0]);
+
+            if (cl.hasOption('a') || cl.hasOption('A')) {
+                configuration.setAddingLicenses(true);
+                configuration.setAddingLicensesForced(cl.hasOption('f'));
+                configuration.setCopyrightMessage(cl.getOptionValue("c"));
+            }
+
+            if (cl.hasOption(EXCLUDE_CLI)) {
+                String[] excludes = cl.getOptionValues(EXCLUDE_CLI);
+                if (excludes != null) {
+                    final FilenameFilter filter = new NotFileFilter(new WildcardFileFilter(excludes));
+                    report.setInputFileFilter(filter);
+                }
+            } else if (cl.hasOption(EXCLUDE_FILE_CLI)) {
+                String excludeFileName = cl.getOptionValue(EXCLUDE_FILE_CLI);
+                if (excludeFileName != null) {
+                    List<String> excludes = FileUtils.readLines(new File(excludeFileName));
+                    final OrFileFilter orFilter = new OrFileFilter();
+                    for (String exclude : excludes) {
+                        orFilter.addFileFilter(new RegexFileFilter(exclude));
+                    }
+                    final FilenameFilter filter = new NotFileFilter(orFilter);
+                    report.setInputFileFilter(filter);
+                }
+            }
+            if (cl.hasOption('x')) {
+                report.report(System.out, configuration);
+            } else {
+                if (!cl.hasOption(STYLESHEET_CLI)) {
+                    report.styleReport(System.out, configuration);
+                } else {
+                    String[] style = cl.getOptionValues(STYLESHEET_CLI);
+                    if (style.length != 1) {
+                        System.err.println("please specify a single stylesheet");
+                        System.exit(1);
+                    }
+                    try {
+                        report(System.out,
+                                report.getDirectory(System.out),
+                                new FileInputStream(style[0]),
+                                configuration);
+                    } catch (FileNotFoundException fnfe) {
+                        System.err.println("stylesheet " + style[0]
+                                + " doesn't exist");
+                        System.exit(1);
+                    }
+                }
+            }
+        }
+    }
+
+    private static Options buildOptions() {
+        Options opts = new Options();
+
+        Option help = new Option("h", "help", false,
+                "Print help for the Rat command line interface and exit");
+        opts.addOption(help);
+
+        OptionGroup addLicenseGroup = new OptionGroup();
+        String addLicenseDesc = "Add the default license header to any file with an unknown license that is not in the exclusion list. " +
+                "By default new files will be created with the license header, " +
+                "to force the modification of existing files use the --force option.";
+
+        // RAT-85/RAT-203: Deprecated! added only for convenience and for backwards compatibility
+        Option addLicence = new Option(
+                "a",
+                "addLicence",
+                false,
+                addLicenseDesc);
+        addLicenseGroup.addOption(addLicence);
+        Option addLicense = new Option(
+                "A",
+                "addLicense",
+                false,
+                addLicenseDesc);
+        addLicenseGroup.addOption(addLicense);
+        opts.addOptionGroup(addLicenseGroup);
+
+        Option write = new Option(
+                "f",
+                "force",
+                false,
+                "Forces any changes in files to be written directly to the source files (i.e. new files are not created)");
+        opts.addOption(write);
+
+        Option copyright = new Option(
+                "c",
+                "copyright",
+                true,
+                "The copyright message to use in the license headers, usually in the form of \"Copyright 2008 Foo\"");
+        opts.addOption(copyright);
+
+        @SuppressWarnings("static-access") // ignore OptionBuilder design fault
+        final Option exclude = OptionBuilder
+                .withArgName("expression")
+                .withLongOpt("exclude")
+                .hasArgs()
+                .withDescription("Excludes files matching wildcard <expression>. " +
+                        "Note that --dir is required when using this parameter. " +
+                        "Allows multiple arguments.")
+                .create(EXCLUDE_CLI);
+        opts.addOption(exclude);
+
+        @SuppressWarnings("static-access") // ignore OptionBuilder design fault
+        final Option excludeFile = OptionBuilder
+                .withArgName("fileName")
+                .withLongOpt("exclude-file")
+                .hasArgs()
+                .withDescription("Excludes files matching regular expression in <file> " +
+                        "Note that --dir is required when using this parameter. ")
+                .create(EXCLUDE_FILE_CLI);
+        opts.addOption(excludeFile);
+
+        Option dir = new Option(
+                "d",
+                "dir",
+                false,
+                "Used to indicate source when using --exclude");
+        opts.addOption(dir);
+
+        OptionGroup outputType = new OptionGroup();
+
+        Option xml = new Option(
+                "x",
+                "xml",
+                false,
+                "Output the report in raw XML format.  Not compatible with -s");
+        outputType.addOption(xml);
+
+        Option xslt = new Option(String.valueOf(STYLESHEET_CLI),
+                "stylesheet",
+                true,
+                "XSLT stylesheet to use when creating the"
+                        + " report.  Not compatible with -x");
+        outputType.addOption(xslt);
+        opts.addOptionGroup(outputType);
+
+        return opts;
+    }
+
+    private static final void printUsage(Options opts) {
+        HelpFormatter f = new HelpFormatter();
+        String header = "Options";
+
+        StringBuilder footer = new StringBuilder("\nNOTE:\n");
+        footer.append("Rat is really little more than a grep ATM\n");
+        footer.append("Rat is also rather memory hungry ATM\n");
+        footer.append("Rat is very basic ATM\n");
+        footer.append("Rat highlights possible issues\n");
+        footer.append("Rat reports require interpretation\n");
+        footer.append("Rat often requires some tuning before it runs well against a project\n");
+        footer.append("Rat relies on heuristics: it may miss issues\n");
+
+        f.printHelp("java rat.report [options] [DIR|TARBALL]",
+                header, opts, footer.toString(), false);
+        System.exit(0);
+    }
+
+    private final String baseDirectory;
+
+    private FilenameFilter inputFileFilter = null;
+
+    private Report(String baseDirectory) {
+        this.baseDirectory = baseDirectory;
+    }
+
+    /**
+     * Gets the current filter used to select files.
+     *
+     * @return current file filter, or null when no filter has been set
+     */
+    public FilenameFilter getInputFileFilter() {
+        return inputFileFilter;
+    }
+
+    /**
+     * Sets the current filter used to select files.
+     *
+     * @param inputFileFilter filter, or null when no filter has been set
+     */
+    public void setInputFileFilter(FilenameFilter inputFileFilter) {
+        this.inputFileFilter = inputFileFilter;
+    }
+
+    /**
+     * @param out - the output stream to receive the styled report
+     * @return the currently collected numerical statistics.
+     * @throws Exception in case of errors.
+     * @deprecated use {@link #report(PrintStream, ReportConfiguration)} instead
+     */
+    @Deprecated
+    public ClaimStatistic report(PrintStream out) throws Exception {
+        final ReportConfiguration configuration = new ReportConfiguration();
+        configuration.setHeaderMatcher(Defaults.createDefaultMatcher());
+        configuration.setApproveDefaultLicenses(true);
+        return report(out, configuration);
+    }
+
+    /**
+     * @param out           - the output stream to receive the styled report
+     * @param configuration - current configuration options.
+     * @return the currently collected numerical statistics.
+     * @throws Exception in case of errors.
+     * @since Rat 0.8
+     */
+    public ClaimStatistic report(PrintStream out,
+                                 ReportConfiguration configuration)
+            throws Exception {
+        final IReportable base = getDirectory(out);
+        if (base != null) {
+            return report(base, new OutputStreamWriter(out), configuration);
+        }
+        return null;
+    }
+
+    private IReportable getDirectory(PrintStream out) {
+        File base = new File(baseDirectory);
+        if (!base.exists()) {
+            out.print("ERROR: ");
+            out.print(baseDirectory);
+            out.print(" does not exist.\n");
+            return null;
+        }
+
+        if (base.isDirectory()) {
+            return new DirectoryWalker(base, inputFileFilter);
+        }
+
+        try {
+            return new ArchiveWalker(base, inputFileFilter);
+        } catch (IOException ex) {
+            out.print("ERROR: ");
+            out.print(baseDirectory);
+            out.print(" is not valid gzip data.\n");
+            return null;
+        }
+    }
+
+    /**
+     * Output a report in the default style and default license
+     * header matcher.
+     *
+     * @param out - the output stream to receive the styled report
+     * @throws Exception in case of errors.
+     * @deprecated use {@link #styleReport(PrintStream, ReportConfiguration)} instead
+     */
+    @Deprecated
+    public void styleReport(PrintStream out) throws Exception {
+        final ReportConfiguration configuration = new ReportConfiguration();
+        configuration.setHeaderMatcher(Defaults.createDefaultMatcher());
+        configuration.setApproveDefaultLicenses(true);
+        styleReport(out, configuration);
+    }
+
+    /**
+     * Output a report in the default style and default license
+     * header matcher.
+     *
+     * @param out           - the output stream to receive the styled report
+     * @param configuration the configuration to use
+     * @throws Exception in case of errors.
+     * @since Rat 0.8
+     */
+    public void styleReport(PrintStream out,
+                            ReportConfiguration configuration)
+            throws Exception {
+        final IReportable base = getDirectory(out);
+        if (base != null) {
+            InputStream style = Defaults.getDefaultStyleSheet();
+            report(out, base, style, configuration);
+        }
+    }
+
+    /**
+     * Output a report that is styled using a defined stylesheet.
+     *
+     * @param out            the stream to write the report to
+     * @param base           the files or directories to report on
+     * @param style          an input stream representing the stylesheet to use for styling the report
+     * @param pConfiguration current report configuration.
+     * @throws IOException                       in case of I/O errors.
+     * @throws TransformerConfigurationException in case of XML errors.
+     * @throws InterruptedException              in case of threading errors.
+     * @throws RatException                      in case of internal errors.
+     */
+    public static void report(PrintStream out, IReportable base, final InputStream style,
+                              ReportConfiguration pConfiguration)
+            throws IOException, TransformerConfigurationException, InterruptedException, RatException {
+        report(new OutputStreamWriter(out), base, style, pConfiguration);
+    }
+
+    /**
+     * Output a report that is styled using a defined stylesheet.
+     *
+     * @param out            the writer to write the report to
+     * @param base           the files or directories to report on
+     * @param style          an input stream representing the stylesheet to use for styling the report
+     * @param pConfiguration current report configuration.
+     * @return the currently collected numerical statistics.
+     * @throws IOException                       in case of I/O errors.
+     * @throws TransformerConfigurationException in case of XML errors.
+     * @throws InterruptedException              in case of threading errors.
+     * @throws RatException                      in case of internal errors.
+     */
+    public static ClaimStatistic report(Writer out, IReportable base, final InputStream style,
+                                        ReportConfiguration pConfiguration)
+            throws IOException, TransformerConfigurationException, InterruptedException, RatException {
+        PipedReader reader = new PipedReader();
+        PipedWriter writer = new PipedWriter(reader);
+        ReportTransformer transformer = new ReportTransformer(out, style, reader);
+        Thread transformerThread = new Thread(transformer);
+        transformerThread.start();
+        final ClaimStatistic statistic = report(base, writer, pConfiguration);
+        writer.flush();
+        writer.close();
+        transformerThread.join();
+        return statistic;
+    }
+
+    /**
+     * @param container      the files or directories to report on
+     * @param out            the writer to write the report to
+     * @param pConfiguration current report configuration.
+     * @return the currently collected numerical statistics.
+     * @throws IOException  in case of I/O errors.
+     * @throws RatException in case of internal errors.
+     */
+    public static ClaimStatistic report(final IReportable container, final Writer out,
+                                        ReportConfiguration pConfiguration) throws IOException, RatException {
+        IXmlWriter writer = new XmlWriter(out);
+        final ClaimStatistic statistic = new ClaimStatistic();
+        RatReport report = XmlReportFactory.createStandardReport(writer, statistic, pConfiguration);
+        report.startReport();
+        container.run(report);
+        report.endReport();
+        writer.closeDocument();
+        return statistic;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/ReportConfiguration.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/ReportConfiguration.java
new file mode 100644
index 0000000..f4043c8
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/ReportConfiguration.java
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.license.ILicenseFamily;
+
+import java.util.List;
+
+
+/**
+ * A configuration object is used by the frontend to invoke the
+ * {@link Report}. Basically, the sole purpose of the frontends is
+ * to create the configuration and invoke the {@link Report}.
+ */
+public class ReportConfiguration {
+    private IHeaderMatcher headerMatcher;
+    private ILicenseFamily[] approvedLicenseNames;
+    private boolean addingLicenses;
+    private boolean addingLicensesForced;
+    private String copyrightMessage;
+    private boolean approveDefaultLicenses = true;
+
+    /**
+     * @return whether default licenses shall be approved by default.
+     */
+    public boolean isApproveDefaultLicenses() {
+        return approveDefaultLicenses;
+    }
+
+    public void setApproveDefaultLicenses(boolean approveDefaultLicenses) {
+        this.approveDefaultLicenses = approveDefaultLicenses;
+    }
+
+    /**
+     * Returns the header matcher.
+     *
+     * @return the header matcher.
+     */
+    public IHeaderMatcher getHeaderMatcher() {
+        return headerMatcher;
+    }
+
+    /**
+     * Sets the header matcher.
+     *
+     * @param headerMatcher header matcher.
+     */
+    public void setHeaderMatcher(IHeaderMatcher headerMatcher) {
+        this.headerMatcher = headerMatcher;
+    }
+
+    /**
+     * Returns the set of approved license names.
+     *
+     * @return the set of approved license names.
+     */
+    public ILicenseFamily[] getApprovedLicenseNames() {
+        return approvedLicenseNames;
+    }
+
+    /**
+     * Sets the set of approved license names.
+     *
+     * @param approvedLicenseNames set of approved license names.
+     */
+    public void setApprovedLicenseNames(ILicenseFamily[] approvedLicenseNames) {
+        this.approvedLicenseNames = approvedLicenseNames;
+    }
+
+    /**
+     * Sets the set of approved license names (convenience).
+     *
+     * @param approvedLicenseNames set of approved license names.
+     */
+    public void setApprovedLicenseNames(List<ILicenseFamily> approvedLicenseNames) {
+        if (approvedLicenseNames != null && approvedLicenseNames.size() > 0) {
+            setApprovedLicenseNames(approvedLicenseNames.toArray(new ILicenseFamily[approvedLicenseNames.size()]));
+        }
+    }
+
+    /**
+     * @return If Rat is adding license headers: Returns the optional
+     * copyright message. This value is ignored, if no
+     * license headers are added.
+     * @see #isAddingLicenses()
+     */
+    public String getCopyrightMessage() {
+        return copyrightMessage;
+    }
+
+    /**
+     * If Rat is adding license headers: Sets the optional
+     * copyright message. This value is ignored, if no
+     * license headers are added.
+     *
+     * @param copyrightMessage message to set.
+     * @see #setAddingLicenses(boolean)
+     */
+    public void setCopyrightMessage(String copyrightMessage) {
+        this.copyrightMessage = copyrightMessage;
+    }
+
+    /**
+     * @return If Rat is adding license headers: Returns, whether adding
+     * license headers is enforced. This value is ignored, if no
+     * license headers are added.
+     * @see #isAddingLicenses()
+     */
+    public boolean isAddingLicensesForced() {
+        return addingLicensesForced;
+    }
+
+    /**
+     * If Rat is adding license headers: Sets, whether adding
+     * license headers is enforced. This value is ignored, if no
+     * license headers are added.
+     *
+     * @param addingLicensesForced enable/disable forcibly adding licenses.
+     * @see #isAddingLicenses()
+     */
+    public void setAddingLicensesForced(boolean addingLicensesForced) {
+        this.addingLicensesForced = addingLicensesForced;
+    }
+
+    /**
+     * @return Returns, whether Rat should add missing license headers.
+     * @see #isAddingLicensesForced()
+     * @see #getCopyrightMessage()
+     */
+    public boolean isAddingLicenses() {
+        return addingLicenses;
+    }
+
+    /**
+     * Returns, whether Rat should add missing license headers.
+     *
+     * @param addingLicenses enables/disables adding of licenses.
+     * @see #setAddingLicensesForced(boolean)
+     * @see #setCopyrightMessage(String)
+     */
+    public void setAddingLicenses(boolean addingLicenses) {
+        this.addingLicenses = addingLicenses;
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/ReportFailedRuntimeException.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/ReportFailedRuntimeException.java
new file mode 100644
index 0000000..e778664
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/ReportFailedRuntimeException.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat;
+
+/**
+ * Indicates that a report has failed in a fatal manner.
+ */
+class ReportFailedRuntimeException extends RuntimeException {
+    
+    private static final long serialVersionUID = -7605175211996815712L;
+
+    public ReportFailedRuntimeException() {
+        super();
+    }
+
+    public ReportFailedRuntimeException(String message, Throwable t) {
+        super(message, t);
+    }
+
+    public ReportFailedRuntimeException(String message) {
+        super(message);
+    }
+
+    public ReportFailedRuntimeException(Throwable t) {
+        super(t);
+    }    
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/ReportTransformer.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/ReportTransformer.java
new file mode 100644
index 0000000..399226a
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/ReportTransformer.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat;
+
+import java.io.InputStream;
+import java.io.Reader;
+import java.io.Writer;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+
+class ReportTransformer implements Runnable {
+
+    private final Writer out;
+    private final Transformer transformer;
+    private final Reader in;
+    
+    public ReportTransformer(final Writer out, final Reader style, 
+            final Reader in) throws TransformerConfigurationException {
+        this.out = out;
+        transformer = TransformerFactory.newInstance().newTransformer(
+                new StreamSource(style));
+        this.in = in;
+    }
+    
+    public ReportTransformer(final Writer out, final InputStream style, 
+            final Reader in) throws TransformerConfigurationException {
+        this.out = out;
+        transformer = TransformerFactory.newInstance().newTransformer(
+                new StreamSource(style));
+        this.in = in;
+    }
+    
+    public void run() {
+        try {
+            transform();
+        } catch (TransformerException e) {
+            throw new ReportFailedRuntimeException(e.getMessage(), e);
+        }
+    }
+
+    public void transform() throws TransformerException {
+        transformer.transform(new StreamSource(in), new StreamResult(out));
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/DefaultAnalyserFactory.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/DefaultAnalyserFactory.java
new file mode 100644
index 0000000..c8d39ff
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/DefaultAnalyserFactory.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.document.IDocumentAnalyser;
+import org.apache.rat.document.RatDocumentAnalysisException;
+import org.apache.rat.document.impl.guesser.ArchiveGuesser;
+import org.apache.rat.document.impl.guesser.BinaryGuesser;
+import org.apache.rat.document.impl.guesser.NoteGuesser;
+
+/**
+ * Creates default analysers.
+ *
+ */
+public class DefaultAnalyserFactory {
+  
+    public static final IDocumentAnalyser createDefaultAnalyser(final IHeaderMatcher matcher) {
+        
+        return new DefaultAnalyser(matcher);
+    }
+    
+    private final static class DefaultAnalyser implements IDocumentAnalyser {
+
+        private final IHeaderMatcher matcher;
+        
+        public DefaultAnalyser(final IHeaderMatcher matcher) {
+            super();
+            this.matcher = matcher;
+        }
+
+        public void analyse(Document subject) throws RatDocumentAnalysisException {
+            final MetaData.Datum documentCategory;
+            if (NoteGuesser.isNote(subject)) {
+                documentCategory = MetaData.RAT_DOCUMENT_CATEGORY_DATUM_NOTICE;
+            } else if (ArchiveGuesser.isArchive(subject)) {
+                documentCategory = MetaData.RAT_DOCUMENT_CATEGORY_DATUM_ARCHIVE;
+            } else if (BinaryGuesser.isBinary(subject)) {
+                documentCategory = MetaData.RAT_DOCUMENT_CATEGORY_DATUM_BINARY;
+            } else {
+                documentCategory = MetaData.RAT_DOCUMENT_CATEGORY_DATUM_STANDARD;
+                final DocumentHeaderAnalyser headerAnalyser = new DocumentHeaderAnalyser(matcher);
+                headerAnalyser.analyse(subject);
+            }
+            subject.getMetaData().set(documentCategory);
+        }        
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/DocumentHeaderAnalyser.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/DocumentHeaderAnalyser.java
new file mode 100644
index 0000000..e9f658c
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/DocumentHeaderAnalyser.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.IDocumentAnalyser;
+import org.apache.rat.document.RatDocumentAnalysisException;
+
+import java.io.IOException;
+import java.io.Reader;
+
+public class DocumentHeaderAnalyser implements IDocumentAnalyser {
+
+    private final IHeaderMatcher matcher;
+    
+    public DocumentHeaderAnalyser(final IHeaderMatcher matcher) {
+        super();
+        this.matcher = matcher;
+    }
+
+    public void analyse(Document document) throws RatDocumentAnalysisException {
+        Reader reader = null;
+        try {
+            reader = document.reader();
+            // TODO: worker function should be moved into this class
+            HeaderCheckWorker worker = new HeaderCheckWorker(reader, matcher, document);
+            worker.read();
+        } catch (IOException e) {
+            throw new RatDocumentAnalysisException("Cannot read header", e);
+        } catch (RatHeaderAnalysisException e) {
+            throw new RatDocumentAnalysisException("Cannot analyse header", e);
+        } finally {
+            IOUtils.closeQuietly(reader);
+        }
+     }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/HeaderCheckWorker.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/HeaderCheckWorker.java
new file mode 100644
index 0000000..2ae9edc
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/HeaderCheckWorker.java
@@ -0,0 +1,117 @@
+package org.apache.rat.analysis;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.Reader;
+
+/**
+ * <p>Reads from a stream to check license.</p>
+ * <p><strong>Note</strong> that this class is not thread safe.</p> 
+ */
+class HeaderCheckWorker {
+
+    public static final int DEFAULT_NUMBER_OF_RETAINED_HEADER_LINES = 50;
+
+    private final int numberOfRetainedHeaderLines;
+    private final BufferedReader reader;
+    private final IHeaderMatcher matcher;
+    private final Document subject;
+    
+    private boolean match = false;
+
+    private int headerLinesToRead;
+    private boolean finished = false;
+
+    public HeaderCheckWorker(Reader reader, int numberOfRetainedHeaderLine,
+            final IHeaderMatcher matcher, final Document name) {
+        this(new BufferedReader(reader), numberOfRetainedHeaderLine, matcher, name);
+    }
+
+
+    /**
+     * Convenience constructor wraps given <code>Reader</code>
+     * in a <code>BufferedReader</code>.
+     * @param reader a <code>Reader</code> for the content, not null
+     * @param name the name of the checked content, possibly null
+     */
+    public HeaderCheckWorker(Reader reader, final IHeaderMatcher matcher, final Document name) {
+        this(new BufferedReader(reader), matcher, name);
+    }
+
+    public HeaderCheckWorker(BufferedReader reader, final IHeaderMatcher matcher,
+            final Document name) {
+        this(reader, DEFAULT_NUMBER_OF_RETAINED_HEADER_LINES, matcher, name);
+    }
+
+    public HeaderCheckWorker(BufferedReader reader, int numberOfRetainedHeaderLine, final IHeaderMatcher matcher,
+            final Document name) {
+        this.reader = reader;
+        this.numberOfRetainedHeaderLines = numberOfRetainedHeaderLine;
+        this.matcher = matcher;
+        this.subject = name;
+    }
+
+    public boolean isFinished() {
+        return finished;
+    }
+
+    public void read() throws RatHeaderAnalysisException {
+        if (!finished) {
+            final StringBuilder headers = new StringBuilder();
+            headerLinesToRead = numberOfRetainedHeaderLines;
+            try {
+                while(readLine(headers)) {
+                    // do nothing
+                }
+                if (!match) {
+                    final String notes = headers.toString();
+                    final MetaData metaData = subject.getMetaData();
+                    metaData.set(new MetaData.Datum(MetaData.RAT_URL_HEADER_SAMPLE, notes));
+                    metaData.set(new MetaData.Datum(MetaData.RAT_URL_HEADER_CATEGORY, MetaData.RAT_LICENSE_FAMILY_CATEGORY_VALUE_UNKNOWN));
+                    metaData.set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_UNKNOWN);
+                }
+            } catch (IOException e) {
+                throw new RatHeaderAnalysisException("Cannot read header for " + subject, e);
+            }
+            IOUtils.closeQuietly(reader);
+            matcher.reset();
+        }
+        finished = true;
+    }
+
+    boolean readLine(StringBuilder headers) throws IOException, RatHeaderAnalysisException {
+        String line = reader.readLine();
+        boolean result = line != null;
+        if (result) {
+            if (headerLinesToRead-- > 0) {
+                headers.append(line);
+                headers.append('\n');
+            }
+            match = matcher.match(subject, line);
+            result = !match;
+        }
+        return result;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/IHeaderMatcher.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/IHeaderMatcher.java
new file mode 100644
index 0000000..3ec499d
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/IHeaderMatcher.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis;
+
+import org.apache.rat.api.Document;
+
+/**
+ * Matches text headers to known licenses.
+ */
+public interface IHeaderMatcher {
+
+    /**
+     * Resets this matches.
+     * Subsequent calls to {@link #match} will accumulate new text.
+     */
+    void reset();
+
+    /**
+     * Matches the text accumulated to licenses.
+     * TODO probably a poor design choice - hope to fix later
+     * @param subject current document.
+     * @param line next line of text, not null
+     * 
+     * @return whether the current line matched in the document.
+     * 
+     * @throws RatHeaderAnalysisException in case of internal RAT errors.
+     */
+    boolean match(Document subject, String line) throws RatHeaderAnalysisException;
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/RatHeaderAnalysisException.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/RatHeaderAnalysisException.java
new file mode 100644
index 0000000..0e71391
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/RatHeaderAnalysisException.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis;
+
+/**
+ * Indicates exceptional condition during header analysis.
+ *
+ */
+public class RatHeaderAnalysisException extends Exception {
+
+    private static final long serialVersionUID = 7613577476983281387L;
+
+    public RatHeaderAnalysisException() {
+        super();
+    }
+
+    public RatHeaderAnalysisException(String msg, Throwable cause) {
+        super(msg, cause);
+    }
+
+    public RatHeaderAnalysisException(String msg) {
+        super(msg);
+    }
+
+    public RatHeaderAnalysisException(Throwable cause) {
+        super(cause);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/RatReportAnalysisResultException.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/RatReportAnalysisResultException.java
new file mode 100644
index 0000000..8ee9274
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/RatReportAnalysisResultException.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis;
+
+import org.apache.rat.api.RatException;
+import org.apache.rat.document.RatDocumentAnalysisException;
+
+public class RatReportAnalysisResultException extends RatDocumentAnalysisException {
+    
+    private static final long serialVersionUID = 4018716722707721989L;
+    private static final String MESSAGE = "Could not report results of analysis";
+    
+    public RatReportAnalysisResultException() {
+        super(MESSAGE);
+    }
+
+    public RatReportAnalysisResultException(RatException cause) {
+        super(MESSAGE, cause);
+    }
+
+    public RatReportAnalysisResultException(String msg, RatException cause) {
+        super(msg, cause);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequired.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequired.java
new file mode 100644
index 0000000..9003fbd
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequired.java
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.generation;
+
+import java.util.regex.Pattern;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+public class GeneratedLicenseNotRequired implements IHeaderMatcher {
+
+    private static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+    private static final Pattern[] EMPTY_PATTERN_ARRAY = new Pattern[0];
+
+    private static final String[] DEFAULT_PHRASES = {
+        "generated by Cayenne",
+        "Generated By:JJTree",
+        "Generated By:JavaCC",
+        "THIS FILE IS AUTOMATICALLY GENERATED",
+        "NOTE: this file is autogenerated by XBeans",
+        "This file was automatically generated by ",
+        "# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!",
+        "# Microsoft Developer Studio Generated NMAKE File",
+        "# Microsoft Developer Studio Generated Build File",
+        "Generated from configure.ac by autoheader",
+        "generated automatically by aclocal",
+        "build.xml generated by maven from project.xml",
+        "This file was generated by",
+        "This file has been automatically generated.",
+        "Automatically generated - do not modify!",
+        "Javadoc style sheet",
+        "SOURCE FILE GENERATATED",
+        "Generated by the Batik",
+        "this file is autogenerated",
+        "This class was autogenerated",
+        "Generated by Maven",
+        "Autogenerated by Thrift",
+        "DO NOT EDIT THIS FILE - it is machine generated",
+        "This class was generated by"};
+    
+    
+    // Uses either patterns or strings currently (not both)
+    private final Pattern[] linePatterns;
+    private final String[] phrases;
+    
+    public GeneratedLicenseNotRequired() {
+        this(DEFAULT_PHRASES);
+    }
+    
+    public GeneratedLicenseNotRequired(final Pattern[] linePatterns) {
+        this.linePatterns = linePatterns;
+        this.phrases = EMPTY_STRING_ARRAY;
+    }
+
+    public GeneratedLicenseNotRequired(final String[] lines) {
+        this.linePatterns = EMPTY_PATTERN_ARRAY;
+        this.phrases = lines;
+    }
+
+    public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+        boolean result = false;
+        for (Pattern pat : linePatterns) {
+            if (pat.matcher(line).matches()) {
+                result = true;
+                reportOnLicense(subject);
+                break;
+            }
+        }
+        for(String phrase : phrases) {
+            if (line.contains(phrase)) {
+                result = true;
+                reportOnLicense(subject);
+                break;
+            }                
+        }
+        return result;
+    }
+
+    private void reportOnLicense(Document subject) {
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_GEN);
+    }
+
+    public void reset() {
+        // stateless
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequired.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequired.java
new file mode 100644
index 0000000..d165b8e
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequired.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.generation;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+/**
+ * JavaDocs are generated and so no license is required.
+ * It is useful to note these separately.
+ */
+public class JavaDocLicenseNotRequired implements IHeaderMatcher {
+
+    private static final String JAVADOC_REGEX_DEFN = "Generated by javadoc";
+    
+    public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+        boolean result = line.contains(JAVADOC_REGEX_DEFN);
+        if (result) {
+            reportOnLicense(subject);
+        }
+        return result;
+    }
+
+    private void reportOnLicense(Document subject) {
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_GEN);
+    }
+    
+    public void reset() {
+        // stateless
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20.java
new file mode 100644
index 0000000..9897a52
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * Matches Apache License, Version 2.0
+ *
+ */
+public final class ApacheSoftwareLicense20 extends SimplePatternBasedLicense {
+    public static final String FIRST_LICENSE_LINE = "Licensed under the Apache License, Version 2.0 (the \"License\")";
+    public static final String LICENSE_REFERENCE_LINE = "http://www.apache.org/licenses/LICENSE-2.0";
+
+    public ApacheSoftwareLicense20() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_ASL, MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_APACHE_LICENSE_VERSION_2_0,
+                "", new String[]{FIRST_LICENSE_LINE, LICENSE_REFERENCE_LINE});
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/AppliedApacheSoftwareLicense20.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/AppliedApacheSoftwareLicense20.java
new file mode 100644
index 0000000..c2250d1
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/AppliedApacheSoftwareLicense20.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+/**
+ * Matches an applied AL 2.0 License header, including a <em>required</em>
+ * initial copyright header line, conforming the <a href="http://apache.org/licenses/LICENSE-2.0.html#apply">template</a>
+ * from the AL 2.0 license itself.
+ *
+ * @since Rat 0.9
+ */
+public class AppliedApacheSoftwareLicense20 extends CopyrightHeader {
+
+    public static final String ASL20_LICENSE_DEFN
+            = "Licensed under the Apache License, Version 2.0 (the \"License\");\n"
+            + "you may not use this file except in compliance with the License.\n"
+            + "You may obtain a copy of the License at\n"
+            + "http://www.apache.org/licenses/LICENSE-2.0\n"
+            + "Unless required by applicable law or agreed to in writing, software\n"
+            + "distributed under the License is distributed on an \"AS IS\" BASIS,\n"
+            + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"
+            + "See the License for the specific language governing permissions and\n"
+            + "limitations under the License.\n";
+
+    private final FullTextMatchingLicense textMatcher;
+
+    public AppliedApacheSoftwareLicense20() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_ASL, MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_APACHE_LICENSE_VERSION_2_0,"");
+        textMatcher = new FullTextMatchingLicense(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_ASL, MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_APACHE_LICENSE_VERSION_2_0,"",ASL20_LICENSE_DEFN);
+    }
+
+    public AppliedApacheSoftwareLicense20(String copyrightOwner) {
+        this();
+        setCopyrightOwner(copyrightOwner);
+    }
+
+    @Override
+    public boolean match(Document subject, String s) throws RatHeaderAnalysisException {
+        boolean result = false;
+        if (isCopyrightMatch()) {
+            return textMatcher.match(subject, s); // will report the match if it has occurred
+        }
+        else {
+            matchCopyright(s);
+        }
+        return result;
+    }
+
+    @Override
+    public void reset() {
+        super.reset();
+        textMatcher.reset();
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/BaseLicense.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/BaseLicense.java
new file mode 100644
index 0000000..fe55b96
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/BaseLicense.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+public class BaseLicense {
+    private String licenseFamilyCategory;
+    private String licenseFamilyName;
+    private String notes;
+
+    public BaseLicense() {
+    }
+
+    public BaseLicense(final MetaData.Datum licenseFamilyCategory, final MetaData.Datum licenseFamilyName, final String notes)
+    {
+        if (!MetaData.RAT_URL_LICENSE_FAMILY_CATEGORY.equals(licenseFamilyCategory.getName())) {
+            throw new IllegalStateException("Expected " + MetaData.RAT_URL_LICENSE_FAMILY_CATEGORY
+                    + ", got " + licenseFamilyCategory.getName());
+        }
+        setLicenseFamilyCategory(licenseFamilyCategory.getValue());
+        if (!MetaData.RAT_URL_LICENSE_FAMILY_NAME.equals(licenseFamilyName.getName())) {
+            throw new IllegalStateException("Expected " + MetaData.RAT_URL_LICENSE_FAMILY_NAME
+                    + ", got " + licenseFamilyName.getName());
+        }
+        setLicenseFamilyName(licenseFamilyName.getValue());
+        setNotes(notes);
+    }
+
+    public String getLicenseFamilyCategory() {
+        return licenseFamilyCategory;
+    }
+
+    public void setLicenseFamilyCategory(String pDocumentCategory) {
+        licenseFamilyCategory = pDocumentCategory;
+    }
+
+    public String getLicenseFamilyName() {
+        return licenseFamilyName;
+    }
+
+    public void setLicenseFamilyName(String pLicenseFamilyCategory) {
+        licenseFamilyName = pLicenseFamilyCategory;
+    }
+
+    public String getNotes() {
+        return notes;
+    }
+
+    public void setNotes(String pNotes) {
+        notes = pNotes;
+    }
+
+    public final void reportOnLicense(Document subject) {
+        final MetaData metaData = subject.getMetaData();
+        metaData.set(new MetaData.Datum(MetaData.RAT_URL_HEADER_SAMPLE, notes));
+        final String licFamilyCategory = getLicenseFamilyCategory();
+        metaData.set(new MetaData.Datum(MetaData.RAT_URL_HEADER_CATEGORY, licFamilyCategory));
+        metaData.set(new MetaData.Datum(MetaData.RAT_URL_LICENSE_FAMILY_CATEGORY, licFamilyCategory));
+        metaData.set(new MetaData.Datum(MetaData.RAT_URL_LICENSE_FAMILY_NAME, getLicenseFamilyName()));
+    }
+
+    protected static final String prune(String text) {
+        final int length = text.length();
+        final StringBuilder buffer = new StringBuilder(length);
+        for (int i = 0; i < length; i++) {
+            char at = text.charAt(i);
+            if (Character.isLetterOrDigit(at)) {
+                buffer.append(at);
+            }
+        }
+        return buffer.toString();
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/CDDL1License.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/CDDL1License.java
new file mode 100644
index 0000000..d731ef5
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/CDDL1License.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+/**
+ * Base CDDL 1.0 license.
+ */
+public class CDDL1License extends BaseLicense implements IHeaderMatcher {
+
+    public static final String CDDL1_LICENSE_DEFN
+            = "The contents of this file are subject to the terms of the Common Development\n"
+            + "and Distribution License(\"CDDL\") (the \"License\"). You may not use this file\n"
+            + "except in compliance with the License.\n\n";
+
+    public static final String CDDL1_LICENSE_DEFN_ILLUMOS_STYLE
+            = "The contents of this file are subject to the terms of the\n"
+            + "Common Development and Distribution License (the \"License\")\n"
+            + "You may not use this file except in compliance with the License.\n";
+
+    private final FullTextMatchingLicense textMatcherBase;
+    private final FullTextMatchingLicense textMatcherIllumosStyle;
+
+
+    public CDDL1License() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_CDLL1,
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_CDDL1,
+                "");
+        textMatcherBase = new FullTextMatchingLicense(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_CDLL1,
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_CDDL1,
+                "", CDDL1_LICENSE_DEFN);
+        textMatcherIllumosStyle = new FullTextMatchingLicense(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_CDLL1,
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_CDDL1,
+                "", CDDL1_LICENSE_DEFN_ILLUMOS_STYLE);
+    }
+
+    public boolean match(Document subject, String s) throws RatHeaderAnalysisException {
+        return textMatcherBase.match(subject, s) ||
+                textMatcherIllumosStyle.match(subject, s);
+    }
+
+    public void reset() {
+        textMatcherBase.reset();
+        textMatcherIllumosStyle.reset();
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/CopyrightHeader.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/CopyrightHeader.java
new file mode 100644
index 0000000..38ae7ee
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/CopyrightHeader.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData.Datum;
+
+import java.util.regex.Pattern;
+
+/**
+ * Matches a typical Copyright header line only based on a regex pattern
+ * which allows for one (starting) year or year range, and a
+ * configurable copyright owner.
+ * <br>
+ * <br>The matching is done case insensitive<br>
+ * <br>
+ * Example supported Copyright header lines, using copyright owner &quot;FooBar&quot;
+ * <ul>
+ * <li>* Copyright 2010 FooBar. *</li>
+ * <li>* Copyright 2010-2012 FooBar. *</li>
+ * <li>*copyright 2012 foobar*</li>
+ * </ul>
+ * <p>Note also that the copyright owner is appended to the regex pattern, so
+ * can support additional regex but also requires escaping where needed,<p>
+ * e.g. use &quot;FooBar \(www\.foobar\.com\)&quot; for matching &quot;FooBar (www.foobar.com)&quot;<p>
+ *
+ * @since Rat 0.9
+ */
+public class CopyrightHeader extends BaseLicense implements IHeaderMatcher {
+
+    public static final String COPYRIGHT_PREFIX_PATTERN_DEFN = ".*Copyright [0-9]{4}(\\-[0-9]{4})? ";
+
+    private Pattern copyrightPattern;
+    private String copyrightOwner;
+    private boolean copyrightMatch = false;
+
+    public CopyrightHeader() {
+    }
+
+    protected CopyrightHeader(Datum licenseFamilyCategory, Datum licenseFamilyName, String notes) {
+        super(licenseFamilyCategory, licenseFamilyName, notes);
+    }
+
+    protected CopyrightHeader(Datum licenseFamilyCategory, Datum licenseFamilyName, String notes, String copyrightOwner) {
+        this(licenseFamilyCategory, licenseFamilyName, notes);
+        setCopyrightOwner(copyrightOwner);
+    }
+
+    // Called by ctor, so must not be overridden
+    public final void setCopyrightOwner(String copyrightOwner) {
+        this.copyrightOwner = copyrightOwner;
+        this.copyrightPattern = Pattern.compile(COPYRIGHT_PREFIX_PATTERN_DEFN + copyrightOwner + ".*", Pattern.CASE_INSENSITIVE);
+    }
+
+    public String getCopyRightOwner() {
+        return copyrightOwner;
+    }
+
+    public boolean hasCopyrightPattern() {
+        return copyrightPattern != null;
+    }
+
+    protected boolean isCopyrightMatch() {
+        return copyrightMatch;
+    }
+
+    protected boolean matchCopyright(String s) {
+        if (!copyrightMatch) {
+            copyrightMatch = copyrightPattern.matcher(s).matches();
+        }
+        return copyrightMatch;
+    }
+
+    public boolean match(Document subject, String s) throws RatHeaderAnalysisException {
+        if (!copyrightMatch && matchCopyright(s)) {
+            reportOnLicense(subject);
+        }
+        return copyrightMatch;
+    }
+
+    public void reset() {
+        copyrightMatch = false;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/DojoLicenseHeader.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/DojoLicenseHeader.java
new file mode 100644
index 0000000..a5c00d5
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/DojoLicenseHeader.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+
+public class DojoLicenseHeader extends SimplePatternBasedLicense {
+    private static final String LICENSE_URL  = "http://dojotoolkit.org/community/licensing.shtml";
+    
+    //  Copyright (c) 2004-2006, The Dojo Foundation
+    // All Rights Reserved.
+    //
+    // Licensed under the Academic Free License version 2.1 or above OR the
+    // modified BSD license. For more information on Dojo licensing, see:
+    //
+    //    http://dojotoolkit.org/community/licensing.shtml
+
+    public DojoLicenseHeader() {
+        // TODO: support for dual licensing
+        // TODO: support for or higher clauses
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_DOJO, MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_MODIFIED_BSD_LICENSE, "Dual license AFL/BSD",
+                new String[]{LICENSE_URL});
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/FullTextMatchingLicense.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/FullTextMatchingLicense.java
new file mode 100644
index 0000000..2bc595d
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/FullTextMatchingLicense.java
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import java.util.Locale;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData.Datum;
+
+/**
+ * Accumulates all letters and numbers contained inside the header and
+ * compares it to the full text of a given license (after reducing it
+ * to letters and numbers as well).
+ *
+ * <p>The text comparison is case insensitive but assumes only
+ * characters in the US-ASCII charset are being matched.</p>
+ *
+ * @since Rat 0.9
+ */
+public class FullTextMatchingLicense extends BaseLicense
+    implements IHeaderMatcher {
+
+    // Number of match characters assumed to be present on first line
+    private static final int DEFAULT_INITIAL_LINE_LENGTH = 20;
+
+    private String fullText;
+    
+    private String firstLine;
+
+    private boolean seenFirstLine = false;
+
+    private final StringBuilder buffer = new StringBuilder();
+
+    public FullTextMatchingLicense() {
+    }
+
+    protected FullTextMatchingLicense(Datum licenseFamilyCategory,
+                                      Datum licenseFamilyName,
+                                      String notes,
+                                      String fullText) {
+        super(licenseFamilyCategory, licenseFamilyName, notes);
+        setFullText(fullText);
+    }
+
+    public final void setFullText(String text) {
+        int offset = text.indexOf('\n');
+        if (offset == -1) {
+            offset = Math.min(DEFAULT_INITIAL_LINE_LENGTH, text.length());
+        }
+        firstLine = prune(text.substring(0, offset)).toLowerCase(Locale.ENGLISH);
+        fullText = prune(text).toLowerCase(Locale.ENGLISH);
+        init();
+    }
+
+    public final boolean hasFullText() {
+        return fullText != null;
+    }
+
+    public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+        final String inputToMatch = prune(line).toLowerCase(Locale.ENGLISH);
+        if (seenFirstLine) { // Accumulate more input
+            buffer.append(inputToMatch);
+        } else {
+            int offset = inputToMatch.indexOf(firstLine);
+            if (offset >= 0) {
+                // we have a match, save the text starting with the match
+                buffer.append(inputToMatch.substring(offset));
+                seenFirstLine = true;
+                // Drop out to check whether full text is matched
+            } else {
+                // we assume that the first line must appear in a single line
+                return false; // no more to do here
+            }
+        }
+ 
+        if (buffer.length() >= fullText.length()) { // we have enough data to match
+            if (buffer.toString().contains(fullText)) {
+                reportOnLicense(subject);
+                return true; // we found a match
+            } else { // buffer contains first line but does not contain full text
+                // It's possible that the buffer contains the first line again
+                int offset = buffer.substring(1).toString().indexOf(firstLine);
+                if (offset >= 0) { // first line found again
+                    buffer.delete(0,offset); // reset buffer to the new start
+                } else { // buffer does not even contain first line, so cannot be used to match full text
+                    init();
+                }
+            }
+        }
+        return false;
+    }
+
+    public void reset() {
+        init();
+    }
+
+    // This is called indirectly from a ctor so must be final or private
+    private void init() {
+        buffer.setLength(0);
+        seenFirstLine = false;
+    }
+}
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/GPL1License.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/GPL1License.java
new file mode 100644
index 0000000..5c94092
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/GPL1License.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * License matches GPL1 or later.
+ */
+public class GPL1License extends FullTextMatchingLicense {
+    public static final String FIRST_LICENSE_LINE = "This program is free software; you can redistribute it and/or modify\n" +
+            " it under the terms of the GNU General Public License as published by\n" +
+            " the Free Software Foundation; either version 1, or (at your option)\n" +
+            " any later version.";
+
+    public GPL1License() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_GPL1,
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_GPL_VERSION_1,
+                "", FIRST_LICENSE_LINE);
+    }
+}
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/GPL2License.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/GPL2License.java
new file mode 100644
index 0000000..ed92592
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/GPL2License.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * License matches GPL2 or later.
+ */
+public class GPL2License extends FullTextMatchingLicense {
+    public static final String FIRST_LICENSE_LINE = "This program is free software; you can redistribute it and/or\n" +
+            " modify it under the terms of the GNU General Public License\n" +
+            " as published by the Free Software Foundation; either version 2\n" +
+            " of the License, or (at your option) any later version.";
+
+    public GPL2License() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_GPL2,
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_GPL_VERSION_2,
+                "", FIRST_LICENSE_LINE);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/GPL3License.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/GPL3License.java
new file mode 100644
index 0000000..c9a84fd
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/GPL3License.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * License matches GPL3 or later.
+ */
+public class GPL3License extends FullTextMatchingLicense {
+    public static final String FIRST_LICENSE_LINE = "This program is free software: you can redistribute it and/or modify\n" +
+            " it under the terms of the GNU General Public License as published by\n" +
+            " the Free Software Foundation, either version 3 of the License, or\n" +
+            " (at your option) any later version.";
+
+    public GPL3License() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_GPL3,
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_GPL_VERSION_3,
+                "", FIRST_LICENSE_LINE);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/MITLicense.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/MITLicense.java
new file mode 100644
index 0000000..d622470
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/MITLicense.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * Base MIT license (all 3 parts).
+ */
+public class MITLicense extends FullTextMatchingLicense {
+    public static final String FIRST_LICENSE_LINE = "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:";
+    public static final String MIDDLE_LICENSE_LINE = "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.";
+    public static final String AS_IS_LICENSE_LINE = "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.";
+
+    public MITLicense() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_MIT,
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_MIT,
+                "", FIRST_LICENSE_LINE + MIDDLE_LICENSE_LINE + AS_IS_LICENSE_LINE);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/OASISLicense.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/OASISLicense.java
new file mode 100644
index 0000000..234dfef
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/OASISLicense.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import java.util.regex.Pattern;
+
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+/**
+ * Looks for documents contain the OASIS copyright claim plus derivative work clause.
+ * Perhaps need to match more.
+ */
+public class OASISLicense extends FullTextMatchingLicense {
+
+    private static final String COPYRIGHT_PATTERN_DEFN = ".*Copyright\\s.*OASIS Open.*";
+    private static final String CLAUSE_DEFN
+    = "This document and translations of it may be copied and furnished to others and derivative works" +
+            "that comment on or otherwise explain it or assist in its implementation may be prepared" +
+            "copied published and distributed";
+    
+    private static final Pattern COPYRIGHT_PATTERN = Pattern.compile(COPYRIGHT_PATTERN_DEFN);
+
+    boolean copyrightMatch = false;
+    
+    public OASISLicense() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_OASIS,
+              MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_OASIS_OPEN_LICENSE,
+              "No modifications allowed",
+              CLAUSE_DEFN);
+    }
+
+    @Override
+    public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+        boolean result = false;
+        if (copyrightMatch) {
+            result = super.match(subject, line);
+        } else {
+            copyrightMatch = COPYRIGHT_PATTERN.matcher(line).matches();
+        }
+        return result;
+    }
+
+    @Override
+    public void reset() {
+        copyrightMatch = false;
+        super.reset();
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/SimplePatternBasedLicense.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/SimplePatternBasedLicense.java
new file mode 100644
index 0000000..c750eb0
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/SimplePatternBasedLicense.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData.Datum;
+
+
+/**
+ * @since Rat 0.8
+ */
+public class SimplePatternBasedLicense extends BaseLicense implements IHeaderMatcher {
+    private String[] patterns;
+
+    public SimplePatternBasedLicense() {
+    }
+
+    protected SimplePatternBasedLicense(Datum pLicenseFamilyCategory, Datum pLicenseFamilyName,
+            String pNotes, String[] pPatterns) {
+        super(pLicenseFamilyCategory, pLicenseFamilyName, pNotes);
+        setPatterns(pPatterns);
+    }
+    
+    public String[] getPatterns() {
+        return patterns;
+    }
+
+    public void setPatterns(String[] pPatterns) {
+        patterns = pPatterns;
+    }
+
+    protected boolean matches(String pLine) {
+        if (pLine != null) {
+            final String[] pttrns = getPatterns();
+            if (pttrns != null) {
+                for (String pttrn : pttrns) {
+                    if (pLine.indexOf(pttrn, 0) >= 0) {
+                        return true;
+                    }
+                }
+            }
+        }
+        return false;
+    }
+    
+    public void reset() {
+        // Nothing to do
+    }
+
+    public boolean match(Document pSubject, String pLine) throws RatHeaderAnalysisException {
+        final boolean result = matches(pLine);
+        if (result) {
+            reportOnLicense(pSubject);
+        }
+        return result;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/TMF854LicenseHeader.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/TMF854LicenseHeader.java
new file mode 100644
index 0000000..3b49595
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/TMF854LicenseHeader.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+
+public class TMF854LicenseHeader extends SimplePatternBasedLicense {
+    
+    private static final String COPYRIGHT_HEADER = "TMF854 Version 1.0 - Copyright TeleManagement Forum";
+    
+    //  TMF854 Version 1.0 - Copyright TeleManagement Forum 
+
+    public TMF854LicenseHeader() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_TMF, 
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_MODIFIED_BSD_LICENSE, "BSD",
+                new String[]{COPYRIGHT_HEADER});
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/W3CDocLicense.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/W3CDocLicense.java
new file mode 100644
index 0000000..af51a03
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/W3CDocLicense.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+public class W3CDocLicense extends SimplePatternBasedLicense {
+
+    private static final String NOTES 
+        = "Note that W3CD does not allow modifications. See http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231.";
+    private static final String COPYRIGHT_URL 
+    = "http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231";
+    
+    public W3CDocLicense() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_W3CD, 
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_W3C_DOCUMENT_COPYRIGHT,  NOTES,
+                new String[]{COPYRIGHT_URL});
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/W3CLicense.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/W3CLicense.java
new file mode 100644
index 0000000..4325397
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/license/W3CLicense.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+public class W3CLicense extends SimplePatternBasedLicense {
+
+    private static final String NOTES 
+        = "Note that W3C requires a NOTICE. All modifications require notes. See http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.";
+    private static final String COPYRIGHT_URL 
+    = "http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231";
+    
+    public W3CLicense() {
+        super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_W3C, 
+                MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_W3C_SOFTWARE_COPYRIGHT,  NOTES,
+                new String[]{COPYRIGHT_URL});
+        
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/util/HeaderMatcherMultiplexer.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/util/HeaderMatcherMultiplexer.java
new file mode 100644
index 0000000..ed3eb73
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/analysis/util/HeaderMatcherMultiplexer.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.util;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+
+import java.util.List;
+
+/**
+ * Delegates to an ordered set of matchers.
+ *
+ */
+public final class HeaderMatcherMultiplexer implements IHeaderMatcher {
+
+    private final List<IHeaderMatcher> matchers;
+
+    public HeaderMatcherMultiplexer(final List<IHeaderMatcher> matchers) {
+        this.matchers = matchers;
+    }
+
+    public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+        boolean result = false;
+        for (IHeaderMatcher matcher : matchers) {
+            result = matcher.match(subject, line);
+            if (result) {
+                break;
+            }
+        }
+        return result;
+    }
+
+    public void reset() {
+        for (IHeaderMatcher matcher : matchers) {
+            matcher.reset();
+        }
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenseAppender.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenseAppender.java
new file mode 100644
index 0000000..65c9042
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenseAppender.java
@@ -0,0 +1,620 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.annotation;
+
+import org.apache.commons.io.IOUtils;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Add a license header to a document. This appender does not check for the
+ * existence of an existing license header, it is assumed that either a second
+ * license header is intentional or that there is no license header present
+ * already.
+ */
+public abstract class AbstractLicenseAppender {
+    private static final String DOT = ".";
+    private static final int TYPE_UNKNOWN = 0;
+    private static final int TYPE_JAVA = 1;
+    private static final int TYPE_XML = 2;
+    private static final int TYPE_HTML = 3;
+    private static final int TYPE_CSS = 4;
+    private static final int TYPE_JAVASCRIPT = 5;
+    private static final int TYPE_APT = 6;
+    private static final int TYPE_PROPERTIES = 7;
+    private static final int TYPE_PYTHON = 8;
+    private static final int TYPE_C = 9;
+    private static final int TYPE_H = 10;
+    private static final int TYPE_SH = 11;
+    private static final int TYPE_BAT = 12;
+    private static final int TYPE_VM = 13;
+    private static final int TYPE_SCALA = 14;
+    private static final int TYPE_RUBY = 15;
+    private static final int TYPE_PERL = 16;
+    private static final int TYPE_TCL = 17;
+    private static final int TYPE_CPP = 18;
+    private static final int TYPE_CSHARP = 19;
+    private static final int TYPE_PHP = 20;
+    private static final int TYPE_GROOVY = 21;
+    private static final int TYPE_VISUAL_STUDIO_SOLUTION = 22;
+    private static final int TYPE_BEANSHELL = 23;
+    private static final int TYPE_JSP = 24;
+    private static final int TYPE_FML = 25;
+
+    /**
+     * the line separator for this OS
+     */
+    private static final String LINE_SEP = System.getProperty("line.separator");
+
+    private static final int[] FAMILY_C = new int[]{
+            TYPE_JAVA, TYPE_JAVASCRIPT, TYPE_C, TYPE_H, TYPE_SCALA,
+            TYPE_CSS, TYPE_CPP, TYPE_CSHARP, TYPE_PHP, TYPE_GROOVY,
+            TYPE_BEANSHELL,
+    };
+    private static final int[] FAMILY_SGML = new int[]{
+            TYPE_XML, TYPE_HTML, TYPE_JSP, TYPE_FML,
+    };
+    private static final int[] FAMILY_SH = new int[]{
+            TYPE_PROPERTIES, TYPE_PYTHON, TYPE_SH, TYPE_RUBY, TYPE_PERL,
+            TYPE_TCL, TYPE_VISUAL_STUDIO_SOLUTION,
+    };
+    private static final int[] FAMILY_BAT = new int[]{
+            TYPE_BAT,
+    };
+    private static final int[] FAMILY_APT = new int[]{
+            TYPE_APT,
+    };
+    private static final int[] FAMILY_VELOCITY = new int[]{
+            TYPE_VM,
+    };
+    private static final int[] EXPECTS_HASH_PLING = new int[]{
+            TYPE_PYTHON, TYPE_SH, TYPE_RUBY, TYPE_PERL, TYPE_TCL
+    };
+    private static final int[] EXPECTS_AT_ECHO = new int[]{
+            TYPE_BAT,
+    };
+    private static final int[] EXPECTS_PACKAGE = new int[]{
+            TYPE_JAVA,
+    };
+    private static final int[] EXPECTS_XML_DECL = new int[]{
+            TYPE_XML,
+    };
+    private static final int[] EXPECTS_PHP_PI = new int[]{
+            TYPE_PHP,
+    };
+    private static final int[] EXPECTS_MSVSSF_HEADER = new int[]{
+            TYPE_VISUAL_STUDIO_SOLUTION,
+    };
+
+    private static final Map<String, Integer> EXT2TYPE = new HashMap<String, Integer>();
+
+    static {
+        // these arrays are used in Arrays.binarySearch so they must
+        // be sorted
+        Arrays.sort(FAMILY_C);
+        Arrays.sort(FAMILY_SGML);
+        Arrays.sort(FAMILY_SH);
+        Arrays.sort(FAMILY_BAT);
+        Arrays.sort(FAMILY_APT);
+        Arrays.sort(FAMILY_VELOCITY);
+
+        Arrays.sort(EXPECTS_HASH_PLING);
+        Arrays.sort(EXPECTS_AT_ECHO);
+        Arrays.sort(EXPECTS_PACKAGE);
+        Arrays.sort(EXPECTS_XML_DECL);
+        Arrays.sort(EXPECTS_MSVSSF_HEADER);
+
+        EXT2TYPE.put("apt", Integer.valueOf(TYPE_APT));
+        EXT2TYPE.put("asax", Integer.valueOf(TYPE_HTML));
+        EXT2TYPE.put("ascx", Integer.valueOf(TYPE_HTML));
+        EXT2TYPE.put("aspx", Integer.valueOf(TYPE_HTML));
+        EXT2TYPE.put("bat", Integer.valueOf(TYPE_BAT));
+        EXT2TYPE.put("bsh", Integer.valueOf(TYPE_BEANSHELL));
+        EXT2TYPE.put("c", Integer.valueOf(TYPE_C));
+        EXT2TYPE.put("cc", Integer.valueOf(TYPE_CPP));
+        EXT2TYPE.put("cmd", Integer.valueOf(TYPE_BAT));
+        EXT2TYPE.put("config", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("cpp", Integer.valueOf(TYPE_CPP));
+        EXT2TYPE.put("cs", Integer.valueOf(TYPE_CSHARP));
+        EXT2TYPE.put("csdproj", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("csproj", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("css", Integer.valueOf(TYPE_CSS));
+        EXT2TYPE.put("fxcop", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("fml", Integer.valueOf(TYPE_FML));
+        EXT2TYPE.put("groovy", Integer.valueOf(TYPE_GROOVY));
+        EXT2TYPE.put("h", Integer.valueOf(TYPE_H));
+        EXT2TYPE.put("hh", Integer.valueOf(TYPE_H));
+        EXT2TYPE.put("hpp", Integer.valueOf(TYPE_H));
+        EXT2TYPE.put("htm", Integer.valueOf(TYPE_HTML));
+        EXT2TYPE.put("html", Integer.valueOf(TYPE_HTML));
+        EXT2TYPE.put("java", Integer.valueOf(TYPE_JAVA));
+        EXT2TYPE.put("js", Integer.valueOf(TYPE_JAVASCRIPT));
+        EXT2TYPE.put("jsp", Integer.valueOf(TYPE_JSP));
+        EXT2TYPE.put("ndoc", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("nunit", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("php", Integer.valueOf(TYPE_PHP));
+        EXT2TYPE.put("pl", Integer.valueOf(TYPE_PERL));
+        EXT2TYPE.put("properties", Integer.valueOf(TYPE_PROPERTIES));
+        EXT2TYPE.put("py", Integer.valueOf(TYPE_PYTHON));
+        EXT2TYPE.put("rb", Integer.valueOf(TYPE_RUBY));
+        EXT2TYPE.put("rdf", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("resx", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("scala", Integer.valueOf(TYPE_SCALA));
+        EXT2TYPE.put("sh", Integer.valueOf(TYPE_SH));
+        EXT2TYPE.put("shfbproj", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("sln", Integer.valueOf(TYPE_VISUAL_STUDIO_SOLUTION));
+        EXT2TYPE.put("stylecop", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("svg", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("tcl", Integer.valueOf(TYPE_TCL));
+        EXT2TYPE.put("vbdproj", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("vbproj", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("vcproj", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("vm", Integer.valueOf(TYPE_VM));
+        EXT2TYPE.put("vsdisco", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("webinfo", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("xml", Integer.valueOf(TYPE_XML));
+        EXT2TYPE.put("xsl", Integer.valueOf(TYPE_XML));
+    }
+
+    private boolean isForced;
+
+    public AbstractLicenseAppender() {
+        super();
+    }
+
+    /**
+     * Append the default license header to the supplied document.
+     *
+     * @param document document to append to.
+     * @throws IOException if there is a problem while reading or writing the file
+     */
+    public void append(File document) throws IOException {
+        int type = getType(document);
+        if (type == TYPE_UNKNOWN) {
+            return;
+        }
+
+        boolean expectsHashPling = expectsHashPling(type);
+        boolean expectsAtEcho = expectsAtEcho(type);
+        boolean expectsPackage = expectsPackage(type);
+        boolean expectsXMLDecl = expectsXMLDecl(type);
+        boolean expectsPhpPI = expectsPhpPI(type);
+        boolean expectsMSVSSF = expectsMSVisualStudioSolutionFileHeader(type);
+
+        File newDocument = new File(document.getAbsolutePath() + ".new");
+        FileWriter writer = new FileWriter(newDocument);
+        try {
+            if (!attachLicense(writer, document,
+                    expectsHashPling, expectsAtEcho, expectsPackage,
+                    expectsXMLDecl, expectsPhpPI, expectsMSVSSF)) {
+                // Java File without package, XML file without decl or PHP
+                // file without PI
+                // for Java just place the license at the front, for XML add
+                // an XML decl first - don't know how to handle PHP
+                if (expectsPackage || expectsXMLDecl) {
+                    writer = new FileWriter(newDocument);
+                    if (expectsXMLDecl) {
+                        writer.write("<?xml version='1.0'?>");
+                        writer.write(LINE_SEP);
+                    }
+                    attachLicense(writer, document,
+                            false, false, false, false, false, false);
+                }
+            }
+        } finally {
+            IOUtils.closeQuietly(writer);
+        }
+
+        if (isForced) {
+            boolean deleted = document.delete();
+            if (!deleted) {
+                System.err.println("Could not delete original file to prepare renaming.");
+            }
+            boolean renamed = newDocument.renameTo(document.getAbsoluteFile());
+            if (!renamed) {
+                System.err.println("Failed to rename new file, original file remains unchanged.");
+            }
+        }
+    }
+
+    /**
+     * Write document's content to writer attaching the license using
+     * the given flags as hints for where to put it.
+     *
+     * @return whether the license has actually been written
+     */
+    private boolean attachLicense(Writer writer, File document,
+                                  boolean expectsHashPling,
+                                  boolean expectsAtEcho,
+                                  boolean expectsPackage,
+                                  boolean expectsXMLDecl,
+                                  boolean expectsPhpPI,
+                                  boolean expectsMSVSSF)
+            throws IOException {
+        boolean written = false;
+        FileInputStream fis = null;
+        BufferedReader br = null;
+        try {
+            fis = new FileInputStream(document);
+            br = new BufferedReader(new InputStreamReader(new BOMInputStream(fis)));
+
+            if (!expectsHashPling
+                    && !expectsAtEcho
+                    && !expectsPackage
+                    && !expectsXMLDecl
+                    && !expectsPhpPI
+                    && !expectsMSVSSF) {
+                written = true;
+                writer.write(getLicenseHeader(document));
+                writer.write(LINE_SEP);
+            }
+
+            String line;
+            boolean first = true;
+            while ((line = br.readLine()) != null) {
+                if (first && expectsHashPling) {
+                    written = true;
+                    doFirstLine(document, writer, line, "#!");
+                } else if (first && expectsAtEcho) {
+                    written = true;
+                    doFirstLine(document, writer, line, "@echo");
+                } else if (first && expectsMSVSSF) {
+                    written = true;
+                    if ("".equals(line)) {
+                        line = passThroughReadNext(writer, line, br);
+                    }
+                    if (line.startsWith("Microsoft Visual Studio Solution"
+                            + " File")) {
+                        line = passThroughReadNext(writer, line, br);
+                    }
+                    doFirstLine(document, writer, line, "# Visual ");
+                } else {
+                    writer.write(line);
+                    writer.write(LINE_SEP);
+                }
+
+                if (expectsPackage && line.startsWith("package ")) {
+                    written = true;
+                    writer.write(LINE_SEP);
+                    writer.write(getLicenseHeader(document));
+                    writer.write(LINE_SEP);
+                } else if (expectsXMLDecl && line.startsWith("<?xml ")) {
+                    written = true;
+                    writer.write(LINE_SEP);
+                    writer.write(getLicenseHeader(document));
+                    writer.write(LINE_SEP);
+                } else if (expectsPhpPI && line.startsWith("<?php")) {
+                    written = true;
+                    writer.write(LINE_SEP);
+                    writer.write(getLicenseHeader(document));
+                    writer.write(LINE_SEP);
+                }
+                first = false;
+            }
+        } finally {
+            IOUtils.closeQuietly(br);
+            IOUtils.closeQuietly(fis);
+            IOUtils.closeQuietly(writer);
+        }
+        return written;
+    }
+
+    /**
+     * Check first line for specified text and process.
+     */
+    private void doFirstLine(File document, Writer writer, String line, String lookfor) throws IOException {
+        if (line.startsWith(lookfor)) {
+            writer.write(line);
+            writer.write(LINE_SEP);
+            writer.write(getLicenseHeader(document));
+        } else {
+            writer.write(getLicenseHeader(document));
+            writer.write(line);
+            writer.write(LINE_SEP);
+        }
+    }
+
+    /**
+     * Detect the type of document.
+     *
+     * @param document to retrieve type from.
+     * @return not null
+     * TODO use existing mechanism to detect the type of a file and record it in the report output, thus we will not need this duplication here.
+     */
+    protected int getType(File document) {
+        String path = document.getPath();
+        int lastDot = path.lastIndexOf(DOT);
+        if (lastDot >= 0 && lastDot < path.length() - 1) {
+            String ext = path.substring(lastDot + 1);
+            Integer type = EXT2TYPE.get(ext);
+            if (type != null) {
+                return type.intValue();
+            }
+        }
+        return TYPE_UNKNOWN;
+    }
+
+    /**
+     * Set the force flag on this appender. If this flag is set
+     * to true then files will be modified directly, otherwise
+     * new files will be created alongside the existing files.
+     *
+     * @param force force flag.
+     */
+    public void setForce(boolean force) {
+        isForced = force;
+    }
+
+    /**
+     * @param document document to extract from.
+     * @return Get the license header of a document.
+     */
+    public abstract String getLicenseHeader(File document);
+
+    /**
+     * Get the first line of the license header formatted
+     * for the given type of file.
+     *
+     * @param type the type of file, see the TYPE_* constants
+     * @return not null
+     */
+    protected String getFirstLine(int type) {
+        if (isFamilyC(type)) {
+            return "/*" + LINE_SEP;
+        } else if (isFamilySGML(type)) {
+            return "<!--" + LINE_SEP;
+        }
+        return "";
+    }
+
+
+    /**
+     * Get the last line of the license header formatted
+     * for the given type of file.
+     *
+     * @param type the type of file, see the TYPE_* constants
+     * @return not null
+     */
+    protected String getLastLine(int type) {
+        if (isFamilyC(type)) {
+            return " */" + LINE_SEP;
+        } else if (isFamilySGML(type)) {
+            return "-->" + LINE_SEP;
+        }
+        return "";
+    }
+
+
+    /**
+     * Get a line of the license header formatted
+     * for the given type of file.
+     *
+     * @param type    the type of file, see the TYPE_* constants
+     * @param content the content for this line
+     * @return not null
+     */
+    protected String getLine(int type, String content) {
+        if (isFamilyC(type)) {
+            return " * " + content + LINE_SEP;
+        } else if (isFamilySGML(type)) {
+            return content + LINE_SEP;
+        } else if (isFamilyAPT(type)) {
+            return "~~ " + content + LINE_SEP;
+        } else if (isFamilySH(type)) {
+            return "# " + content + LINE_SEP;
+        } else if (isFamilyBAT(type)) {
+            return "rem " + content + LINE_SEP;
+        } else if (isFamilyVelocity(type)) {
+            return "## " + content + LINE_SEP;
+        }
+        return "";
+    }
+
+    private static boolean isFamilyC(int type) {
+        return isIn(FAMILY_C, type);
+    }
+
+    private static boolean isFamilySGML(int type) {
+        return isIn(FAMILY_SGML, type);
+    }
+
+    private static boolean isFamilySH(int type) {
+        return isIn(FAMILY_SH, type);
+    }
+
+    private static boolean isFamilyAPT(int type) {
+        return isIn(FAMILY_APT, type);
+    }
+
+    private static boolean isFamilyBAT(int type) {
+        return isIn(FAMILY_BAT, type);
+    }
+
+    private static boolean isFamilyVelocity(int type) {
+        return isIn(FAMILY_VELOCITY, type);
+    }
+
+    private static boolean expectsHashPling(int type) {
+        return isIn(EXPECTS_HASH_PLING, type);
+    }
+
+    private static boolean expectsAtEcho(int type) {
+        return isIn(EXPECTS_AT_ECHO, type);
+    }
+
+    private static boolean expectsPackage(int type) {
+        return isIn(EXPECTS_PACKAGE, type);
+    }
+
+    private static boolean expectsXMLDecl(int type) {
+        return isIn(EXPECTS_XML_DECL, type);
+    }
+
+    private static boolean expectsPhpPI(int type) {
+        return isIn(EXPECTS_PHP_PI, type);
+    }
+
+    private static boolean expectsMSVisualStudioSolutionFileHeader(int type) {
+        return isIn(EXPECTS_MSVSSF_HEADER, type);
+    }
+
+    private static boolean isIn(int[] arr, int key) {
+        return Arrays.binarySearch(arr, key) >= 0;
+    }
+
+    private String passThroughReadNext(Writer writer, String line,
+                                       BufferedReader br) throws IOException {
+        writer.write(line);
+        writer.write(LINE_SEP);
+        String l = br.readLine();
+        return l == null ? "" : l;
+    }
+}
+
+/**
+ * Stripped down version of Commons IO 2.0's BOMInputStream.
+ */
+class BOMInputStream extends FilterInputStream {
+    private int[] firstBytes;
+    private int fbLength, fbIndex, markFbIndex;
+    private boolean markedAtStart;
+    private static final int[][] BOMS = {
+            new int[]{0xEF, 0xBB, 0xBF}, // UTF-8
+            new int[]{0xFE, 0xFF}, // UTF-16BE
+            new int[]{0xFF, 0xFE}, // UTF-16LE
+    };
+
+    BOMInputStream(InputStream s) {
+        super(s);
+    }
+
+    @Override
+    public int read() throws IOException {
+        int b = readFirstBytes();
+        return (b >= 0) ? b : in.read();
+    }
+
+    @Override
+    public int read(byte[] buf, int off, int len) throws IOException {
+        int firstCount = 0;
+        int b = 0;
+        while ((len > 0) && (b >= 0)) {
+            b = readFirstBytes();
+            if (b >= 0) {
+                buf[off++] = (byte) (b & 0xFF);
+                len--;
+                firstCount++;
+            }
+        }
+        int secondCount = in.read(buf, off, len);
+        return (secondCount < 0)
+                ? (firstCount > 0 ? firstCount : -1) : firstCount + secondCount;
+    }
+
+    @Override
+    public int read(byte[] buf) throws IOException {
+        return read(buf, 0, buf.length);
+    }
+
+    private int readFirstBytes() throws IOException {
+        getBOM();
+        return (fbIndex < fbLength) ? firstBytes[fbIndex++] : -1;
+    }
+
+    private void getBOM() throws IOException {
+        if (firstBytes == null) {
+            int max = 0;
+            for (int[] BOM : BOMS) {
+                max = Math.max(max, BOM.length);
+            }
+            firstBytes = new int[max];
+            for (int i = 0; i < firstBytes.length; i++) {
+                firstBytes[i] = in.read();
+                fbLength++;
+                if (firstBytes[i] < 0) {
+                    break;
+                }
+
+                boolean found = find();
+                if (found) {
+                    fbLength = 0;
+                    break;
+                }
+            }
+        }
+    }
+
+    @Override
+    public synchronized void mark(int readlimit) {
+        markFbIndex = fbIndex;
+        markedAtStart = (firstBytes == null);
+        in.mark(readlimit);
+    }
+
+    @Override
+    public synchronized void reset() throws IOException {
+        fbIndex = markFbIndex;
+        if (markedAtStart) {
+            firstBytes = null;
+        }
+
+        in.reset();
+    }
+
+    @Override
+    public long skip(long n) throws IOException {
+        while ((n > 0) && (readFirstBytes() >= 0)) {
+            n--;
+        }
+        return in.skip(n);
+    }
+
+    private boolean find() {
+        for (int[] BOM : BOMS) {
+            if (matches(BOM)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean matches(int[] bom) {
+        if (bom.length != fbLength) {
+            return false;
+        }
+        for (int i = 0; i < bom.length; i++) {
+            if (bom[i] != firstBytes[i]) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/ApacheV2LicenseAppender.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/ApacheV2LicenseAppender.java
new file mode 100644
index 0000000..64509cc
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/ApacheV2LicenseAppender.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.annotation;
+
+import java.io.File;
+
+
+/**
+ * Add an Apache License V2 license header to a
+ * document. This appender does not check for the
+ * existence of an existing license header, it is assumed that either a second
+ * license header is intentional or that there is no license header present
+ * already.
+ */
+public class ApacheV2LicenseAppender extends AbstractLicenseAppender {
+
+    private String copyright;
+
+    /**
+     * Create a license appender with the standard ASF license header.
+     */
+    public ApacheV2LicenseAppender() {
+        super();
+    }
+
+    /**
+     * Create a license appender with the given copyright line. This should be of
+     * the form &quot;Copyright 2008 Foo&quot;
+     *
+     * @param copyright copyright line.
+     */
+    public ApacheV2LicenseAppender(String copyright) {
+        super();
+        this.copyright = copyright;
+    }
+
+    @Override
+    public String getLicenseHeader(File document) {
+        int type = getType(document);
+        StringBuilder sb = new StringBuilder();
+        if (copyright == null) {
+            sb.append(getFirstLine(type));
+            sb.append(getLine(type, "Licensed to the Apache Software Foundation (ASF) under one"));
+            sb.append(getLine(type, "or more contributor license agreements.  See the NOTICE file"));
+            sb.append(getLine(type, "distributed with this work for additional information"));
+            sb.append(getLine(type, "regarding copyright ownership.  The ASF licenses this file"));
+            sb.append(getLine(type, "to you under the Apache License, Version 2.0 (the"));
+            sb.append(getLine(type, "\"License\"); you may not use this file except in compliance"));
+            sb.append(getLine(type, "with the License.  You may obtain a copy of the License at"));
+            sb.append(getLine(type, ""));
+            sb.append(getLine(type, "  http://www.apache.org/licenses/LICENSE-2.0"));
+            sb.append(getLine(type, ""));
+            sb.append(getLine(type, "Unless required by applicable law or agreed to in writing,"));
+            sb.append(getLine(type, "software distributed under the License is distributed on an"));
+            sb.append(getLine(type, "\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY"));
+            sb.append(getLine(type, "KIND, either express or implied.  See the License for the"));
+            sb.append(getLine(type, "specific language governing permissions and limitations"));
+            sb.append(getLine(type, "under the License."));
+            sb.append(getLastLine(type));
+        } else {
+            sb.append(getFirstLine(type));
+            sb.append(getLine(type, copyright));
+            sb.append(getLine(type, ""));
+            sb.append(getLine(type, "Licensed under the Apache License, Version 2.0 (the \"License\");"));
+            sb.append(getLine(type, "you may not use this file except in compliance with the License."));
+            sb.append(getLine(type, "You may obtain a copy of the License at"));
+            sb.append(getLine(type, ""));
+            sb.append(getLine(type, "  http://www.apache.org/licenses/LICENSE-2.0"));
+            sb.append(getLine(type, ""));
+            sb.append(getLine(type, "Unless required by applicable law or agreed to in writing,"));
+            sb.append(getLine(type, "software distributed under the License is distributed on an"));
+            sb.append(getLine(type, "\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY"));
+            sb.append(getLine(type, "KIND, either express or implied.  See the License for the"));
+            sb.append(getLine(type, "specific language governing permissions and limitations"));
+            sb.append(getLine(type, "under the License."));
+            sb.append(getLastLine(type));
+        }
+        return sb.toString();
+    }
+
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/api/ContentType.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/ContentType.java
new file mode 100644
index 0000000..f179af0
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/ContentType.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.api;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Describe the MIME content type of a resource.
+ */
+public class ContentType {
+    private final String mediaType;
+    private final String subType;
+    private final Map<String, String> parameters;
+
+    /**
+     * Constructs content types, 
+     * performing an necessary conversions.
+     * @param mediaType not null
+     * @param subType not null
+     * @param parameters not null
+     */
+    public ContentType(final String mediaType, final String subType, final Map<String, String> parameters) {
+        super();
+        this.mediaType = mediaType.toLowerCase(Locale.US);
+        this.subType = subType.toLowerCase(Locale.US);
+        this.parameters = new HashMap<String, String>(parameters.size());
+        for (Map.Entry<String, String> entry : parameters.entrySet()) {
+            this.parameters.put(entry.getKey().toString().toLowerCase(Locale.US), entry.getValue());
+        }
+    }
+
+    /**
+     * Gets the media type,
+     * normalised to lower case.
+     * @return media type, not null
+     */
+    public String getMediaType() {
+        return mediaType;
+    }
+    
+    /**
+     * Gets the media sub type
+     * normalised to lower case
+     * @return sub type, not null
+     */
+    public String getSubType() {
+        return subType;
+    }
+    
+    /**
+     * Gets an immutable map
+     * containing all content type parameters 
+     * with keys normalised to lower case.
+     * @return not null
+     */
+    public Map<String, String> getParameters() {
+        return parameters;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/api/Document.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/Document.java
new file mode 100644
index 0000000..b0818d0
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/Document.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+
+import org.apache.rat.document.CompositeDocumentException;
+
+public interface Document {
+
+    String getName();
+    
+    /**
+     * Reads the content of this document.
+     * @return <code>Reader</code> not null
+     * @throws IOException if this document cannot be read
+     * @throws CompositeDocumentException if this document can only be read as
+     * a composite archive
+     */
+    Reader reader() throws IOException;
+    
+    /**
+     * Streams the document's contents.
+     * @return not null
+     * @throws IOException when stream could not be opened
+     */
+    InputStream inputStream() throws IOException;
+
+    /**
+     * Gets data describing this resource.
+     * @return not null
+     */
+    MetaData getMetaData();
+    
+    /**
+     * Is this a composite document?
+     * @return true if composite, false otherwise
+     */
+    boolean isComposite();
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MetaData.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MetaData.java
new file mode 100644
index 0000000..d2bf87c
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MetaData.java
@@ -0,0 +1,310 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.api;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Data about the subject.
+ */
+public class MetaData {
+
+    public static final String RAT_BASE_URL = "http://org/apache/rat/meta-data";
+    
+    // Document Categories
+    public static final String RAT_URL_DOCUMENT_CATEGORY = RAT_BASE_URL + "#FileCategory";
+    public static final String RAT_DOCUMENT_CATEGORY_VALUE_GENERATED = "GEN  ";
+    public static final String RAT_DOCUMENT_CATEGORY_VALUE_UNKNOWN = "?????";
+    public static final String RAT_DOCUMENT_CATEGORY_VALUE_ARCHIVE = "archive";
+    public static final String RAT_DOCUMENT_CATEGORY_VALUE_NOTICE = "notice";
+    public static final String RAT_DOCUMENT_CATEGORY_VALUE_BINARY = "binary";
+    public static final String RAT_DOCUMENT_CATEGORY_VALUE_STANDARD = "standard";
+    public static final Datum RAT_DOCUMENT_CATEGORY_DATUM_GENERATED = new Datum(RAT_URL_DOCUMENT_CATEGORY, RAT_DOCUMENT_CATEGORY_VALUE_GENERATED);
+    public static final Datum RAT_DOCUMENT_CATEGORY_DATUM_UNKNOWN = new Datum(RAT_URL_DOCUMENT_CATEGORY, RAT_DOCUMENT_CATEGORY_VALUE_UNKNOWN);
+    public static final Datum RAT_DOCUMENT_CATEGORY_DATUM_ARCHIVE = new Datum(RAT_URL_DOCUMENT_CATEGORY, RAT_DOCUMENT_CATEGORY_VALUE_ARCHIVE);
+    public static final Datum RAT_DOCUMENT_CATEGORY_DATUM_NOTICE = new Datum(RAT_URL_DOCUMENT_CATEGORY, RAT_DOCUMENT_CATEGORY_VALUE_NOTICE);
+    public static final Datum RAT_DOCUMENT_CATEGORY_DATUM_BINARY = new Datum(RAT_URL_DOCUMENT_CATEGORY, RAT_DOCUMENT_CATEGORY_VALUE_BINARY);
+    public static final Datum RAT_DOCUMENT_CATEGORY_DATUM_STANDARD = new Datum(RAT_URL_DOCUMENT_CATEGORY, RAT_DOCUMENT_CATEGORY_VALUE_STANDARD);
+    
+    // Header Categories
+    public static final String RAT_URL_HEADER_CATEGORY = RAT_BASE_URL + "#HeaderCategory";
+    
+    // License Family Categories
+    public static final String RAT_URL_LICENSE_FAMILY_CATEGORY= RAT_BASE_URL + "#LicenseFamilyCategory";
+    // Shortcuts used in report output, must be exactly 5 characters
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_GEN = "GEN  ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_UNKNOWN = "?????";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_ASL = "AL   ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_OASIS = "OASIS";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_W3CD = "W3CD ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_W3C = "W3C  ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_DOJO = "DOJO ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_TMF = "TMF  ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_GPL1 ="GPL1 ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_GPL2 ="GPL2 ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_GPL3 = "GPL3 ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_MIT = "MIT  ";
+    public static final String RAT_LICENSE_FAMILY_CATEGORY_VALUE_CDDL1 = "CDDL1";
+
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_GEN = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY, RAT_LICENSE_FAMILY_CATEGORY_VALUE_GEN);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_UNKNOWN = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY, RAT_LICENSE_FAMILY_CATEGORY_VALUE_UNKNOWN);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_ASL = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY, RAT_LICENSE_FAMILY_CATEGORY_VALUE_ASL);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_OASIS = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY, RAT_LICENSE_FAMILY_CATEGORY_VALUE_OASIS);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_W3CD = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY, RAT_LICENSE_FAMILY_CATEGORY_VALUE_W3CD);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_W3C = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY, RAT_LICENSE_FAMILY_CATEGORY_VALUE_W3C);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_DOJO = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY, RAT_LICENSE_FAMILY_CATEGORY_VALUE_DOJO);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_TMF = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY, RAT_LICENSE_FAMILY_CATEGORY_VALUE_TMF);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_GPL1 = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY,RAT_LICENSE_FAMILY_CATEGORY_VALUE_GPL1);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_GPL2 = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY,RAT_LICENSE_FAMILY_CATEGORY_VALUE_GPL2);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_GPL3 = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY,RAT_LICENSE_FAMILY_CATEGORY_VALUE_GPL3);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_MIT = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY,RAT_LICENSE_FAMILY_CATEGORY_VALUE_MIT);
+    public static final Datum RAT_LICENSE_FAMILY_CATEGORY_DATUM_CDLL1 = new Datum(RAT_URL_LICENSE_FAMILY_CATEGORY,RAT_LICENSE_FAMILY_CATEGORY_VALUE_CDDL1);
+
+    // License Family Standard Names
+    public static final String RAT_URL_LICENSE_FAMILY_NAME= RAT_BASE_URL + "#LicenseFamilyName";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_W3C_SOFTWARE_COPYRIGHT = "W3C Software Copyright";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_W3C_DOCUMENT_COPYRIGHT = "W3C Document Copyright";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_OASIS_OPEN_LICENSE = "OASIS Open License";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_MODIFIED_BSD_LICENSE = "Modified BSD License";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_APACHE_LICENSE_VERSION_2_0 = "Apache License Version 2.0";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_1 =
+            "GNU General Public License, version 1";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_2 =
+            "GNU General Public License, version 2";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_3 =
+            "GNU General Public License, version 3";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_MIT =
+            "The MIT License";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_CDDL1 =
+            "COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_ACADEMIC_FREE_LICENSE_VERSION_2_1 = "Academic Free License, Version 2.1";
+    public static final String RAT_LICENSE_FAMILY_NAME_VALUE_UNKNOWN = "?????";
+    public static final Datum RAT_LICENSE_FAMILY_NAME_DATUM_W3C_SOFTWARE_COPYRIGHT 
+        = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_W3C_SOFTWARE_COPYRIGHT);
+    public static final Datum RAT_LICENSE_FAMILY_NAME_DATUM_W3C_DOCUMENT_COPYRIGHT 
+        = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_W3C_DOCUMENT_COPYRIGHT);
+    public static final Datum RAT_LICENSE_FAMILY_NAME_DATUM_OASIS_OPEN_LICENSE 
+        = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_OASIS_OPEN_LICENSE);
+    public static final Datum RAT_LICENSE_FAMILY_NAME_DATUM_MODIFIED_BSD_LICENSE 
+        = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_MODIFIED_BSD_LICENSE);
+    public static final Datum RAT_LICENSE_FAMILY_NAME_DATUM_APACHE_LICENSE_VERSION_2_0
+        = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_APACHE_LICENSE_VERSION_2_0);
+    public static final Datum
+            RAT_LICENSE_FAMILY_NAME_DATUM_GPL_VERSION_1 = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_CATEGORY_VALUE_GPL1);
+    public static final Datum
+            RAT_LICENSE_FAMILY_NAME_DATUM_GPL_VERSION_2 = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_CATEGORY_VALUE_GPL2);
+    public static final Datum
+            RAT_LICENSE_FAMILY_NAME_DATUM_GPL_VERSION_3 = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_3);
+    public static final Datum
+            RAT_LICENSE_FAMILY_NAME_DATUM_MIT = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_MIT);
+    public static final Datum
+            RAT_LICENSE_FAMILY_NAME_DATUM_CDDL1 = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_CDDL1);
+    public static final Datum RAT_LICENSE_FAMILY_NAME_DATUM_ACADEMIC_FREE_LICENSE_VERSION_2_1
+        = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_ACADEMIC_FREE_LICENSE_VERSION_2_1);
+    public static final Datum RAT_LICENSE_FAMILY_NAME_DATUM_UNKNOWN
+        = new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_UNKNOWN); 
+    
+    // Header sample
+    public static final String RAT_URL_HEADER_SAMPLE = RAT_BASE_URL + "#HeaderSample";
+    
+    // License Approval
+    public static final String RAT_URL_APPROVED_LICENSE = RAT_BASE_URL + "#ApprovedLicense";
+    public static final String RAT_APPROVED_LICENSE_VALUE_TRUE = Boolean.TRUE.toString();
+    public static final String RAT_APPROVED_LICENSE_VALUE_FALSE = Boolean.FALSE.toString();
+    public static final Datum RAT_APPROVED_LICENSE_DATIM_TRUE = new Datum(RAT_URL_APPROVED_LICENSE, RAT_APPROVED_LICENSE_VALUE_TRUE);
+    public static final Datum RAT_APPROVED_LICENSE_DATIM_FALSE = new Datum(RAT_URL_APPROVED_LICENSE, RAT_APPROVED_LICENSE_VALUE_FALSE);
+    
+    private ContentType contentType;
+    /** 
+     * Only likely to be a small quantity of data 
+     * so trade some performance for simplicity.
+     */
+    private final List<Datum> data;
+
+    public MetaData() {
+        this(null);
+    }
+    
+    public MetaData(final ContentType contentType) {
+        this.contentType = contentType;
+        this.data = new ArrayList<Datum>(16);
+    }
+    
+    /**
+     * Gets the content type for the subject.
+     * @return or null when the type is unknown
+     */
+    public ContentType getContentType() {
+        return contentType;
+    }
+    
+    /**
+     * Sets the content type for this subject.
+     * @param contentType <code>ContentType</code>,
+     * or null when the content type is unknown
+     */
+    public void setContentType(final ContentType contentType) {
+        this.contentType = contentType;
+    }
+    
+    /**
+     * Gets all data.
+     * @return unmodifiable view of the meta data.
+     */
+    public Collection<Datum> getData() {
+        return Collections.unmodifiableCollection(data);
+    }
+    
+    /**
+     * Adds a new datum.
+     * Existing data with the same name are not replaced.
+     * @param datum datum to add.
+     * @see #set(org.apache.rat.api.MetaData.Datum)
+     */
+    public void add(final Datum datum) {
+       data.add(datum); 
+    }
+    
+    /**
+     * Puts in a new datum replacing any existing data.
+     * Any current data matching the name are removed.
+     * @param datum not null
+     * @see #add(org.apache.rat.api.MetaData.Datum)
+     */
+    public void set(final Datum datum) {
+       clear(datum.getName()); 
+       add(datum);
+    }
+    
+    /**
+     * Gets the first datum matching the given name.
+     * @param name not null
+     * @return the matching datum first added when there is any matching data,
+     * null otherwise
+     */
+    public Datum get(final String name) {
+        Datum result = null;
+        for (Datum next : data) {
+            if (name.equals(next.getName())) {
+                result = next;
+                break;
+            }
+        }
+        return result;
+    }
+    
+    /**
+     * Gets the value of the first datum matching the given name.
+     * @param name not null
+     * @return the value of the matchin datum first added when there is any matching data,
+     * null otherwise
+     */
+    public String value(final String name) {
+        final Datum datum = get(name);
+        final String result;
+        if (datum == null) {
+            result = null;
+        } else {
+            result = datum.getValue();
+        }
+        return result;
+    }
+    
+    /**
+     * Removes all data matching the given name.
+     * @param name not null
+     * @return true if any data match, false otherwise
+     */
+    public boolean clear(final String name) {
+        boolean dataRemoved = false;
+        for (final Iterator<Datum> it = data.iterator();it.hasNext();) {
+            final Datum datum = it.next();
+            if (datum.getName().equals(name)) {
+                it.remove();
+                dataRemoved = true;
+            }
+        }
+        return dataRemoved;
+    }
+    
+    /**
+     * Clears all data.
+     */
+    public void clear() {
+        data.clear();
+        this.contentType = null;
+    }
+    
+    /**
+     * A datum.
+     */
+    public static final class Datum {
+        private final String name;
+        private final String value;
+        
+        /**
+         * Constructs a datum.
+         * @param name not null
+         * @param value not null
+         */
+        public Datum(final String name, final String value) {
+            super();
+            this.name = name;
+            this.value = value;
+        }
+        
+        /**
+         * Gets the name of the data type.
+         * To avoid collisions, it is recommended that URLs are used.
+         * @return not null
+         */
+        public String getName() {
+            return name;
+        }
+     
+        /**
+         * Data type value.
+         * @return not null
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Constructs a <code>String</code> with all attributes
+         * in name = value format.
+         *
+         * @return a <code>String</code> representation 
+         * of this object.
+         */
+        @Override
+        public String toString()
+        {
+            return "Datum [ "
+                + "name ='" + this.name + "',"
+                + "value ='" + this.value + " "
+                + "']";
+        }
+    }
+}
+ 
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MimeTyper.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MimeTyper.java
new file mode 100644
index 0000000..9e85f1d
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MimeTyper.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Discovers the mime type of content.
+ */
+public interface MimeTyper {
+
+    /**
+     * Guesses the mime type for the given content.
+     * @param inputStream not null
+     * @param name possibly null
+     * @return guessed content type, not null.
+     * @throws IOException in case of I/O errors.
+     */
+    ContentType type(final InputStream inputStream, String name) throws IOException;
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/api/RatException.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/RatException.java
new file mode 100644
index 0000000..9d5c2c3
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/RatException.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.api;
+
+public class RatException extends Exception {
+
+    private static final long serialVersionUID = 4940711222435919034L;
+
+    public RatException() {
+        super();
+    }
+
+    public RatException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public RatException(String message) {
+        super(message);
+    }
+
+    public RatException(Throwable cause) {
+        super(cause);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/api/package.html b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/package.html
new file mode 100644
index 0000000..5ffbf43
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/api/package.html
@@ -0,0 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<body><p>Key abstractions. A good place to start.</p></body>
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/config/AddLicenseHeaders.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/AddLicenseHeaders.java
new file mode 100644
index 0000000..523aa6e
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/AddLicenseHeaders.java
@@ -0,0 +1,44 @@
+package org.apache.rat.config;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Value of addLicenseHeaders configuration option.
+ */
+public enum AddLicenseHeaders {
+    TRUE, //
+    FALSE, //
+    FORCED;
+
+    private static final char SEPARATOR = '|';
+
+    /**
+     * @return pretty-printed list of all available options.
+     */
+    public static String getValuesForHelp() {
+        StringBuilder sb = new StringBuilder();
+        for(AddLicenseHeaders headerOption : AddLicenseHeaders.values()) {
+            sb.append(headerOption.name().toLowerCase()).append(SEPARATOR);
+        }
+        // remove last separator
+        sb.setLength(sb.length() - 1);
+        return sb.toString();
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/config/ConfigurationUtil.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/ConfigurationUtil.java
new file mode 100644
index 0000000..482345e
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/ConfigurationUtil.java
@@ -0,0 +1,44 @@
+package org.apache.rat.config;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.rat.license.ILicenseFamily;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ConfigurationUtil {
+    /**
+     * Extract license names from the given license families.
+     *
+     * @param approvedLicenses list of license family implementations.
+     * @return extracted names of given license families.
+     */
+    public static final List<String> toNames(final ILicenseFamily[] approvedLicenses) {
+        List<String> names = new ArrayList<String>();
+        if (approvedLicenses != null && approvedLicenses.length > 0) {
+            for (ILicenseFamily approvedFamily : approvedLicenses) {
+                names.add(approvedFamily.getFamilyName());
+            }
+        }
+        return names;
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/config/ReportFormat.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/ReportFormat.java
new file mode 100644
index 0000000..a0635b4
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/ReportFormat.java
@@ -0,0 +1,33 @@
+package org.apache.rat.config;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+public enum ReportFormat {
+    PLAIN,
+
+    XML;
+
+    public boolean is(String optionGiven) {
+        if (optionGiven == null || optionGiven.length() == 0) {
+            return false;
+        }
+        return name().equalsIgnoreCase(optionGiven);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/config/SourceCodeManagementSystems.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/SourceCodeManagementSystems.java
new file mode 100644
index 0000000..195dbef
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/SourceCodeManagementSystems.java
@@ -0,0 +1,105 @@
+package org.apache.rat.config;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import java.util.ArrayList;
+import java.util.List;
+
+public enum SourceCodeManagementSystems {
+    SUBVERSION(".svn", null), //
+    GIT(".git", ".gitignore"), //
+    BAZAAR(".bzr", ".bzrignore"), //
+    MERCURIAL(".hg", ".hgignore"), //
+    CVS("CVS", ".cvsignore")
+    //
+    ;
+
+    /**
+     * Technical directory of that SCM which contains SCM internals.
+     */
+    private String directory;
+    /**
+     * If there is a external way to configure files to be ignored: name of this
+     * file, <code>null</code> otherwise.
+     */
+    private String ignoreFile;
+
+    private SourceCodeManagementSystems(String directory, String ignoreFile) {
+        this.directory = directory;
+        this.ignoreFile = ignoreFile;
+    }
+
+    /**
+     * If an ignore file exists it's added as
+     * 
+     * <pre>
+     * *&frasl;.scm&frasl;*
+     * </pre>
+     * 
+     * . Otherwise the technical directory of the SCM is added as
+     * 
+     * <pre>
+     * **&frasl;.scmignore
+     * </pre>
+     * 
+     * to be used as exclusion during RAT runs.
+     * 
+     * @return list of excludes if the current SCM is used.
+     */
+    public List<String> getExclusions() {
+        List<String> excludes = new ArrayList<String>(2);
+
+        if (hasIgnoreFile()) {
+            excludes.add("**/" + ignoreFile);
+        }
+        excludes.add("*/" + directory + "/*");
+
+        return excludes;
+    }
+
+    public boolean hasIgnoreFile() {
+        return ignoreFile != null && ignoreFile.length() != 0;
+    }
+
+    /**
+     * Calls {@link #getExclusions()} on each SCM to generate a global list of
+     * exclusions to be used during RAT runs.
+     * 
+     * @return the global list of exclusions usable for all known SCM.
+     */
+    public static List<String> getPluginExclusions() {
+        List<String> pluginExclusions = new ArrayList<String>();
+
+        for (SourceCodeManagementSystems scm : values()) {
+            pluginExclusions.addAll(scm.getExclusions());
+        }
+
+        return pluginExclusions;
+    }
+
+    /**
+     * Maybe <code>null</code>, check before with
+     * @see #hasIgnoreFile()
+     *
+     * @return the ignore file of the SCM.
+     */
+    public String getIgnoreFile() {
+        return ignoreFile;
+    }
+}
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/config/package.html b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/package.html
new file mode 100644
index 0000000..3c8d8d4
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/config/package.html
@@ -0,0 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<body><p>Contains source code management / revision control information used during plugin runs.</p></body>
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/CompositeDocumentException.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/CompositeDocumentException.java
new file mode 100644
index 0000000..a3d1d53
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/CompositeDocumentException.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document;
+
+import java.io.IOException;
+
+/**
+ * Indicates that the document is a composite archive 
+ * and cannot be read.
+ */
+public class CompositeDocumentException extends IOException {
+
+    private static final long serialVersionUID = -8874256971728263295L;
+
+    public CompositeDocumentException() {
+        super("This document must be read as an archive.");
+    }
+
+    public CompositeDocumentException(String s) {
+        super(s);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/IDocumentAnalyser.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/IDocumentAnalyser.java
new file mode 100644
index 0000000..ec02ce0
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/IDocumentAnalyser.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document;
+
+import org.apache.rat.api.Document;
+
+
+public interface IDocumentAnalyser {
+
+    void analyse(Document document) throws RatDocumentAnalysisException;
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/RatDocumentAnalysisException.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/RatDocumentAnalysisException.java
new file mode 100644
index 0000000..5ffa5a1
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/RatDocumentAnalysisException.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document;
+
+public class RatDocumentAnalysisException extends Exception {
+
+    private static final long serialVersionUID = 2339068944003517510L;
+
+    public RatDocumentAnalysisException() {
+    }
+
+    public RatDocumentAnalysisException(String msg) {
+        super(msg);
+    }
+
+    public RatDocumentAnalysisException(Throwable cause) {
+        super(cause);
+    }
+
+    public RatDocumentAnalysisException(String msg, Throwable cause) {
+        super(msg, cause);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/ToNameTransformer.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/ToNameTransformer.java
new file mode 100644
index 0000000..b2322d4
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/ToNameTransformer.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document;
+
+import org.apache.commons.collections.Transformer;
+import org.apache.rat.api.Document;
+
+public class ToNameTransformer implements Transformer {
+
+    private static final Transformer TO_NAME_TRANSFORMER = new ToNameTransformer();
+    
+    public static final Transformer toNameTransformer() {
+        return TO_NAME_TRANSFORMER;
+    }
+    
+    public Object transform(Object subject) {
+        Object result = null;
+        if (subject != null && subject instanceof Document) {
+            Document location = (Document) subject;
+            result = location.getName();
+        }
+        return result;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/UnsuitableDocumentException.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/UnsuitableDocumentException.java
new file mode 100644
index 0000000..e112706
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/UnsuitableDocumentException.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document;
+
+/**
+ * Indicates that the document was unsuitable for analysis.
+ *
+ */
+public class UnsuitableDocumentException extends RatDocumentAnalysisException {
+
+    private static final long serialVersionUID = 4202800209654402733L;
+
+    public UnsuitableDocumentException() {
+        super("This document is unsuitable for analysis");
+    }
+
+    public UnsuitableDocumentException(String msg, Throwable cause) {
+        super(msg, cause);
+    }
+
+    public UnsuitableDocumentException(String msg) {
+        super(msg);
+    }
+
+    public UnsuitableDocumentException(Throwable cause) {
+        super(cause);
+    }
+
+    
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/AbstractMonolithicDocument.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/AbstractMonolithicDocument.java
new file mode 100644
index 0000000..302e372
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/AbstractMonolithicDocument.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+
+/**
+ * Abstract base class for monolithic documents.
+ */
+public abstract class AbstractMonolithicDocument implements Document {
+    private final String name;
+    private final MetaData metaData;
+
+    public AbstractMonolithicDocument(String pName) {
+        name = pName;
+        this.metaData = new MetaData();
+    }
+
+    public boolean isComposite() {
+        return false;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public MetaData getMetaData() {
+        return metaData;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/ArchiveEntryDocument.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/ArchiveEntryDocument.java
new file mode 100644
index 0000000..f7c1064
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/ArchiveEntryDocument.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+
+package org.apache.rat.document.impl;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.api.RatException;
+
+public class ArchiveEntryDocument implements Document {
+
+    private byte[] contents;
+    private final String name;
+
+    private final MetaData metaData = new MetaData();
+
+    public ArchiveEntryDocument(File file, byte[] contents) throws RatException {
+        super();
+        name = DocumentImplUtils.toName(file);
+        this.contents = contents;
+    }
+
+    public MetaData getMetaData() {
+        return metaData;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public InputStream inputStream() throws IOException {
+        return new ByteArrayInputStream(contents);
+    }
+
+    public boolean isComposite() {
+        return DocumentImplUtils.isZipStream(new ByteArrayInputStream(contents));
+    }
+
+    public Reader reader() throws IOException {
+        return new InputStreamReader(new ByteArrayInputStream(contents));
+    }
+
+
+    /**
+     * Representations suitable for logging.
+     * @return a <code>String</code> representation 
+     * of this object.
+     */
+    @Override
+    public String toString()
+    {
+        return "TarEntryDocument ( "
+            + "name = " + this.name + " "
+            + "metaData = " + this.metaData + " "
+            + " )";
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/DocumentImplUtils.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/DocumentImplUtils.java
new file mode 100644
index 0000000..6351398
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/DocumentImplUtils.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.zip.ZipException;
+import java.util.zip.ZipInputStream;
+
+import org.apache.commons.io.IOUtils;
+
+public class DocumentImplUtils {
+
+    public final static String toName(File file) {
+        String path = file.getPath();
+        String normalisedPath = path.replace('\\', '/');
+        return normalisedPath;
+    }
+    
+    public static final boolean isZipStream(InputStream stream) {
+        ZipInputStream zip = new ZipInputStream(stream);
+        try {
+            zip.getNextEntry();
+            return true;
+        } catch (ZipException e) {
+            return false;
+        } catch (IOException e) {
+            return false;
+        } finally {
+            IOUtils.closeQuietly(zip);
+        }
+    }
+
+    public static final boolean isZip(File file) {
+        try {
+            return isZipStream(new FileInputStream(file));
+        } catch (IOException e) {
+            return false;
+        }
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/FileDocument.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/FileDocument.java
new file mode 100644
index 0000000..d8d3232
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/FileDocument.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+/**
+ * Document wrapping a file of undetermined composition.
+ *
+ */
+public class FileDocument implements Document {
+
+    private final File file;
+    private final String name;
+    private final MetaData metaData = new MetaData();
+    
+    public FileDocument(final File file) {
+        super();
+        this.file = file;
+        name = DocumentImplUtils.toName(file);
+    }
+
+    public boolean isComposite() {
+        return DocumentImplUtils.isZip(file);
+    }
+
+    public Reader reader() throws IOException {
+        return new FileReader(file);
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public MetaData getMetaData() {
+        return metaData;
+    }    
+    
+    public InputStream inputStream() throws IOException {
+        return new FileInputStream(file);
+    }
+
+    /**
+     * Representations suitable for logging.
+     * @return a <code>String</code> representation 
+     * of this object.
+     */
+    @Override
+    public String toString()
+    {
+        return "FileDocument ( "
+            + "file = " + this.file + " "
+            + "name = " + this.name + " "
+            + "metaData = " + this.metaData + " "
+            + " )";
+    }
+    
+    
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/MonolithicFileDocument.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/MonolithicFileDocument.java
new file mode 100644
index 0000000..16e9e4e
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/MonolithicFileDocument.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.document.impl;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.URL;
+
+import org.apache.rat.api.Document;
+
+
+public class MonolithicFileDocument extends AbstractMonolithicDocument {
+    private static final String UTF_8 = "UTF-8";
+
+    private static final String FILE_URL_PREFIX = "file";
+
+    private final File file;
+
+    /**
+     * @return Creates and returns a new instance.
+     *
+     * @param url The document is read from the given URL.
+     */
+    public static Document newInstance(final URL url) {
+        if (FILE_URL_PREFIX.equals(url.getProtocol())) {
+            final File f = new File(url.getFile());
+            return new MonolithicFileDocument(f);
+        }
+        return new AbstractMonolithicDocument(url.toExternalForm()){
+            public Reader reader() throws IOException {
+                return new InputStreamReader(inputStream(), UTF_8);
+           }
+
+            public InputStream inputStream() throws IOException {
+                return url.openStream();
+            }
+        };
+    }
+
+     public MonolithicFileDocument(final File file) {
+        super(DocumentImplUtils.toName(file));
+        this.file = file;
+    }
+
+     public Reader reader() throws IOException {
+        return new FileReader(file);
+    }
+
+     public InputStream inputStream() throws IOException {
+        return new FileInputStream(file);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java
new file mode 100644
index 0000000..d3d44e6
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.document.impl.guesser;
+
+import java.util.Locale;
+
+import org.apache.rat.api.Document;
+
+public class ArchiveGuesser {
+
+    private static final String DOT = ".";
+
+    private static final String[] ARCHIVE_EXTENSIONS = {
+        "jar", "gz",
+        "zip", "tar",
+        "bz", "bz2",
+        "rar", "war",
+        "ear", "mar",
+        "par", "xar",
+        "odb", "odf",
+        "odg", "odp",
+        "ods", "odt",
+        "har", "sar",
+        "wsr",
+    };
+
+    /**
+     * @param document the current document.
+     * @return whether the given document is an archive.
+     */
+    public static final boolean isArchive(final Document document) {
+        return isArchive(document.getName());
+    }
+
+    /**
+     * @return Is a file by that name an archive?
+     * @param name file name to check against.
+     */
+    public static final boolean isArchive(final String name) {
+        if (name == null) {return false;}
+        String nameToLower = name.toLowerCase(Locale.US);
+        for (int i = 0; i < ArchiveGuesser.ARCHIVE_EXTENSIONS.length; i++) {
+            if (nameToLower.endsWith(DOT + ArchiveGuesser.ARCHIVE_EXTENSIONS[i])) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java
new file mode 100644
index 0000000..44f7b1d
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java
@@ -0,0 +1,363 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.document.impl.guesser;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rat.api.Document;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CoderResult;
+import java.nio.charset.CodingErrorAction;
+import java.nio.charset.UnsupportedCharsetException;
+import java.util.Locale;
+
+/**
+ * TODO: factor into MIME guesser and MIME-&gt;binary guesser
+ */
+public class BinaryGuesser {
+
+    private static final String DOT = ".";
+
+    static final String FILE_ENCODING = "file.encoding";
+    private static Charset CHARSET_FROM_FILE_ENCODING_OR_UTF8 = getFileEncodingOrUTF8AsFallback();
+
+    private static boolean isBinaryDocument(Document document) {
+        boolean result = false;
+        InputStream stream = null;
+        try {
+            stream = document.inputStream();
+            result = isBinary(stream);
+        } catch (IOException e) {
+            result = false;
+        } finally {
+            IOUtils.closeQuietly(stream);
+        }
+        return result;
+    }
+
+    private static boolean isBinary(CharSequence taste) {
+        int highBytes = 0;
+        final int length = taste.length();
+        for (int i = 0; i < length; i++) {
+            char c = taste.charAt(i);
+            if (c > BinaryGuesser.NON_ASCII_THREASHOLD
+                    || c <= BinaryGuesser.ASCII_CHAR_THREASHOLD) {
+                highBytes++;
+            }
+        }
+        return highBytes * BinaryGuesser.HIGH_BYTES_RATIO
+                > length * BinaryGuesser.TOTAL_READ_RATIO;
+    }
+
+    /**
+     * @param in the file to check.
+     * @return Do the first few bytes of the stream hint at a binary file?
+     * <p>Any IOException is swallowed internally and the test returns
+     * false.</p>
+     * <p>This method may lead to false negatives if the reader throws
+     * an exception because it can't read characters according to the
+     * reader's encoding from the underlying stream.</p>
+     */
+    public static boolean isBinary(Reader in) {
+        char[] taste = new char[100];
+        try {
+            int bytesRead = in.read(taste);
+            if (bytesRead > 0) {
+                return isBinary(new String(taste, 0, bytesRead));
+            }
+        } catch (IOException e) {
+            // SWALLOW 
+        }
+        return false;
+    }
+
+    /**
+     * @param in the file to check.
+     * @return Do the first few bytes of the stream hint at a binary file?
+     * <p>Any IOException is swallowed internally and the test returns
+     * false.</p>
+     * <p>This method will try to read bytes from the stream and
+     * translate them to characters according to the platform's
+     * default encoding.  If any bytes can not be translated to
+     * characters it will assume the original data must be binary and
+     * return true.</p>
+     */
+    public static boolean isBinary(InputStream in) {
+        try {
+            byte[] taste = new byte[200];
+            int bytesRead = in.read(taste);
+            if (bytesRead > 0) {
+                ByteBuffer bytes = ByteBuffer.wrap(taste, 0, bytesRead);
+                CharBuffer chars = CharBuffer.allocate(2 * bytesRead);
+                CharsetDecoder cd = CHARSET_FROM_FILE_ENCODING_OR_UTF8.newDecoder()
+                        .onMalformedInput(CodingErrorAction.REPORT)
+                        .onUnmappableCharacter(CodingErrorAction.REPORT);
+                while (bytes.remaining() > 0) {
+                    CoderResult res = cd.decode(bytes, chars, true);
+                    if (res.isMalformed() || res.isUnmappable()) {
+                        return true;
+                    } else if (res.isOverflow()) {
+                        chars.limit(chars.position());
+                        chars.rewind();
+                        int c = chars.capacity() * 2;
+                        CharBuffer on = CharBuffer.allocate(c);
+                        on.put(chars);
+                        chars = on;
+                    }
+                }
+                chars.limit(chars.position());
+                chars.rewind();
+                return isBinary(chars);
+            }
+        } catch (IOException e) {
+            // SWALLOW 
+        }
+        return false;
+    }
+
+    static Charset getFileEncodingOrUTF8AsFallback() {
+        try {
+            return Charset.forName(System.getProperty(FILE_ENCODING));
+        } catch (UnsupportedCharsetException e) {
+            return Charset.forName("UTF-8");
+        }
+    }
+
+    /**
+     * @param name current file name.
+     * @return whether given name is binary.
+     */
+    public static final boolean isBinaryData(final String name) {
+        return extensionMatches(name, DATA_EXTENSIONS);
+    }
+
+    /**
+     * @param name current file name.
+     * @return Is a file by that name a known non-binary file?
+     */
+    public static final boolean isNonBinary(final String name) {
+        if (name == null) {
+            return false;
+        }
+        return extensionMatches(name.toUpperCase(Locale.US),
+                BinaryGuesser.NON_BINARY_EXTENSIONS);
+    }
+
+    /**
+     * @param name current file name.
+     * @return Is a file by that name an executable/binary file?
+     */
+    public static final boolean isExecutable(final String name) {
+        return name.equals(BinaryGuesser.JAVA) || extensionMatches(name, EXE_EXTENSIONS)
+                || containsExtension(name, EXE_EXTENSIONS);
+    }
+
+    public static boolean containsExtension(final String name,
+                                            final String[] exts) {
+        for (int i = 0; i < exts.length; i++) {
+            if (name.contains(DOT + exts[i] + DOT)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public static boolean extensionMatches(final String name,
+                                           final String[] exts) {
+        for (int i = 0; i < exts.length; i++) {
+            if (name.endsWith(DOT + exts[i])) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public static boolean isBytecode(final String name) {
+        return BinaryGuesser.extensionMatches(name, BYTECODE_EXTENSIONS);
+    }
+
+    public static final boolean isImage(final String name) {
+        return BinaryGuesser.extensionMatches(name, IMAGE_EXTENSIONS);
+    }
+
+    public static final boolean isKeystore(final String name) {
+        return BinaryGuesser.extensionMatches(name, KEYSTORE_EXTENSIONS);
+    }
+
+    /**
+     * @param name file name.
+     * @return Is a file by that name a known binary file?
+     */
+    public static final boolean isBinary(final String name) {
+        if (name == null) {
+            return false;
+        }
+        String normalisedName = GuessUtils.normalise(name);
+        return BinaryGuesser.JAR_MANIFEST.equalsIgnoreCase(name) || BinaryGuesser.isImage(normalisedName)
+                || BinaryGuesser.isKeystore(normalisedName) || BinaryGuesser.isBytecode(normalisedName)
+                || BinaryGuesser.isBinaryData(normalisedName) || BinaryGuesser.isExecutable(normalisedName);
+    }
+
+    private static final String[] DATA_EXTENSIONS = {
+            "DAT", "DOC",
+            "NCB", "IDB",
+            "SUO", "XCF",
+            "RAJ", "CERT",
+            "KS", "TS",
+            "ODP", "SWF"
+    };
+
+    private static final String[] EXE_EXTENSIONS = {
+            "EXE", "DLL",
+            "LIB", "SO",
+            "A", "EXP",
+    };
+
+    private static final String[] KEYSTORE_EXTENSIONS = {
+            "JKS", "KEYSTORE", "PEM", "CRL", "TRUSTSTORE"
+    };
+
+    private static final String[] IMAGE_EXTENSIONS = {
+            "PNG", "PDF",
+            "GIF", "GIFF",
+            "TIF", "TIFF",
+            "JPG", "JPEG",
+            "ICO", "ICNS",
+            "PSD",
+    };
+
+    private static final String[] BYTECODE_EXTENSIONS = {
+            "CLASS", "PYD",
+            "OBJ", "PYC",
+    };
+
+    /**
+     * Based on http://www.apache.org/dev/svn-eol-style.txt
+     */
+    private static final String[] NON_BINARY_EXTENSIONS = {
+            "AART",
+            "AC",
+            "AM",
+            "BAT",
+            "C",
+            "CAT",
+            "CGI",
+            "CLASSPATH",
+            "CMD",
+            "CONFIG",
+            "CPP",
+            "CSS",
+            "CWIKI",
+            "DATA",
+            "DCL",
+            "DTD",
+            "EGRM",
+            "ENT",
+            "FT",
+            "FN",
+            "FV",
+            "GRM",
+            "G",
+            "H",
+            "HTACCESS",
+            "HTML",
+            "IHTML",
+            "IN",
+            "JAVA",
+            "JMX",
+            "JSP",
+            "JS",
+            "JUNIT",
+            "JX",
+            "MANIFEST",
+            "M4",
+            "MF",
+            "MF",
+            "META",
+            "MOD",
+            "N3",
+            "PEN",
+            "PL",
+            "PM",
+            "POD",
+            "POM",
+            "PROJECT",
+            "PROPERTIES",
+            "PY",
+            "RB",
+            "RDF",
+            "RNC",
+            "RNG",
+            "RNX",
+            "ROLES",
+            "RSS",
+            "SH",
+            "SQL",
+            "SVG",
+            "TLD",
+            "TXT",
+            "TYPES",
+            "VM",
+            "VSL",
+            "WSDD",
+            "WSDL",
+            "XARGS",
+            "XCAT",
+            "XCONF",
+            "XEGRM",
+            "XGRM",
+            "XLEX",
+            "XLOG",
+            "XMAP",
+            "XML",
+            "XROLES",
+            "XSAMPLES",
+            "XSD",
+            "XSL",
+            "XSLT",
+            "XSP",
+            "XUL",
+            "XWEB",
+            "XWELCOME",
+    };
+    public static final String JAR_MANIFEST = "MANIFEST.MF";
+    public static final String JAVA = "JAVA";
+    public static final int HIGH_BYTES_RATIO = 100;
+    public static final int TOTAL_READ_RATIO = 30;
+    public static final int NON_ASCII_THREASHOLD = 256;
+    public static final int ASCII_CHAR_THREASHOLD = 8;
+
+    public static final boolean isBinary(final Document document) {
+        // TODO: reimplement the binary test algorithm?
+        // TODO: more efficient to move into standard analysis
+        // TODO: then use binary as default
+        return isBinary(document.getName())
+                ||
+                // try a taste
+                isBinaryDocument(document);
+    }
+
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/GuessUtils.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/GuessUtils.java
new file mode 100644
index 0000000..d56a672
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/GuessUtils.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl.guesser;
+
+import java.util.Locale;
+
+import org.apache.commons.lang.StringUtils;
+
+public class GuessUtils {
+    
+    private static final String[] SEPARATORS = {"/", "\\"};
+    
+    /**
+     * Converts name to upper case and strips any path.
+     * @param name not null
+     * @return not null
+     */
+    public static final String normalise(final String name) {
+        String result = name.toUpperCase(Locale.US);
+        final int lastSeparatorIndex = StringUtils.lastIndexOfAny(result, SEPARATORS);
+        final int length = result.length();
+        if (lastSeparatorIndex >= 0 && lastSeparatorIndex < length) {
+            result = result.substring(lastSeparatorIndex + 1);
+        }
+        return result;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java
new file mode 100644
index 0000000..d0b9901
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.document.impl.guesser;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.rat.api.Document;
+
+public class NoteGuesser {
+
+    private static final String DOT = ".";
+
+    private static final String[] NOTE_FILE_NAMES = {
+        "NOTICE", "LICENSE",
+        "LICENSE.TXT", "NOTICE.TXT",
+        "INSTALL", "INSTALL.TXT",
+        "README", "README.TXT",
+        "NEWS", "NEWS.TXT",
+        "AUTHOR", "AUTHOR.TXT",
+        "AUTHORS", "AUTHORS.txt",
+        "CHANGELOG", "CHANGELOG.TXT",
+        "DISCLAIMER", "DISCLAIMER.TXT",
+        "KEYS", "KEYS.TXT",
+        "RELEASE-NOTES", "RELEASE-NOTES.TXT",
+        "RELEASE_NOTES", "RELEASE_NOTES.TXT",
+        "UPGRADE", "UPGRADE.TXT",
+        "STATUS", "STATUS.TXT",
+        "THIRD_PARTY_NOTICES", "THIRD_PARTY_NOTICES.TXT",
+        "COPYRIGHT", "COPYRIGHT.TXT",
+        "BUILDING", "BUILDING.TXT",
+        "BUILD", "BUILT.TXT",//
+        "DEPENDENCIES"
+    };
+
+    private static final String[] NOTE_FILE_EXTENSIONS = {
+        "LICENSE", "LICENSE.TXT",
+        "NOTICE", "NOTICE.TXT",
+    };
+
+    /**
+     * @return Is a file by that name a note file?
+     * @param name file name.
+     */
+    public static final boolean isNote(final String name) {
+        if (name == null) {return false;}
+
+        List<String> l = Arrays.asList(NoteGuesser.NOTE_FILE_NAMES);
+        String normalisedName = GuessUtils.normalise(name);
+
+        if (l.contains(name) || l.contains(normalisedName)) {
+            return true;
+        }
+
+        for (int i = 0; i < NoteGuesser.NOTE_FILE_EXTENSIONS.length; i++) {
+            if (normalisedName.endsWith(DOT + NoteGuesser.NOTE_FILE_EXTENSIONS[i])) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    public static final boolean isNote(final Document document) {
+        return isNote(document.getName());
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/util/DocumentAnalyserMultiplexer.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/util/DocumentAnalyserMultiplexer.java
new file mode 100644
index 0000000..da2126e
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/util/DocumentAnalyserMultiplexer.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl.util;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.document.IDocumentAnalyser;
+import org.apache.rat.document.RatDocumentAnalysisException;
+
+public class DocumentAnalyserMultiplexer implements IDocumentAnalyser {
+
+    private final IDocumentAnalyser[] analysers;
+    
+    public DocumentAnalyserMultiplexer(final IDocumentAnalyser[] analysers) {
+        super();
+        this.analysers = analysers;
+    }
+
+    public void analyse(Document document) throws RatDocumentAnalysisException {
+        for (IDocumentAnalyser analyser : analysers) {
+            analyser.analyse(document);
+        }
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/header/ArrayCharFilter.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/ArrayCharFilter.java
new file mode 100644
index 0000000..762f825
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/ArrayCharFilter.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+class ArrayCharFilter implements CharFilter {
+
+    private final char[] filtered;
+    private final int length;
+    
+    protected ArrayCharFilter(final char[] filtered) {
+        super();
+        this.filtered = filtered;
+        length = filtered.length;
+    }
+
+    public boolean isFilteredOut(char character) {
+        boolean result = false;
+        for(int i=0; i<length ;i++) {
+            if (character == filtered[i]) {
+                result = true;
+                break;
+            }
+        }
+        return result;
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/header/CharFilter.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/CharFilter.java
new file mode 100644
index 0000000..76011e3
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/CharFilter.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+interface CharFilter {
+
+    /**
+     * Is the given character filtered out?
+     * @param character character to be filtered
+     * @return true if this character should be filtered out,
+     * false if this character should be filtered in
+     */
+    boolean isFilteredOut(char character);
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/header/FilteringSequenceFactory.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/FilteringSequenceFactory.java
new file mode 100644
index 0000000..f01dc0f
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/FilteringSequenceFactory.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.nio.CharBuffer;
+
+class FilteringSequenceFactory {
+    
+    private static final int BUFFER_CAPACITY = 5000;
+    
+    private final CharBuffer buffer;
+    private final CharFilter filter;
+    
+    public FilteringSequenceFactory(final CharFilter filter) {
+        this(BUFFER_CAPACITY, filter);
+    }
+    
+    public FilteringSequenceFactory(final int capacity, final CharFilter filter) {
+        this.buffer = CharBuffer.allocate(capacity);
+        this.filter = filter;
+    }
+
+    public CharSequence filter(Reader reader) throws IOException {
+        buffer.clear();
+        boolean eof = false;
+        while(!eof) {
+            final int next = reader.read();
+            if (next == -1 || !buffer.hasRemaining()) {
+                eof = true;
+            } else {
+                final char character = (char) next;
+                if (!filter.isFilteredOut(character))
+                {
+                    buffer.put(character); 
+                }
+            }
+        }
+        buffer.limit(buffer.position()).rewind();
+        return buffer;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/header/HeaderBean.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/HeaderBean.java
new file mode 100644
index 0000000..f55fa83
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/HeaderBean.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+import java.util.regex.Pattern;
+
+public class HeaderBean {
+
+    private Pattern headerPattern;
+    private boolean match;
+    
+    public HeaderBean() {
+        super();
+    }
+    
+    public HeaderBean(Pattern headerPattern, boolean match) {
+        super();
+        this.headerPattern = headerPattern;
+        this.match = match;
+    }
+
+    /**
+     * Gets the header pattern to be matched.
+     * @return <code>Patter</code>
+     * or null when no match is to be made
+     */
+    public Pattern getHeaderPattern() {
+        return headerPattern;
+    }
+    
+    /**
+     * Sets the header pattern to be matched.
+     * @param headerPattern <code>Patter</code>
+     * or null when no match is to be made
+     */
+    public void setHeaderPattern(Pattern headerPattern) {
+        this.headerPattern = headerPattern;
+    }
+    
+    public boolean isMatch() {
+        return match;
+    }
+    public void setMatch(boolean match) {
+        this.match = match;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/header/HeaderMatcher.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/HeaderMatcher.java
new file mode 100644
index 0000000..134152c
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/header/HeaderMatcher.java
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.io.Reader;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * <p>Matches headers.</p>
+ * <p><strong>Usage:</strong></p>
+ * <ol>
+ * <li>{@link #read(Reader)} content</li>
+ * <li>{@link #matches(Pattern)} against filtered content</li>
+ * </ol>
+ * <p><strong>Note:</strong> use only from a single thread.</p>
+ *
+ */
+public class HeaderMatcher {
+
+    private final FilteringSequenceFactory factory;
+    private final HeaderBean[] headers;
+    private CharSequence read;
+    private int lines;
+    
+    public HeaderMatcher(final CharFilter filter, final int capacity) {
+        this(filter, capacity, null);
+    }
+    
+    public HeaderMatcher(final CharFilter filter, final int capacity, final HeaderBean[] headers) {
+        factory = new FilteringSequenceFactory(capacity, filter);
+        read = null;
+        this.headers = headers;
+    }
+    
+    public void read(Reader reader) throws IOException {
+        final LineNumberReader lineNumberReader = new LineNumberReader(reader);
+        read = factory.filter(lineNumberReader);
+        if (lineNumberReader.read() == -1) {
+            lines = lineNumberReader.getLineNumber();
+        } else {
+            lines = -1;
+        }
+        if (headers != null) {
+            final int length = headers.length;
+            for (int i=0;i<length;i++) {
+                final HeaderBean headerBean = headers[i];
+                if (headerBean != null) {
+                    final Pattern headerPattern = headerBean.getHeaderPattern();
+                    if (headerPattern != null) {
+                        final boolean matches = matches(headerPattern);
+                        headerBean.setMatch(matches);
+                    }
+                }
+            }
+        }
+    }
+    
+    /**
+     * <p>Seeks a match in the last headers read.</p>
+     * <p><strong>Note</strong> that this pattern
+     * must not contain filtered characters.
+     * </p>
+     * @param pattern <code>Pattern</code> to match
+     * @return true if the pattern matches,
+     * false otherwise or if {@link #read(Reader)} has not been
+     * called
+     */
+    public boolean matches(Pattern pattern) {
+        boolean result = false;
+        if (read != null) {
+            final Matcher matcher = pattern.matcher(read);
+            result = matcher.matches();
+        }
+        return result;
+    }
+    
+    /**
+     * Number of lines read.
+     * @return the number of lines in the file
+     * or -1 if the file has more lines than were read
+     */
+    public int lines() {
+        return lines;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/AcademicFree21LicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/AcademicFree21LicenseFamily.java
new file mode 100644
index 0000000..bc870c3
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/AcademicFree21LicenseFamily.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+public class AcademicFree21LicenseFamily extends SimpleLicenseFamily {
+    public AcademicFree21LicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_ACADEMIC_FREE_LICENSE_VERSION_2_1);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/Apache20LicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/Apache20LicenseFamily.java
new file mode 100644
index 0000000..17abbcd
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/Apache20LicenseFamily.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+public final class Apache20LicenseFamily extends SimpleLicenseFamily {
+    public Apache20LicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_APACHE_LICENSE_VERSION_2_0);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/CDDL1LicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/CDDL1LicenseFamily.java
new file mode 100644
index 0000000..6bf01c0
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/CDDL1LicenseFamily.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * Base implementation for CDDL 1.0 licenses.
+ */
+public class CDDL1LicenseFamily extends SimpleLicenseFamily {
+
+    public CDDL1LicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_CDDL1);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/GPL1LicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/GPL1LicenseFamily.java
new file mode 100644
index 0000000..bdfd86e
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/GPL1LicenseFamily.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * Base implementation for GPLv1 or later.
+ */
+public class GPL1LicenseFamily extends SimpleLicenseFamily {
+    public GPL1LicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_1);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/GPL2LicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/GPL2LicenseFamily.java
new file mode 100644
index 0000000..e2d2522
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/GPL2LicenseFamily.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * Base implementation for GPLv2 or later.
+ */
+public class GPL2LicenseFamily extends SimpleLicenseFamily {
+    public GPL2LicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_2);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/GPL3LicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/GPL3LicenseFamily.java
new file mode 100644
index 0000000..9d91466
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/GPL3LicenseFamily.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * Base implementation for GPLv3 or later.
+ */
+public class GPL3LicenseFamily extends SimpleLicenseFamily {
+    public GPL3LicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_3);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/ILicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/ILicenseFamily.java
new file mode 100644
index 0000000..97ef9a9
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/ILicenseFamily.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+
+public interface ILicenseFamily {
+    String getFamilyName();
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/MITLicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/MITLicenseFamily.java
new file mode 100644
index 0000000..c6453d0
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/MITLicenseFamily.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+/**
+ * Base implementation for MIT licenses.
+ */
+public class MITLicenseFamily extends SimpleLicenseFamily {
+    public MITLicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_MIT);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/ModifiedBSDLicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/ModifiedBSDLicenseFamily.java
new file mode 100644
index 0000000..d94de97
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/ModifiedBSDLicenseFamily.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+public class ModifiedBSDLicenseFamily extends SimpleLicenseFamily {
+    public ModifiedBSDLicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_MODIFIED_BSD_LICENSE);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/OASISLicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/OASISLicenseFamily.java
new file mode 100644
index 0000000..17c2709
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/OASISLicenseFamily.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+public final class OASISLicenseFamily extends SimpleLicenseFamily {
+    public OASISLicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_OASIS_OPEN_LICENSE);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/SimpleLicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/SimpleLicenseFamily.java
new file mode 100644
index 0000000..24231dd
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/SimpleLicenseFamily.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+/**
+ * Trivial bean implementing ILicenseFamily
+ * @since Rat 0.8
+ */
+public class SimpleLicenseFamily implements ILicenseFamily {
+    private String familyName;
+
+    public SimpleLicenseFamily(String familyName) {
+        setFamilyName(familyName);
+    }
+
+    public SimpleLicenseFamily() {
+        this(null);
+    }
+
+    public final void setFamilyName(String familyName) {
+        this.familyName = familyName;
+    }
+
+    public final String getFamilyName() {
+        return familyName;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/W3CDocumentLicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/W3CDocumentLicenseFamily.java
new file mode 100644
index 0000000..c3d2101
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/W3CDocumentLicenseFamily.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+public class W3CDocumentLicenseFamily extends SimpleLicenseFamily {
+    public W3CDocumentLicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_W3C_DOCUMENT_COPYRIGHT);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/license/W3CSoftwareLicenseFamily.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/W3CSoftwareLicenseFamily.java
new file mode 100644
index 0000000..42a6dc9
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/license/W3CSoftwareLicenseFamily.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.license;
+
+import org.apache.rat.api.MetaData;
+
+public class W3CSoftwareLicenseFamily extends SimpleLicenseFamily {
+    public W3CSoftwareLicenseFamily() {
+        super(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_W3C_SOFTWARE_COPYRIGHT);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/policy/DefaultPolicy.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/policy/DefaultPolicy.java
new file mode 100644
index 0000000..71bf11f
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/policy/DefaultPolicy.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.policy;
+
+import org.apache.rat.Defaults;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.config.ConfigurationUtil;
+import org.apache.rat.document.IDocumentAnalyser;
+import org.apache.rat.document.RatDocumentAnalysisException;
+import org.apache.rat.license.ILicenseFamily;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class DefaultPolicy implements IDocumentAnalyser {
+    private List<String> approvedLicenseNames;
+
+    /**
+     * Creates a policy that matches the default licenses.
+     * Mainly used for testing purposes.
+     */
+    DefaultPolicy() {
+        this(new ArrayList<String>(0), true);
+    }
+
+    public DefaultPolicy(final ILicenseFamily[] approvedLicenses, boolean mergeWithDefault) {
+        this(ConfigurationUtil.toNames(approvedLicenses), mergeWithDefault);
+    }
+
+    public DefaultPolicy(final List<String> approvedLicenseNames, boolean mergeWithDefault) {
+        this.approvedLicenseNames = new ArrayList<String>();
+
+        if (approvedLicenseNames == null || approvedLicenseNames.isEmpty()) {
+            // used in tests only, no additional licenses given but defaults requested
+            if(mergeWithDefault) {
+                this.approvedLicenseNames = new ArrayList<String>(Defaults.DEFAULT_LICENSE_FAMILIES);
+            }
+        } else {
+            // avoid duplicate entries and merge with defaults if requested
+            Set<String> mergedLicenses = new HashSet<String>(approvedLicenseNames);
+            if(mergeWithDefault) {
+                mergedLicenses.addAll(Defaults.DEFAULT_LICENSE_FAMILIES);
+            }
+            this.approvedLicenseNames = new ArrayList<String>(mergedLicenses);
+        }
+        Collections.sort(this.approvedLicenseNames);
+    }
+
+    public void analyse(final Document subject) throws RatDocumentAnalysisException {
+        if (subject != null) {
+            final String name = subject.getMetaData().value(MetaData.RAT_URL_LICENSE_FAMILY_NAME);
+            if (name != null) {
+                final boolean isApproved = Collections.binarySearch(approvedLicenseNames, name) >= 0;
+                reportLicenseApprovalClaim(subject, isApproved);
+            }
+        }
+    }
+
+    public void reportLicenseApprovalClaim(final Document subject, final boolean isAcceptable) {
+        subject.getMetaData().set(//
+         isAcceptable ? MetaData.RAT_APPROVED_LICENSE_DATIM_TRUE: MetaData.RAT_APPROVED_LICENSE_DATIM_FALSE);
+    }
+
+    public List<String> getApprovedLicenseNames() {
+        return Collections.unmodifiableList(approvedLicenseNames);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/AbstractReport.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/AbstractReport.java
new file mode 100644
index 0000000..18bfd1f
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/AbstractReport.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.RatException;
+
+
+/**
+ * Abstract base class for deriving implementations of {@link RatReport}.
+ */
+public abstract class AbstractReport implements RatReport {
+    public void startReport() throws RatException {
+        // Does nothing
+    }
+
+    public void report(Document document) throws RatException {
+        // Does nothing
+    }
+
+    public void endReport() throws RatException {
+        // Does nothing
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/IReportable.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/IReportable.java
new file mode 100644
index 0000000..d7fd7af
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/IReportable.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report;
+
+import org.apache.rat.api.RatException;
+
+public interface IReportable {
+
+    void run(RatReport report) throws RatException;
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/RatReport.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/RatReport.java
new file mode 100644
index 0000000..d178acf
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/RatReport.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.RatException;
+
+public interface RatReport {
+
+    void startReport() throws RatException;
+    
+    void report(Document document) throws RatException;
+    
+    void endReport() throws RatException;
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/ClaimStatistic.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/ClaimStatistic.java
new file mode 100644
index 0000000..578e8f6
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/ClaimStatistic.java
@@ -0,0 +1,160 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one   *
+* or more contributor license agreements.  See the NOTICE file *
+* distributed with this work for additional information        *
+* regarding copyright ownership.  The ASF licenses this file   *
+* to you under the Apache License, Version 2.0 (the            *
+* "License"); you may not use this file except in compliance   *
+* with the License.  You may obtain a copy of the License at   *
+*                                                              *
+*   http://www.apache.org/licenses/LICENSE-2.0                 *
+*                                                              *
+* Unless required by applicable law or agreed to in writing,   *
+* software distributed under the License is distributed on an  *
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+* KIND, either express or implied.  See the License for the    *
+* specific language governing permissions and limitations      *
+* under the License.                                           *
+*/
+
+package org.apache.rat.report.claim;
+
+import java.util.Map;
+
+
+/**
+ * This class provides a numerical overview about
+ * the report.
+ */
+public class ClaimStatistic {
+    private Map<String, Integer> documentCategoryMap, licenseFamilyCodeMap, licenseFamilyNameMap;
+    private int numApproved, numUnApproved, numGenerated, numUnknown;
+
+    /**
+     * @return Returns the number of files with approved licenses.
+     */
+    public int getNumApproved() {
+        return numApproved;
+    }
+
+    /**
+     * Sets the number of files with approved licenses.
+     * @param pNumApproved number of files with approved licenses.
+     */
+    public void setNumApproved(int pNumApproved) {
+        numApproved = pNumApproved;
+    }
+
+    /**
+     * @return Returns the number of files with unapproved licenses.
+     * <em>Note:</em> This might include files with unknown
+     * licenses.
+     * @see #getNumUnknown()
+     */
+    public int getNumUnApproved() {
+        return numUnApproved;
+    }
+
+    /**
+     * Sets the number of files with unapproved licenses.
+     * @param pNumUnApproved number of files with unapproved licenses.
+     */
+    public void setNumUnApproved(int pNumUnApproved) {
+        numUnApproved = pNumUnApproved;
+    }
+
+    /**
+     * @return Returns the number of generated files.
+     */
+    public int getNumGenerated() {
+        return numGenerated;
+    }
+
+    /**
+     * Sets the number of generated files.
+     * @param pNumGenerated the number of generated files.
+     */
+    public void setNumGenerated(int pNumGenerated) {
+        numGenerated = pNumGenerated;
+    }
+
+    /**
+     * @return Returns the number of files, which are neither
+     * generated nor have a known license header.
+     */
+    public int getNumUnknown() {
+        return numUnknown;
+    }
+
+    /**
+     * Sets the number of files, which are neither
+     * generated nor have a known license header.
+     * @param pNumUnknown set number of files. 
+     */
+    public void setNumUnknown(int pNumUnknown) {
+        numUnknown = pNumUnknown;
+    }
+
+    /**
+     * Sets a map with the file types. The map keys
+     * are file type names and the map values
+     * are integers with the number of resources matching
+     * the file type.
+     * @param pDocumentCategoryMap doc-category map.
+     */
+    public void setDocumentCategoryMap(Map<String, Integer> pDocumentCategoryMap) {
+        documentCategoryMap = pDocumentCategoryMap;
+    }
+
+    /**
+     * @return Returns a map with the file types. The map keys
+     * are file type names and the map values
+     * are integers with the number of resources matching
+     * the file type.
+     */
+    public Map<String, Integer> getDocumentCategoryMap() {
+        return documentCategoryMap;
+    }
+
+    /**
+     * @return Returns a map with the license family codes. The map
+     * keys are license family category names,
+     * the map values are integers with the number of resources
+     * matching the license family code.
+     */
+    public Map<String, Integer> getLicenseFileCodeMap() {
+        return licenseFamilyCodeMap;
+    }
+
+    /**
+     * Sets a map with the license family codes. The map
+     * keys are instances of license family category names and
+     * the map values are integers with the number of resources
+     * matching the license family code.
+     * @param pLicenseFamilyCodeMap license family map.
+     */
+    public void setLicenseFileCodeMap(Map<String, Integer> pLicenseFamilyCodeMap) {
+        licenseFamilyCodeMap = pLicenseFamilyCodeMap;
+    }
+
+    /**
+     * @return Returns a map with the license family codes. The map
+     * keys are the names of the license families and
+     * the map values are integers with the number of resources
+     * matching the license family name.
+     */
+    public Map<String, Integer> getLicenseFileNameMap() {
+        return licenseFamilyNameMap;
+    }
+
+    /**
+     * Sets map with the license family codes. The map
+     * keys are the name of the license families and
+     * the map values are integers with the number of resources
+     * matching the license family name.
+     * @param pLicenseFamilyNameMap license family-name map.
+     */
+    public void setLicenseFileNameMap(Map<String, Integer> pLicenseFamilyNameMap) {
+        licenseFamilyNameMap = pLicenseFamilyNameMap;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/AbstractClaimReporter.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/AbstractClaimReporter.java
new file mode 100644
index 0000000..8904cfb
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/AbstractClaimReporter.java
@@ -0,0 +1,102 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one   *
+* or more contributor license agreements.  See the NOTICE file *
+* distributed with this work for additional information        *
+* regarding copyright ownership.  The ASF licenses this file   *
+* to you under the Apache License, Version 2.0 (the            *
+* "License"); you may not use this file except in compliance   *
+* with the License.  You may obtain a copy of the License at   *
+*                                                              *
+*   http://www.apache.org/licenses/LICENSE-2.0                 *
+*                                                              *
+* Unless required by applicable law or agreed to in writing,   *
+* software distributed under the License is distributed on an  *
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+* KIND, either express or implied.  See the License for the    *
+* specific language governing permissions and limitations      *
+* under the License.                                           *
+*/
+
+package org.apache.rat.report.claim.impl;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.api.RatException;
+import org.apache.rat.report.AbstractReport;
+
+
+/**
+ * Abstract base implementation of {@link AbstractReport}.
+ * It is strongly suggested, that implementations derive from
+ * this class.
+ */
+public abstract class AbstractClaimReporter extends AbstractReport {
+    protected void handleDocumentCategoryClaim(String documentCategoryName) {
+        // Does nothing
+    }
+
+    protected void handleApprovedLicenseClaim(String licenseApproved) {
+        // Does nothing
+    }
+
+    protected void handleLicenseFamilyNameClaim(String licenseFamilyName) {
+        // Does Nothing
+    }
+
+    protected void handleHeaderCategoryClaim(String headerCategory) {
+        // Does nothing
+    }
+
+    private void writeDocumentClaim(Document subject)  {
+        final MetaData metaData = subject.getMetaData();
+        writeHeaderCategory(metaData);
+        writeLicenseFamilyName(metaData);
+        writeDocumentCategory(metaData);
+        writeApprovedLicenseClaim(metaData);
+    }
+
+    private void writeApprovedLicenseClaim(final MetaData metaData) {
+        final MetaData.Datum approvedLicenseDatum = metaData.get(MetaData.RAT_URL_APPROVED_LICENSE);
+        if (approvedLicenseDatum != null) {
+            final String approvedLicense = approvedLicenseDatum.getValue();
+            if (approvedLicense != null) {
+                handleApprovedLicenseClaim(approvedLicense);
+            }
+        }
+    }
+
+    private void writeHeaderCategory(final MetaData metaData) {
+        final MetaData.Datum headerCategoryDatum = metaData.get(MetaData.RAT_URL_HEADER_CATEGORY);
+        if (headerCategoryDatum != null) {
+            final String headerCategory = headerCategoryDatum.getValue();
+            if (headerCategory != null) {
+                handleHeaderCategoryClaim(headerCategory);
+            }
+        }
+    }
+
+    private void writeLicenseFamilyName(final MetaData metaData) {
+        final MetaData.Datum licenseFamilyNameDatum = metaData.get(MetaData.RAT_URL_LICENSE_FAMILY_NAME);
+        if (licenseFamilyNameDatum != null) {
+            final String licenseFamilyName = licenseFamilyNameDatum.getValue();
+            if (licenseFamilyName != null) {
+                handleLicenseFamilyNameClaim(licenseFamilyName);
+            }
+        }
+    }
+    
+    private void writeDocumentCategory(final MetaData metaData) {
+        final MetaData.Datum documentCategoryDatum = metaData.get(MetaData.RAT_URL_DOCUMENT_CATEGORY);
+        if (documentCategoryDatum != null) {
+            final String documentCategory = documentCategoryDatum.getValue();
+            if (documentCategory != null) {
+                handleDocumentCategoryClaim(documentCategory);
+            }
+        }
+    }
+    
+    @Override
+    public void report(Document subject) throws RatException {
+        writeDocumentClaim(subject);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/ClaimAggregator.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/ClaimAggregator.java
new file mode 100644
index 0000000..a4f915d
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/ClaimAggregator.java
@@ -0,0 +1,102 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one   *
+* or more contributor license agreements.  See the NOTICE file *
+* distributed with this work for additional information        *
+* regarding copyright ownership.  The ASF licenses this file   *
+* to you under the Apache License, Version 2.0 (the            *
+* "License"); you may not use this file except in compliance   *
+* with the License.  You may obtain a copy of the License at   *
+*                                                              *
+*   http://www.apache.org/licenses/LICENSE-2.0                 *
+*                                                              *
+* Unless required by applicable law or agreed to in writing,   *
+* software distributed under the License is distributed on an  *
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+* KIND, either express or implied.  See the License for the    *
+* specific language governing permissions and limitations      *
+* under the License.                                           *
+*/
+
+package org.apache.rat.report.claim.impl;
+
+import org.apache.rat.api.MetaData;
+import org.apache.rat.api.RatException;
+import org.apache.rat.report.claim.ClaimStatistic;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * The aggregator is used to create a numerical statistic
+ * of claims.
+ */
+public class ClaimAggregator extends AbstractClaimReporter {
+    private final ClaimStatistic statistic;
+    private final Map<String, Integer> numsByLicenseFamilyName = new HashMap<String, Integer>();
+    private final Map<String, Integer> numsByLicenseFamilyCode = new HashMap<String, Integer>();
+    private final Map<String, Integer> numsByFileType = new HashMap<String, Integer>();
+    private int numApproved, numUnApproved, numGenerated, numUnknown;
+
+    public ClaimAggregator(ClaimStatistic pStatistic) {
+        statistic = pStatistic;
+    }
+    
+    private void incMapValue(Map<String, Integer> pMap, String pKey) {
+        final Integer num = pMap.get(pKey);
+        final int newNum;
+        if (num == null) {
+            newNum = 1;
+        } else {
+            newNum = num + 1;
+        }
+        pMap.put(pKey, newNum);
+    }
+    
+    @Override
+    protected void handleDocumentCategoryClaim(String documentCategoryName) {
+        incMapValue(numsByFileType, documentCategoryName);
+    }
+
+    @Override
+    protected void handleApprovedLicenseClaim(String licenseApproved) {
+        if (MetaData.RAT_APPROVED_LICENSE_VALUE_TRUE.equals(licenseApproved)) {
+            numApproved++;
+        } else {
+            numUnApproved++;
+        }
+    }
+
+    @Override
+    protected void handleLicenseFamilyNameClaim(String licenseFamilyName) {
+        incMapValue(numsByLicenseFamilyName, licenseFamilyName);
+    }
+
+    @Override
+    protected void handleHeaderCategoryClaim(String headerCategory) {
+        
+        if (MetaData.RAT_LICENSE_FAMILY_CATEGORY_VALUE_GEN.equals(headerCategory)) {
+            numGenerated++;
+            incMapValue(numsByLicenseFamilyCode, MetaData.RAT_LICENSE_FAMILY_CATEGORY_VALUE_GEN);
+        } else if (MetaData.RAT_LICENSE_FAMILY_CATEGORY_VALUE_UNKNOWN.equals(headerCategory)) {
+            numUnknown++;
+            incMapValue(numsByLicenseFamilyCode, MetaData.RAT_LICENSE_FAMILY_CATEGORY_VALUE_UNKNOWN);
+        }
+    }
+
+    public void fillClaimStatistic(ClaimStatistic pStatistic) {
+        pStatistic.setDocumentCategoryMap(numsByFileType);
+        pStatistic.setLicenseFileCodeMap(numsByLicenseFamilyCode);
+        pStatistic.setLicenseFileNameMap(numsByLicenseFamilyName);
+        pStatistic.setNumApproved(numApproved);
+        pStatistic.setNumGenerated(numGenerated);
+        pStatistic.setNumUnApproved(numUnApproved);
+        pStatistic.setNumUnknown(numUnknown);
+    }
+
+    @Override
+    public void endReport() throws RatException {
+        super.endReport();
+        fillClaimStatistic(statistic);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java
new file mode 100644
index 0000000..02e21d6
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.claim.impl.xml;
+
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.api.RatException;
+import org.apache.rat.report.AbstractReport;
+import org.apache.rat.report.xml.writer.IXmlWriter;
+
+import java.io.IOException;
+import java.util.Calendar;
+
+public class SimpleXmlClaimReporter extends AbstractReport {
+    public static final String RAT_REPORT = "rat-report";
+    public static final String TIMESTAMP = "timestamp";
+    public static final String LICENSE_APPROVAL_PREDICATE = "license-approval";
+    public static final String LICENSE_FAMILY_PREDICATE = "license-family";
+    public static final String HEADER_SAMPLE_PREDICATE = "header-sample";
+    public static final String HEADER_TYPE_PREDICATE = "header-type";
+    public static final String FILE_TYPE_PREDICATE = "type";
+    public static final String ARCHIVE_TYPE_PREDICATE = "archive-type";
+    public static final String ARCHIVE_TYPE_UNREADABLE = "unreadable";
+    public static final String ARCHIVE_TYPE_READABLE = "readable";
+
+    private final IXmlWriter writer;
+    private static final String NAME = "name";
+    private boolean firstTime = true;
+
+    public SimpleXmlClaimReporter(final IXmlWriter writer) {
+        this.writer = writer;
+    }
+
+
+    /**
+     * Writes a single claim to the XML file.
+     * @param pPredicate The claims predicate.
+     * @param pObject The claims object.
+     * @param pLiteral Whether to write the object as an element (true),
+     *   or an attribute (false).
+     * @throws IOException An I/O error occurred while writing the claim.
+     * @throws RatException Another error occurred while writing the claim.
+     */
+    protected void writeClaim(String pPredicate, String pObject, boolean pLiteral)
+    throws IOException, RatException {
+        if (pLiteral) {
+            writer.openElement(pPredicate).content(pObject).closeElement();
+        } else {
+            writer.openElement(pPredicate).attribute(NAME, pObject).closeElement();
+        }
+    }
+
+    @Override
+    public void report(final Document subject) throws RatException {
+        try {
+            if (firstTime) {
+                firstTime = false;
+            } else {
+                writer.closeElement();
+            }
+            writer.openElement("resource").attribute(NAME, subject.getName());
+            writeDocumentClaims(subject);
+        } catch (IOException e) {
+            throw new RatException("XML writing failure: " + e.getMessage()
+                    + " subject: " + subject, e);
+        }
+    }
+
+    private void writeDocumentClaims(final Document subject) throws IOException, RatException {
+        final MetaData metaData = subject.getMetaData();
+        writeHeaderSample(metaData);
+        writeHeaderCategory(metaData);
+        writeLicenseFamilyName(metaData);
+        writeApprovedLicense(metaData);
+        writeDocumentCategory(metaData);
+    }
+
+    private void writeApprovedLicense(final MetaData metaData) throws IOException, RatException {
+        final String approvedLicense = metaData.value(MetaData.RAT_URL_APPROVED_LICENSE);
+        if (approvedLicense != null) {
+            writeClaim(LICENSE_APPROVAL_PREDICATE, approvedLicense, false);
+        }
+    }
+
+    private void writeLicenseFamilyName(final MetaData metaData) throws IOException, RatException {
+        final String licenseFamilyName = metaData.value(MetaData.RAT_URL_LICENSE_FAMILY_NAME);
+        if (licenseFamilyName != null) {
+            writeClaim(LICENSE_FAMILY_PREDICATE, licenseFamilyName, false);
+        }
+    }
+
+    private void writeHeaderCategory(final MetaData metaData) throws IOException, RatException {
+        final String headerCategory = metaData.value(MetaData.RAT_URL_HEADER_CATEGORY);
+        if (headerCategory != null) {
+            writeClaim(HEADER_TYPE_PREDICATE, headerCategory, false);
+        }
+    }
+
+    private void writeHeaderSample(final MetaData metaData) throws IOException, RatException {
+        final String sample = metaData.value(MetaData.RAT_URL_HEADER_SAMPLE);
+        if (sample != null) {
+            writeClaim(HEADER_SAMPLE_PREDICATE, sample, true);
+        }
+    }
+
+    private void writeDocumentCategory(final MetaData metaData) throws IOException, RatException {
+        final String documentCategory = metaData.value(MetaData.RAT_URL_DOCUMENT_CATEGORY);
+        if (documentCategory != null) {
+            writeClaim(FILE_TYPE_PREDICATE, documentCategory, false);
+        }
+    }
+
+    @Override
+    public void startReport() throws RatException {
+        try {
+            writer.openElement(RAT_REPORT)
+                .attribute(TIMESTAMP,
+                           DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT
+                           .format(Calendar.getInstance()));
+        } catch (IOException e) {
+            throw new RatException("Cannot open start element", e);
+        }
+    }
+
+    @Override
+    public void endReport() throws RatException {
+        try {
+            writer.closeDocument();
+        } catch (IOException e) {
+            throw new RatException("Cannot close last element", e);
+        }
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java
new file mode 100644
index 0000000..572d7b9
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.claim.util;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.RatException;
+import org.apache.rat.document.IDocumentAnalyser;
+import org.apache.rat.document.RatDocumentAnalysisException;
+import org.apache.rat.report.RatReport;
+
+import java.util.List;
+
+
+public class ClaimReporterMultiplexer implements RatReport {
+    private final IDocumentAnalyser analyser;
+    private final List<? extends RatReport> reporters;
+
+    public ClaimReporterMultiplexer(final IDocumentAnalyser pAnalyser, final List<? extends RatReport> reporters) {
+        analyser = pAnalyser;
+        this.reporters = reporters;
+    }
+
+    public void report(Document document) throws RatException {
+        if (analyser != null) {
+            try {
+                analyser.analyse(document);
+            } catch (RatDocumentAnalysisException e) {
+                throw new RatException(e.getMessage(), e);
+            }
+        }
+        for (RatReport report : reporters) {
+            report.report(document);
+        } 
+    }
+
+    public void startReport() throws RatException {
+        for (RatReport report : reporters) {
+            report.startReport();
+        } 
+    }
+
+    public void endReport() throws RatException {
+        for (RatReport report : reporters) {
+            report.endReport();
+        } 
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/LicenseAddingReport.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/LicenseAddingReport.java
new file mode 100644
index 0000000..8570c69
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/LicenseAddingReport.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.claim.util;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.rat.annotation.AbstractLicenseAppender;
+import org.apache.rat.annotation.ApacheV2LicenseAppender;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.api.MetaData.Datum;
+import org.apache.rat.api.RatException;
+import org.apache.rat.report.AbstractReport;
+
+
+public class LicenseAddingReport extends AbstractReport {
+    private final AbstractLicenseAppender appender;
+
+    public LicenseAddingReport(String pCopyrightMsg, boolean pForced) {
+        appender = pCopyrightMsg == null ? new ApacheV2LicenseAppender() : new ApacheV2LicenseAppender(pCopyrightMsg);
+        appender.setForce(pForced);
+    }
+
+    @Override
+    public void report(org.apache.rat.api.Document document) throws RatException {
+        final Datum licenseHeader = document.getMetaData().get(MetaData.RAT_URL_HEADER_CATEGORY);
+        if (licenseHeader == null
+                ||  MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_UNKNOWN.getValue().equals(licenseHeader.getValue())) {
+            final File file = new File(document.getName());
+            if (file.isFile()) {
+                try {
+                    appender.append(file);
+                } catch (IOException e) {
+                    throw new RatException(e.getMessage(), e);
+                }
+            }
+        }
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java
new file mode 100644
index 0000000..939b608
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml;
+
+import org.apache.rat.ReportConfiguration;
+import org.apache.rat.analysis.DefaultAnalyserFactory;
+import org.apache.rat.document.IDocumentAnalyser;
+import org.apache.rat.document.impl.util.DocumentAnalyserMultiplexer;
+import org.apache.rat.policy.DefaultPolicy;
+import org.apache.rat.report.RatReport;
+import org.apache.rat.report.claim.ClaimStatistic;
+import org.apache.rat.report.claim.impl.ClaimAggregator;
+import org.apache.rat.report.claim.impl.xml.SimpleXmlClaimReporter;
+import org.apache.rat.report.claim.util.ClaimReporterMultiplexer;
+import org.apache.rat.report.claim.util.LicenseAddingReport;
+import org.apache.rat.report.xml.writer.IXmlWriter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Creates reports.
+ *
+ */
+public class XmlReportFactory {
+    public static final RatReport createStandardReport(IXmlWriter writer,
+            final ClaimStatistic pStatistic, ReportConfiguration pConfiguration) {
+        final List<RatReport> reporters = new ArrayList<RatReport>();
+        if (pStatistic != null) {
+            reporters.add(new ClaimAggregator(pStatistic));
+        }
+        if (pConfiguration.isAddingLicenses()) {
+            reporters.add(new LicenseAddingReport(pConfiguration.getCopyrightMessage(), pConfiguration.isAddingLicensesForced()));
+        }
+        reporters.add(new SimpleXmlClaimReporter(writer));
+
+        final IDocumentAnalyser analyser =
+            DefaultAnalyserFactory.createDefaultAnalyser(pConfiguration.getHeaderMatcher());
+        final DefaultPolicy policy = new DefaultPolicy(pConfiguration.getApprovedLicenseNames(), pConfiguration.isApproveDefaultLicenses());
+
+        final IDocumentAnalyser[] analysers = {analyser, policy};
+        DocumentAnalyserMultiplexer analysisMultiplexer = new DocumentAnalyserMultiplexer(analysers);
+        return new ClaimReporterMultiplexer(analysisMultiplexer, reporters);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/IXmlWriter.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/IXmlWriter.java
new file mode 100644
index 0000000..9f7268f
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/IXmlWriter.java
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml.writer;
+
+import java.io.IOException;
+
+/**
+ * Simple interface for creating basic xml documents.
+ * Performs basic validation and escaping.
+ * Not namespace aware (may reconsider this later).
+ */
+public interface IXmlWriter {
+
+    /**
+     * Starts a document by writing a prolog.
+     * Calling this method is optional.
+     * When writing a document fragment, it should <em>not</em> be called.
+     * @return this object
+     * @throws OperationNotAllowedException 
+     * if called after the first element has been written
+     * or once a prolog has already been written
+     */
+    IXmlWriter startDocument() throws IOException;
+    
+    /**
+     * Writes the start of an element.
+     * 
+     * @param elementName the name of the element, not null
+     * @return this object 
+     * @throws InvalidXmlException if the name is not valid for an xml element
+     * @throws OperationNotAllowedException 
+     * if called after the first element has been closed
+     */
+    IXmlWriter openElement(CharSequence elementName) throws IOException;
+    
+    /**
+     * Writes an attribute of an element.
+     * Note that this is only allowed directly after {@link #openElement(CharSequence)}
+     * or {@link #attribute}.
+     * 
+     * @param name the attribute name, not null
+     * @param value the attribute value, not null
+     * @return this object
+     * @throws InvalidXmlException if the name is not valid for an xml attribute 
+     * or if a value for the attribute has already been written
+     * @throws OperationNotAllowedException if called after {@link #content(CharSequence)} 
+     * or {@link #closeElement()} or before any call to {@link #openElement(CharSequence)}
+     */
+    IXmlWriter attribute(CharSequence name, CharSequence value) throws IOException;
+    
+    /**
+     * Writes content.
+     * Calling this method will automatically 
+     * Note that this method does not use CDATA.
+     * 
+     * @param content the content to write
+     * @return this object
+     * @throws OperationNotAllowedException 
+     * if called before any call to {@link #openElement} 
+     * or after the first element has been closed
+     */
+    IXmlWriter content(CharSequence content) throws IOException;
+    
+    /**
+     * Closes the last element written.
+     * 
+     * @return this object
+     * @throws OperationNotAllowedException 
+     * if called before any call to {@link #openElement} 
+     * or after the first element has been closed
+     */
+    IXmlWriter closeElement() throws IOException;
+    
+    /**
+     * Closes all pending elements.
+     * When appropriate, resources are also flushed and closed.
+     * No exception is raised when called upon a document whose
+     * root element has already been closed.
+     * 
+     * @return this object
+     * @throws OperationNotAllowedException 
+     * if called before any call to {@link #openElement} 
+     */
+    IXmlWriter closeDocument() throws IOException;
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/InvalidXmlException.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/InvalidXmlException.java
new file mode 100644
index 0000000..e01226f
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/InvalidXmlException.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml.writer;
+
+import java.io.IOException;
+
+/**
+ * Indicates that the requested document would not be well formed.
+ *
+ */
+public class InvalidXmlException extends IOException {
+
+    private static final long serialVersionUID = 1L;
+
+    public InvalidXmlException(String s) {
+        super(s);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/OperationNotAllowedException.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/OperationNotAllowedException.java
new file mode 100644
index 0000000..2009069
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/OperationNotAllowedException.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml.writer;
+
+import java.io.IOException;
+
+/**
+ * Thrown by {@link IXmlWriter} implementations when the current
+ * state does not allow the requested operation.
+ */
+public class OperationNotAllowedException extends IOException {
+
+    private static final long serialVersionUID = 1L;
+
+    public OperationNotAllowedException(String message) {
+        super(message);
+    }
+
+    
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/XmlWriterUtils.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/XmlWriterUtils.java
new file mode 100644
index 0000000..26f540c
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/XmlWriterUtils.java
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml.writer;
+
+import java.io.IOException;
+
+public class XmlWriterUtils {
+
+    public static final void writeAttribute(final IXmlWriter writer, final String name, final boolean booleanValue) throws IOException {
+        final String value = Boolean.toString(booleanValue);
+        writer.attribute(name, value);
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/impl/base/XmlWriter.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/impl/base/XmlWriter.java
new file mode 100644
index 0000000..71ab3b9
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/writer/impl/base/XmlWriter.java
@@ -0,0 +1,650 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.report.xml.writer.impl.base;
+
+import org.apache.commons.collections.ArrayStack;
+import org.apache.rat.report.xml.writer.IXmlWriter;
+import org.apache.rat.report.xml.writer.InvalidXmlException;
+import org.apache.rat.report.xml.writer.OperationNotAllowedException;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * <p>Lightweight {@link IXmlWriter} implementation.</p>
+ * <p>
+ * Requires a wrapper to be used safely in a multithreaded
+ * environment.</p>
+ * <p>
+ * Not intended to be subclassed. Please copy and hack!</p>
+ */
+public final class XmlWriter implements IXmlWriter {
+
+    private static final byte NAME_START_MASK = 1 << 1;
+    private static final byte NAME_MASK = 1 << 2;
+    private static final byte NAME_BODY_CHAR = NAME_MASK;
+    private static final byte NAME_START_OR_BODY_CHAR = NAME_MASK | NAME_START_MASK;
+
+    private final static boolean[] ALLOWED_CHARACTERS = new boolean[1 << 16];
+
+    static {
+        Arrays.fill(ALLOWED_CHARACTERS, false);
+        ALLOWED_CHARACTERS[0x9] = true;
+        ALLOWED_CHARACTERS[0xA] = true;
+        ALLOWED_CHARACTERS[0xD] = true;
+        Arrays.fill(ALLOWED_CHARACTERS, 0x20, 0xD7FF, true);
+        Arrays.fill(ALLOWED_CHARACTERS, 0xE000, 0xFFFD, true);
+    }
+
+    private final static byte[] CHARACTER_CODES = new byte[1 << 16];
+
+    static {
+        // Name ::= (Letter | '_' | ':') (NameChar)*
+        CHARACTER_CODES['_'] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[':'] = NAME_START_OR_BODY_CHAR;
+        // Letter ::= BaseChar | Ideographic
+        // BaseChar
+        Arrays.fill(CHARACTER_CODES, 0x0041, 0x005A, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0061, 0x007A, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x00C0, 0x00D6, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x00D8, 0x00F6, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x00F8, 0x00FF, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0100, 0x0131, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0134, 0x013E, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0141, 0x0148, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x014A, 0x017E, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0180, 0x01C3, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x01CD, 0x01F0, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x01F4, 0x01F5, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x01FA, 0x0217, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0250, 0x02A8, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x02BB, 0x02C1, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0386] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0388, 0x038A, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x038C] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x038E, 0x03A1, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x03A3, 0x03CE, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x03D0, 0x03D6, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x03DA] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x03DC] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x03DE] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x03E0] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x03E2, 0x03F3, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0401, 0x040C, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x040E, 0x044F, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0451, 0x045C, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x045E, 0x0481, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0490, 0x04C4, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x04C7, 0x04C8, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x04CB, 0x04CC, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x04D0, 0x04EB, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x04EE, 0x04F5, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x04F8, 0x04F9, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0531, 0x0556, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0559] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0561, 0x0586, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x05D0, 0x05EA, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x05F0, 0x05F2, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0621, 0x063A, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0641, 0x064A, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0671, 0x06B7, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x06BA, 0x06BE, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x06C0, 0x06CE, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x06D0, 0x06D3, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x06D5] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x06E5, 0x06E6, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0905, 0x0939, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x093D] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0958, 0x0961, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0985, 0x098C, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x098F, 0x0990, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0993, 0x09A8, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x09AA, 0x09B0, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x09B2] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x09B6, 0x09B9, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x09DC, 0x09DD, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x09DF, 0x09E1, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x09F0, 0x09F1, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A05, 0x0A0A, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A0F, 0x0A10, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A13, 0x0A28, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A2A, 0x0A30, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A32, 0x0A33, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A35, 0x0A36, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A38, 0x0A39, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A59, 0x0A5C, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0A5E] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0A72, 0x0A74, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A85, 0x0A8B, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0A8D] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0A8F, 0x0A91, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A93, 0x0AA8, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0AAA, 0x0AB0, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0AB2, 0x0AB3, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0AB5, 0x0AB9, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0ABD] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x0AE0] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0B05, 0x0B0C, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B0F, 0x0B10, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B13, 0x0B28, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B2A, 0x0B30, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B32, 0x0B33, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B36, 0x0B39, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0B3D] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0B5C, 0x0B5D, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B5F, 0x0B61, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B85, 0x0B8A, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B8E, 0x0B90, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B92, 0x0B95, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B99, 0x0B9A, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0B9C] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0B9E, 0x0B9F, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0BA3, 0x0BA4, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0BA8, 0x0BAA, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0BAE, 0x0BB5, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0BB7, 0x0BB9, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C05, 0x0C0C, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C0E, 0x0C10, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C12, 0x0C28, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C2A, 0x0C33, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C35, 0x0C39, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C60, 0x0C61, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C85, 0x0C8C, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C8E, 0x0C90, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C92, 0x0CA8, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0CAA, 0x0CB3, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0CB5, 0x0CB9, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0CDE] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0CE0, 0x0CE1, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D05, 0x0D0C, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D0E, 0x0D10, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D12, 0x0D28, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D2A, 0x0D39, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D60, 0x0D61, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0E01, 0x0E2E, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0E30] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0E32, 0x0E33, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0E40, 0x0E45, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0E81, 0x0E82, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0E84] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0E87, 0x0E88, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0E8A] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x0E8D] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0E94, 0x0E97, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0E99, 0x0E9F, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0EA1, 0x0EA3, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0EA5] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x0EA7] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0EAA, 0x0EAB, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0EAD, 0x0EAE, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0EB0] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0EB2, 0x0EB3, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x0EBD] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0EC0, 0x0EC4, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0F40, 0x0F47, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0F49, 0x0F69, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x10A0, 0x10C5, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x10D0, 0x10F6, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x1100] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x1102, 0x1103, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1105, 0x1107, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x1109] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x110B, 0x110C, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x110E, 0x1112, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x113C] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x113E] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x1140] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x114C] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x114E] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x1150] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x1154, 0x1155, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x1159] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x115F, 0x1161, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x1163] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x1165] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x1167] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x1169] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x116D, 0x116E, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1172, 0x1173, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x1175] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x119E] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x11A8] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x11AB] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x11AE, 0x11AF, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x11B7, 0x11B8, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x11BA] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x11BC, 0x11C2, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x11EB] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x11F0] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x11F9] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x1E00, 0x1E9B, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1EA0, 0x1EF9, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1F00, 0x1F15, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1F18, 0x1F1D, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1F20, 0x1F45, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1F48, 0x1F4D, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1F50, 0x1F57, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x1F59] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x1F5B] = NAME_START_OR_BODY_CHAR;
+        CHARACTER_CODES[0x1F5D] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x1F5F, 0x1F7D, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1F80, 0x1FB4, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1FB6, 0x1FBC, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x1FBE] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x1FC2, 0x1FC4, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1FC6, 0x1FCC, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1FD0, 0x1FD3, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1FD6, 0x1FDB, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1FE0, 0x1FEC, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1FF2, 0x1FF4, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x1FF6, 0x1FFC, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x2126] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x212A, 0x212B, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x212E] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x2180, 0x2182, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x3041, 0x3094, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x30A1, 0x30FA, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x3105, 0x312C, NAME_START_OR_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0xAC00, 0xD7A3, NAME_START_OR_BODY_CHAR);
+        // Ideographic
+        Arrays.fill(CHARACTER_CODES, 0x4E00, 0x9FA5, NAME_START_OR_BODY_CHAR);
+        CHARACTER_CODES[0x3007] = NAME_START_OR_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x3021, 0x3029, NAME_START_OR_BODY_CHAR);
+        // NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
+        CHARACTER_CODES['.'] = NAME_BODY_CHAR;
+        CHARACTER_CODES['-'] = NAME_BODY_CHAR;
+        // CombiningChar 
+        Arrays.fill(CHARACTER_CODES, 0x0300, 0x0345, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0360, 0x0361, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0483, 0x0486, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0591, 0x05A1, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x05A3, 0x05B9, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x05BB, 0x05BD, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x05BF] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x05C1, 0x05C2, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x05C4] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x064B, 0x0652, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0670] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x06D6, 0x06DC, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x06DD, 0x06DF, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x06E0, 0x06E4, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x06E7, 0x06E8, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x06EA, 0x06ED, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0901, 0x0903, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x093C] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x093E, 0x094C, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x094D] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0951, 0x0954, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0962, 0x0963, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0981, 0x0983, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x09BC] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x09BE] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x09BF] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x09C0, 0x09C4, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x09C7, 0x09C8, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x09CB, 0x09CD, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x09D7] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x09E2, 0x09E3, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0A02] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0A3C] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0A3E] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0A3F] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0A40, 0x0A42, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A47, 0x0A48, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A4B, 0x0A4D, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A70, 0x0A71, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A81, 0x0A83, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0ABC] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0ABE, 0x0AC5, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0AC7, 0x0AC9, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0ACB, 0x0ACD, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B01, 0x0B03, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0B3C] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0B3E, 0x0B43, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B47, 0x0B48, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B4B, 0x0B4D, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B56, 0x0B57, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B82, 0x0B83, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0BBE, 0x0BC2, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0BC6, 0x0BC8, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0BCA, 0x0BCD, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0BD7] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0C01, 0x0C03, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C3E, 0x0C44, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C46, 0x0C48, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C4A, 0x0C4D, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C55, 0x0C56, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C82, 0x0C83, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0CBE, 0x0CC4, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0CC6, 0x0CC8, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0CCA, 0x0CCD, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0CD5, 0x0CD6, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D02, 0x0D03, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D3E, 0x0D43, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D46, 0x0D48, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D4A, 0x0D4D, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0D57] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0E31] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0E34, 0x0E3A, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0E47, 0x0E4E, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0EB1] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0EB4, 0x0EB9, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0EBB, 0x0EBC, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0EC8, 0x0ECD, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0F18, 0x0F19, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0F35] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0F37] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0F39] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0F3E] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0F3F] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0F71, 0x0F84, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0F86, 0x0F8B, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0F90, 0x0F95, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0F97] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x0F99, 0x0FAD, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0FB1, 0x0FB7, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x0FB9] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x20D0, 0x20DC, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x20E1] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x302A, 0x302F, NAME_BODY_CHAR);
+        CHARACTER_CODES[0x3099] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x309A] = NAME_BODY_CHAR;
+        // Digit 
+        Arrays.fill(CHARACTER_CODES, 0x0030, 0x0039, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0660, 0x0669, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x06F0, 0x06F9, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0966, 0x096F, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x09E6, 0x09EF, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0A66, 0x0A6F, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0AE6, 0x0AEF, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0B66, 0x0B6F, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0BE7, 0x0BEF, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0C66, 0x0C6F, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0CE6, 0x0CEF, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0D66, 0x0D6F, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0E50, 0x0E59, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0ED0, 0x0ED9, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x0F20, 0x0F29, NAME_BODY_CHAR);
+        // Extender 
+        CHARACTER_CODES[0x00B7] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x02D0] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x02D1] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0387] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0640] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0E46] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x0EC6] = NAME_BODY_CHAR;
+        CHARACTER_CODES[0x3005] = NAME_BODY_CHAR;
+        Arrays.fill(CHARACTER_CODES, 0x3031, 0x3035, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x309D, 0x309E, NAME_BODY_CHAR);
+        Arrays.fill(CHARACTER_CODES, 0x30FC, 0x30FE, NAME_BODY_CHAR);
+
+    }
+
+    private final Writer writer;
+    private final ArrayStack elementNames;
+    private final Set<CharSequence> currentAttributes = new HashSet<CharSequence>();
+
+    boolean elementsWritten = false;
+    boolean inElement = false;
+    boolean prologWritten = false;
+
+    public XmlWriter(final Writer writer) {
+        this.writer = writer;
+        this.elementNames = new ArrayStack();
+    }
+
+    /**
+     * Starts a document by writing a prolog.
+     * Calling this method is optional.
+     * When writing a document fragment, it should <em>not</em> be called.
+     *
+     * @return this object
+     * @throws OperationNotAllowedException if called after the first element has been written
+     *                                      or once a prolog has already been written
+     */
+    public IXmlWriter startDocument() throws IOException {
+        if (elementsWritten) {
+            throw new OperationNotAllowedException("Document already started");
+        }
+        if (prologWritten) {
+            throw new OperationNotAllowedException("Only one prolog allowed");
+        }
+        writer.write("<?xml version='1.0'?>");
+        prologWritten = true;
+        return this;
+    }
+
+    /**
+     * Writes the start of an element.
+     *
+     * @param elementName the name of the element, not null
+     * @return this object
+     * @throws InvalidXmlException          if the name is not valid for an xml element
+     * @throws OperationNotAllowedException if called after the first element has been closed
+     */
+    public IXmlWriter openElement(final CharSequence elementName) throws IOException {
+        if (elementsWritten && elementNames.isEmpty()) {
+            throw new OperationNotAllowedException("Root element already closed. Cannot open new element.");
+        }
+        if (!isValidName(elementName)) {
+            throw new InvalidXmlException("'" + elementName + "' is not a valid element name");
+        }
+        elementsWritten = true;
+        if (inElement) {
+            writer.write('>');
+        }
+        writer.write('<');
+        rawWrite(elementName);
+        inElement = true;
+        elementNames.push(elementName);
+        currentAttributes.clear();
+        return this;
+    }
+
+    /**
+     * Writes an attribute of an element.
+     * Note that this is only allowed directly after {@link #openElement(CharSequence)}
+     * or {@link #attribute}.
+     *
+     * @param name  the attribute name, not null
+     * @param value the attribute value, not null
+     * @return this object
+     * @throws InvalidXmlException          if the name is not valid for an xml attribute
+     *                                      or if a value for the attribute has already been written
+     * @throws OperationNotAllowedException if called after {@link #content(CharSequence)}
+     *                                      or {@link #closeElement()} or before any call to {@link #openElement(CharSequence)}
+     */
+    public IXmlWriter attribute(CharSequence name, CharSequence value) throws IOException {
+        if (elementNames.isEmpty()) {
+            if (elementsWritten) {
+                throw new OperationNotAllowedException("Root element has already been closed.");
+            } else {
+                throw new OperationNotAllowedException("Close called before an element has been opened.");
+            }
+        }
+        if (!isValidName(name)) {
+            throw new InvalidXmlException("'" + name + "' is not a valid attribute name.");
+        }
+        if (!inElement) {
+            throw new InvalidXmlException("Attributes can only be written in elements");
+        }
+        if (currentAttributes.contains(name)) {
+            throw new InvalidXmlException("Each attribute can only be written once");
+        }
+        writer.write(' ');
+        rawWrite(name);
+        writer.write('=');
+        writer.write('\'');
+        writeAttributeContent(value);
+        writer.write('\'');
+        currentAttributes.add(name);
+        return this;
+    }
+
+    private void writeAttributeContent(CharSequence content) throws IOException {
+        writeEscaped(content, true);
+    }
+
+    /**
+     * Writes content.
+     * Calling this method will automatically
+     * Note that this method does not use CDATA.
+     *
+     * @param content the content to write
+     * @return this object
+     * @throws OperationNotAllowedException if called before any call to {@link #openElement}
+     *                                      or after the first element has been closed
+     */
+    public IXmlWriter content(CharSequence content) throws IOException {
+        if (elementNames.isEmpty()) {
+            if (elementsWritten) {
+                throw new OperationNotAllowedException("Root element has already been closed.");
+            } else {
+                throw new OperationNotAllowedException("An element must be opened before content can be written.");
+            }
+        }
+        if (inElement) {
+            writer.write('>');
+        }
+        writeBodyContent(content);
+        inElement = false;
+        return this;
+    }
+
+    private void writeBodyContent(final CharSequence content) throws IOException {
+        writeEscaped(content, false);
+    }
+
+    private void writeEscaped(final CharSequence content, boolean isAttributeContent) throws IOException {
+        final int length = content.length();
+        for (int i = 0; i < length; i++) {
+            char character = content.charAt(i);
+            if (character == '&') {
+                writer.write("&amp;");
+            } else if (character == '<') {
+                writer.write("&lt;");
+            } else if (character == '>') {
+                writer.write("&gt;");
+            } else if (isAttributeContent && character == '\'') {
+                writer.write("&apos;");
+            } else if (isAttributeContent && character == '\"') {
+                writer.write("&quot;");
+            } else if (isOutOfRange(character)) {
+                writer.write('?');
+            } else {
+                writer.write(character);
+            }
+        }
+    }
+
+    private boolean isOutOfRange(final char character) {
+        return !ALLOWED_CHARACTERS[character];
+    }
+
+    /**
+     * Closes the last element written.
+     *
+     * @return this object
+     * @throws OperationNotAllowedException if called before any call to {@link #openElement}
+     *                                      or after the first element has been closed
+     */
+    public IXmlWriter closeElement() throws IOException {
+        if (elementNames.isEmpty()) {
+            if (elementsWritten) {
+                throw new OperationNotAllowedException("Root element has already been closed.");
+            } else {
+                throw new OperationNotAllowedException("Close called before an element has been opened.");
+            }
+        }
+        final CharSequence elementName = (CharSequence) elementNames.pop();
+        if (inElement) {
+            writer.write('/');
+            writer.write('>');
+        } else {
+            writer.write('<');
+            writer.write('/');
+            rawWrite(elementName);
+            writer.write('>');
+        }
+        writer.flush();
+        inElement = false;
+        return this;
+    }
+
+
+    /**
+     * Closes all pending elements.
+     * When appropriate, resources are also flushed and closed.
+     * No exception is raised when called upon a document whose
+     * root element has already been closed.
+     *
+     * @return this object
+     * @throws OperationNotAllowedException if called before any call to {@link #openElement}
+     */
+    public IXmlWriter closeDocument() throws IOException {
+        if (elementNames.isEmpty() && !elementsWritten) {
+            throw new OperationNotAllowedException("Close called before an element has been opened.");
+        }
+        while (!elementNames.isEmpty()) {
+            closeElement();
+        }
+        writer.flush();
+        return this;
+    }
+
+    private void rawWrite(final CharSequence sequence) throws IOException {
+        for (int i = 0; i < sequence.length(); i++) {
+            final char charAt = sequence.charAt(i);
+            writer.write(charAt);
+        }
+    }
+
+    private boolean isValidName(final CharSequence sequence) {
+        boolean result = true;
+        final int length = sequence.length();
+        for (int i = 0; i < length; i++) {
+            char character = sequence.charAt(i);
+            if (i == 0) {
+                if (!isValidNameStart(character)) {
+                    result = false;
+                    break;
+                }
+            } else {
+                if (!isValidNameBody(character)) {
+                    result = false;
+                    break;
+                }
+            }
+        }
+        return result;
+    }
+
+    private boolean isValidNameStart(final char character) {
+        final byte code = CHARACTER_CODES[character];
+        return (code & NAME_START_MASK) > 0;
+    }
+
+    private boolean isValidNameBody(final char character) {
+        final byte code = CHARACTER_CODES[character];
+        return (code & NAME_MASK) > 0;
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/ArchiveWalker.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/ArchiveWalker.java
new file mode 100644
index 0000000..57caccb
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/ArchiveWalker.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+
+package org.apache.rat.walker;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FilenameFilter;
+import java.io.IOException;
+
+import org.apache.commons.compress.archivers.ArchiveEntry;
+import org.apache.commons.compress.archivers.ArchiveInputStream;
+import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
+import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
+import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
+import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.RatException;
+import org.apache.rat.document.impl.ArchiveEntryDocument;
+import org.apache.rat.report.IReportable;
+import org.apache.rat.report.RatReport;
+
+/**
+ * Walks various kinds of archives files
+ */
+public class ArchiveWalker extends Walker implements IReportable {
+
+    /**
+     * Constructs a walker.
+     * @param file not null
+     * @param filter filters input files (optional), 
+     * or null when no filtering should be performed
+     * @throws FileNotFoundException in case of I/O errors. 
+     */
+    public ArchiveWalker(File file, final FilenameFilter filter) throws FileNotFoundException {
+        super(file, filter);
+    }
+    
+    /**
+     * Run a report over all files and directories in this GZIPWalker,
+     * ignoring any files/directories set to be ignored.
+     * 
+     * @param report the defined RatReport to run on this GZIP walker.
+     * 
+     */
+    public void run(final RatReport report) throws RatException {
+
+        try {
+            ArchiveInputStream input;
+
+            /* I am really sad that classes aren't first-class objects in
+               Java :'( */
+            try {
+                input = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream(file)));
+            } catch (IOException e) {
+                try {
+                    input = new TarArchiveInputStream(new BZip2CompressorInputStream(new FileInputStream(file)));
+                } catch (IOException e2) {
+                    input = new ZipArchiveInputStream(new FileInputStream(file));
+                }
+            }
+
+            ArchiveEntry entry = input.getNextEntry();
+            while (entry != null) {
+                File f = new File(entry.getName());
+                byte[] contents = new byte[(int) entry.getSize()];
+                int offset = 0;
+                int length = contents.length;
+
+                while (offset < entry.getSize()) {
+                    int actualRead = input.read(contents, offset, length);
+                    length -= actualRead;
+                    offset += actualRead;
+                }
+
+                if (!entry.isDirectory() && !ignored(f)) {
+                    report(report, contents, f);
+                }
+
+                entry = input.getNextEntry();
+            }
+
+            input.close();
+        } catch (IOException e) {
+            throw new RatException(e);
+        }
+    }
+
+    /**
+     * Report on the given file.
+     * 
+     * @param report the report to process the file with
+     * @param file the file to be reported on
+     * @throws RatException
+     */
+    private void report(final RatReport report, byte[] contents, File file) throws RatException {
+
+        Document document = new ArchiveEntryDocument(file, contents);
+        report.report(document);
+
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/DirectoryWalker.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/DirectoryWalker.java
new file mode 100644
index 0000000..49dfcb4
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/DirectoryWalker.java
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+
+package org.apache.rat.walker;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.RatException;
+import org.apache.rat.document.impl.FileDocument;
+import org.apache.rat.report.IReportable;
+import org.apache.rat.report.RatReport;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.Arrays;
+import java.util.regex.Pattern;
+
+/**
+ * Walks directories.
+ */
+public class DirectoryWalker extends Walker implements IReportable {
+
+    protected static final FileNameComparator COMPARATOR = new FileNameComparator();
+
+    public DirectoryWalker(File file) {
+        this(file, (FilenameFilter) null);
+    }
+
+    /**
+     * Constructs a walker.
+     *
+     * @param file   not null
+     * @param filter filters input files (optional),
+     *               or null when no filtering should be performed
+     */
+    public DirectoryWalker(File file, final FilenameFilter filter) {
+        super(file.getPath(), file, filter);
+    }
+
+    public DirectoryWalker(File file, final Pattern ignoreNameRegex) {
+        super(file.getPath(), file, regexFilter(ignoreNameRegex));
+    }
+
+    public boolean isRestricted() {
+        return false;
+    }
+
+    /**
+     * Process a directory, restricted directories will be ignored.
+     *
+     * @param report The report to process the directory with
+     * @param file   the directory to process
+     * @throws RatException
+     */
+    private void processDirectory(RatReport report, final File file) throws RatException {
+        if (!isRestricted(file)) {
+            process(report, file);
+        }
+    }
+
+    /**
+     * Run a report over all files and directories in this DirectoryWalker,
+     * ignoring any files/directories set to be ignored.
+     *
+     * @param report the defined RatReport to run on this Directory walker.
+     */
+    public void run(final RatReport report) throws RatException {
+        process(report, file);
+    }
+
+    /**
+     * Process a directory, ignoring any files/directories set to be ignored.
+     *
+     * @param report the report to use in processing
+     * @param file   the run the report against
+     * @throws RatException
+     */
+    private void process(final RatReport report, final File file) throws RatException {
+        final File[] files = file.listFiles();
+        if (files != null) {
+            Arrays.sort(files, COMPARATOR);
+            // breadth first traversal
+            processNonDirectories(report, files);
+            processDirectories(report, files);
+        }
+    }
+
+    /**
+     * Process all directories in a set of file objects, ignoring any directories set to be ignored.
+     *
+     * @param report the report to use in processing
+     * @param files  the files to process (only directories will be processed)
+     * @throws RatException
+     */
+    private void processDirectories(final RatReport report, final File[] files) throws RatException {
+        for (final File file : files) {
+            if (!ignored(file) && file.isDirectory()) {
+                processDirectory(report, file);
+            }
+        }
+    }
+
+    /**
+     * Process all files in a set of file objects, ignoring any files set to be ignored.
+     *
+     * @param report the report to use in processing
+     * @param files  the files to process (only files will be processed)
+     * @throws RatException
+     */
+    private void processNonDirectories(final RatReport report, final File[] files) throws RatException {
+        for (final File file : files) {
+            if (!ignored(file) && !file.isDirectory()) {
+                report(report, file);
+            }
+        }
+
+    }
+
+    /**
+     * Report on the given file.
+     *
+     * @param report the report to process the file with
+     * @param file   the file to be reported on
+     * @throws RatException
+     */
+    private void report(final RatReport report, File file) throws RatException {
+
+        Document document = new FileDocument(file);
+        report.report(document);
+
+    }
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/FileNameComparator.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/FileNameComparator.java
new file mode 100644
index 0000000..c3ed803
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/FileNameComparator.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.walker;
+
+import java.io.File;
+import java.util.Comparator;
+
+class FileNameComparator implements Comparator<File> {
+
+    public int compare(File firstFile, File secondFile) {
+        int result = 0;
+        if (firstFile == null) {
+            if (secondFile != null) {
+                result = 1;
+            }
+        } else {
+            if (secondFile == null) {
+                result = -1;
+            } else {
+                final String firstName = firstFile.getName();
+                final String secondName = secondFile.getName();
+                result = firstName.compareTo(secondName);
+            }
+        }
+        return result;
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/Walker.java b/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/Walker.java
new file mode 100644
index 0000000..06f8bd7
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/java/org/apache/rat/walker/Walker.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+
+package org.apache.rat.walker;
+
+import org.apache.rat.report.IReportable;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.regex.Pattern;
+
+/**
+ * Abstract walker.
+ */
+public abstract class Walker implements IReportable {
+
+    protected final File file;
+    protected final String name;
+
+    protected final FilenameFilter filter;
+
+    protected static FilenameFilter regexFilter(final Pattern pattern) {
+        return new FilenameFilter() {
+            public boolean accept(File dir, String name) {
+                final boolean result;
+                if (pattern == null) {
+                    result = true;
+                } else {
+                    result = !pattern.matcher(name).matches();
+                }
+                return result;
+            }
+        };
+    }
+
+    protected boolean isRestricted(File file) {
+        return file.getName().startsWith(".");
+    }
+ 
+    protected final boolean ignored(final File file) {
+        boolean result = false;
+        if (filter != null) {
+            final String name = file.getName();
+            final File dir = file.getParentFile();
+            result = !filter.accept(dir, name);
+        }
+        return result;
+    }
+
+    public Walker(File file, final FilenameFilter filter) {
+        this(file.getPath(), file, filter);
+    }
+
+    protected Walker(final String name, final File file, final FilenameFilter filter) {
+        this.name = name;
+        this.file = file;
+        this.filter = filter;
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl b/trunk/apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl
new file mode 100644
index 0000000..2ea353f
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl
@@ -0,0 +1,95 @@
+<?xml version='1.0' ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one   *
+ or more contributor license agreements.  See the NOTICE file *
+ distributed with this work for additional information        *
+ regarding copyright ownership.  The ASF licenses this file   *
+ to you under the Apache License, Version 2.0 (the            *
+ "License"); you may not use this file except in compliance   *
+ with the License.  You may obtain a copy of the License at   *
+                                                              *
+   http://www.apache.org/licenses/LICENSE-2.0                 *
+                                                              *
+ Unless required by applicable law or agreed to in writing,   *
+ software distributed under the License is distributed on an  *
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ KIND, either express or implied.  See the License for the    *
+ specific language governing permissions and limitations      *
+ under the License.                                           *
+-->
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method='text'/>
+<xsl:template match='/'>
+*****************************************************
+Summary
+-------
+Generated at: <xsl:value-of select='rat-report/@timestamp'/>
+
+Notes: <xsl:value-of select='count(descendant::type[attribute::name="notice"])'/>
+Binaries: <xsl:value-of select='count(descendant::type[attribute::name="binary"])'/>
+Archives: <xsl:value-of select='count(descendant::type[attribute::name="archive"])'/>
+Standards: <xsl:value-of select='count(descendant::type[attribute::name="standard"])'/>
+
+Apache Licensed: <xsl:value-of select='count(descendant::header-type[attribute::name="AL   "])'/>
+Generated Documents: <xsl:value-of select='count(descendant::header-type[attribute::name="GEN  "])'/>
+
+JavaDocs are generated, thus a license header is optional.
+Generated files do not require license headers.
+
+<xsl:value-of select='count(descendant::header-type[attribute::name="?????"])'/> Unknown Licenses
+<xsl:if test="descendant::resource[license-approval/@name='false']">
+*****************************************************
+
+Files with unapproved licenses:
+
+<xsl:for-each select='descendant::resource[license-approval/@name="false"]'>
+  <xsl:text>  </xsl:text>
+  <xsl:value-of select='@name'/>
+  <xsl:text>
+</xsl:text>
+</xsl:for-each>
+*****************************************************
+</xsl:if>
+<xsl:if test="descendant::resource[type/@name='archive']">
+Archives:
+<xsl:for-each select='descendant::resource[type/@name="archive"]'>
+ + <xsl:value-of select='@name'/>
+ <xsl:text>
+ </xsl:text>
+ </xsl:for-each>
+</xsl:if>
+*****************************************************
+  Files with Apache License headers will be marked AL
+  Binary files (which do not require any license headers) will be marked B
+  Compressed archives will be marked A
+  Notices, licenses etc. will be marked N
+ <xsl:for-each select='descendant::resource'>
+  <xsl:choose>
+     <xsl:when test='license-approval/@name="false"'>!</xsl:when>
+     <xsl:otherwise><xsl:text> </xsl:text></xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+     <xsl:when test='type/@name="notice"'>N    </xsl:when>
+     <xsl:when test='type/@name="archive"'>A    </xsl:when>
+     <xsl:when test='type/@name="binary"'>B    </xsl:when>
+     <xsl:when test='type/@name="standard"'><xsl:value-of select='header-type/@name'/></xsl:when>
+     <xsl:otherwise>!!!!!</xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>
+ </xsl:text>
+ </xsl:for-each>
+*****************************************************
+<xsl:if test="descendant::resource[header-type/@name='?????']">
+ Printing headers for text files without a valid license header...
+ <xsl:for-each select='descendant::resource[header-type/@name="?????"]'>
+=====================================================
+== File: <xsl:value-of select='@name'/>
+=====================================================
+<xsl:value-of select='header-sample'/>
+</xsl:for-each>
+</xsl:if>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl b/trunk/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl
new file mode 100644
index 0000000..040909b
--- /dev/null
+++ b/trunk/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl
@@ -0,0 +1,31 @@
+<?xml version='1.0' ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one   *
+ or more contributor license agreements.  See the NOTICE file *
+ distributed with this work for additional information        *
+ regarding copyright ownership.  The ASF licenses this file   *
+ to you under the Apache License, Version 2.0 (the            *
+ "License"); you may not use this file except in compliance   *
+ with the License.  You may obtain a copy of the License at   *
+                                                              *
+   http://www.apache.org/licenses/LICENSE-2.0                 *
+                                                              *
+ Unless required by applicable law or agreed to in writing,   *
+ software distributed under the License is distributed on an  *
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ KIND, either express or implied.  See the License for the    *
+ specific language governing permissions and limitations      *
+ under the License.                                           *
+-->
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method='text'/>
+<xsl:template match='/'>Files with unapproved licenses:
+<xsl:for-each select='descendant::resource[license-approval/@name="false"]'>
+  <xsl:text>  </xsl:text>
+  <xsl:value-of select='@name'/>
+  <xsl:text>
+</xsl:text>
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/trunk/apache-rat-core/src/site/apt/index.apt.vm b/trunk/apache-rat-core/src/site/apt/index.apt.vm
new file mode 100644
index 0000000..770b109
--- /dev/null
+++ b/trunk/apache-rat-core/src/site/apt/index.apt.vm
@@ -0,0 +1,72 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~
+~~       http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                   --------------------------
+                   Core Module
+                   --------------------------
+
+About Apache Rat
+
+ Rat audits software distributions, with a special interest in headers.
+ If this isn't quite what you're looking for then take a look at the
+ other products developed by {{{http://creadur.apache.org}Apache Creadur}},
+ including {{{http://creadur.apache.org/whisker}Apache Whisker}} which audits
+ and generates legal (for example <<<LICENSE>>>) documents for
+ complex software distributions.
+
+Developing Rat
+
+* Introducing the Modules
+
+ This module, <<<apache-rat-core>>>, is a library containing the basic
+ engine. Other modules allow this engine to be run in various ways.
+
+*----------+--------------+----------------+
+ <<Runs Rat via>> | <<Requires>>     | <<Module>>       |
+*----------+--------------+----------------+
+ An Ant task | {{{http://ant.apache.org}Apache Ant}}     | {{{../apache-rat-tasks}apache-rat-tasks}}      |
+*----------+--------------+----------------+
+ The command line | Java\u00ae     | {{{../apache-rat}apache-rat}}       |
+*----------+--------------+----------------+
+ A Maven plugin | {{{http://maven.apache.org}Apache Maven}}     | {{{../apache-rat-plugin}apache-rat-plugin}}       |
+*----------+--------------+----------------+
+<<Modules that run Rat>>
+
+ Support for new build tools and alternative ways to run rat should be coded
+ in new modules building on <<<apache-rat-core>>>. Developers interested in
+ improving existing support for a specific build tool should start by taking
+ a look at that module.
+
+* Diving into Core
+
+ Browse the source {{{./xref/index.html}here}}.
+
+ Read the JavaDocs {{{./apidocs/index.html}here}}.
+
+ Check out with {{{http://subversion.apache.org}Subversion}}
+
++------------------------------------------+
+svn co http://svn.apache.org/repos/asf/creadur/rat/trunk/
++------------------------------------------+
+
+ Build with {{{http://maven.apache.org/} Apache Maven}}
+
++------------------------------------------+
+mvn install
++------------------------------------------+
+
+ Subscribe to our {{{./mail-lists.html}mailing lists}} for a warm welcome one and all.
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/site/resources/css/site.css b/trunk/apache-rat-core/src/site/resources/css/site.css
new file mode 100644
index 0000000..3683f87
--- /dev/null
+++ b/trunk/apache-rat-core/src/site/resources/css/site.css
@@ -0,0 +1,27 @@
+/*
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.    
+*/
+footer {
+    font-family: "Mate SC", "Lucida Console", Monaco, monospace;
+    font-size: 9pt;
+    padding: 5px 10px;
+    text-align: justify;
+    border: thin solid #D0D0D0;
+    background-color: #F8F8F8;
+    color: #404040;
+}
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/site/site.xml b/trunk/apache-rat-core/src/site/site.xml
new file mode 100644
index 0000000..56b93ce
--- /dev/null
+++ b/trunk/apache-rat-core/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/DECORATION/1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
+         name="Apache Rat&trade; Core">
+  <body>   
+    <head>
+        <link 
+            href='http://fonts.googleapis.com/css?family=Mate+SC' 
+            rel='stylesheet' 
+            type='text/css'/>
+    </head>
+   
+    <menu ref="parent"/>
+    <menu ref="reports"/>
+  </body>
+</project>
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/ReportTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/ReportTest.java
new file mode 100644
index 0000000..bccab10
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/ReportTest.java
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat;
+
+import org.apache.rat.analysis.util.HeaderMatcherMultiplexer;
+import org.apache.rat.test.utils.Resources;
+import org.apache.rat.walker.DirectoryWalker;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.StringWriter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class ReportTest {
+    private static final String NL = System.getProperty("line.separator");
+    private static final String PARAGRAPH = "*****************************************************";
+    private static final String FILE_PARAGRAPH = "=====================================================";
+
+    private static final String HEADER =
+            NL +
+                    PARAGRAPH + NL +//
+                    "Summary" + NL +//
+                    "-------" + NL +//
+                    "Generated at: ";
+
+    private static String getElementsReports(String pElementsPath) {
+        return
+                NL + "Notes: 2" + NL +//
+                        "Binaries: 1" + NL +//
+                        "Archives: 1" + NL +//
+                        "Standards: 6" + NL +//
+                        "" + NL +//
+                        "Apache Licensed: 3" + NL +//
+                        "Generated Documents: 0" + NL +//
+                        "" + NL +//
+                        "JavaDocs are generated, thus a license header is optional." + NL +//
+                        "Generated files do not require license headers." + NL +//
+                        "" + NL +//
+                        "2 Unknown Licenses" + NL +//
+                        "" + NL +//
+                        PARAGRAPH + NL +//
+                        "" + NL +//
+                        "Files with unapproved licenses:" + NL +//
+                        "" + NL +//
+                        "  " + pElementsPath + "/Source.java" + NL +//
+                        "  " + pElementsPath + "/sub/Empty.txt" + NL +//
+                        "" + NL +//
+                        PARAGRAPH + NL +//
+                        "" + NL +//
+                        "Archives:" + NL +//
+                        "" + NL +//
+                        " + " + pElementsPath + "/dummy.jar" + NL +//
+                        " " + NL +//
+                        PARAGRAPH + NL +//
+                        "  Files with Apache License headers will be marked AL" + NL +//
+                        "  Binary files (which do not require any license headers) will be marked B" + NL +//
+                        "  Compressed archives will be marked A" + NL +//
+                        "  Notices, licenses etc. will be marked N" + NL +//
+                        "  MIT   " + pElementsPath + "/ILoggerFactory.java" + NL +//
+                        "  B     " + pElementsPath + "/Image.png" + NL +//
+                        "  N     " + pElementsPath + "/LICENSE" + NL +//
+                        "  N     " + pElementsPath + "/NOTICE" + NL +//
+                        " !????? " + pElementsPath + "/Source.java" + NL +//
+                        "  AL    " + pElementsPath + "/Text.txt" + NL +//
+                        "  AL    " + pElementsPath + "/Xml.xml" + NL +//
+                        "  AL    " + pElementsPath + "/buildr.rb" + NL +//
+                        "  A     " + pElementsPath + "/dummy.jar" + NL +//
+                        " !????? " + pElementsPath + "/sub/Empty.txt" + NL +//
+                        " " + NL +//
+                        PARAGRAPH + NL +//
+                        NL +//
+                        " Printing headers for text files without a valid license header..." + NL +//
+                        " " + NL +//
+                        FILE_PARAGRAPH + NL +//
+                        "== File: " + pElementsPath + "/Source.java" + NL +//
+                        FILE_PARAGRAPH + NL + //
+                        "package elements;" + NL +//
+                        "" + NL +//
+                        "/*" + NL +//
+                        " * This file does intentionally *NOT* contain an AL license header," + NL +//
+                        " * because it is used in the test suite." + NL +//
+                        " */" + NL +//
+                        "public class Source {" + NL +//
+                        "" + NL +//
+                        "}" + NL +//
+                        "" + NL +//
+                        FILE_PARAGRAPH + NL +//
+                        "== File: " + pElementsPath + "/sub/Empty.txt" + NL +//
+                        FILE_PARAGRAPH + NL +//
+                        NL;
+    }
+
+    @Test
+    public void plainReportWithArchivesAndUnapprovedLicenses() throws Exception {
+        StringWriter out = new StringWriter();
+        HeaderMatcherMultiplexer matcherMultiplexer = new HeaderMatcherMultiplexer(Defaults.DEFAULT_MATCHERS);
+        final String elementsPath = Resources.getResourceDirectory("elements/Source.java");
+        final ReportConfiguration configuration = new ReportConfiguration();
+        configuration.setApproveDefaultLicenses(true);
+        configuration.setHeaderMatcher(matcherMultiplexer);
+        Report.report(out, new DirectoryWalker(new File(elementsPath)),
+                Defaults.getPlainStyleSheet(), configuration);
+
+        String result = out.getBuffer().toString();
+        assertTrue("'Generated at' is present in " + result,
+                result.startsWith(HEADER));
+
+        final int generatedAtLineEnd = result.indexOf(NL, HEADER.length());
+
+        final String elementsReports = getElementsReports(elementsPath);
+        assertEquals("Report created was: " + result,
+                elementsReports,
+                result.substring(generatedAtLineEnd + NL.length()));
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/ReportTransformerTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/ReportTransformerTest.java
new file mode 100644
index 0000000..e9f6338
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/ReportTransformerTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat;
+
+import org.apache.rat.test.utils.Resources;
+import org.junit.Test;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import static org.junit.Assert.assertNotNull;
+
+public class ReportTransformerTest {
+    
+    private static final String SIMPLE_CONTENT =  
+        "<?xml version='1.0'?>" +
+        "<directory name='sub'>" +
+        "<standard name='Empty.txt'>" +
+        "<license code='?????' name='UNKNOWN' version='' approved='false' generated='false'></license>" +
+        "</standard>" +
+        "<directory name='.svn' restricted='true'/>" +
+        "</directory>";
+
+    @Test
+    public void testTransform() throws Exception {
+        StringWriter writer = new StringWriter();
+        assertNotNull(writer);
+        StringReader in = new StringReader(SIMPLE_CONTENT);
+        ReportTransformer transformer = new ReportTransformer(writer, 
+                new BufferedReader(new FileReader(Resources.getMainResourceFile("/org/apache/rat/plain-rat.xsl"))),
+                in);
+        transformer.transform();
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/AnalyserFactoryTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/AnalyserFactoryTest.java
new file mode 100644
index 0000000..30d3365
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/AnalyserFactoryTest.java
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.document.IDocumentAnalyser;
+import org.apache.rat.document.impl.MonolithicFileDocument;
+import org.apache.rat.report.claim.impl.xml.SimpleXmlClaimReporter;
+import org.apache.rat.report.xml.writer.impl.base.XmlWriter;
+import org.apache.rat.test.utils.Resources;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.StringWriter;
+
+import static org.junit.Assert.assertEquals;
+
+public class AnalyserFactoryTest {
+
+    private static final IHeaderMatcher MATCHES_NOTHING_MATCHER = new IHeaderMatcher() {
+        public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+            return false;
+        }
+
+        public void reset() {
+        }
+    };
+
+    private StringWriter out;
+    private SimpleXmlClaimReporter reporter;
+    private IDocumentAnalyser analyser;
+
+    @Before
+    public void setUp() throws Exception {
+        out = new StringWriter();
+        final XmlWriter writer = new XmlWriter(out);
+        reporter = new SimpleXmlClaimReporter(writer);
+        analyser = DefaultAnalyserFactory.createDefaultAnalyser(MATCHES_NOTHING_MATCHER);
+    }
+
+    @Test
+    public void standardTypeAnalyser() throws Exception {
+        final MonolithicFileDocument document = new MonolithicFileDocument(Resources.getResourceFile("/elements/Text.txt"));
+        analyser.analyse(document);
+        reporter.report(document);
+        assertEquals("Open standard element", //
+                "<resource name='src/test/resources/elements/Text.txt'><header-sample>/*\n" +
+                        " * Licensed to the Apache Software Foundation (ASF) under one\n" +
+                        " * or more contributor license agreements.  See the NOTICE file\n" +
+                        " * distributed with this work for additional information\n" +
+                        " * regarding copyright ownership.  The ASF licenses this file\n" +
+                        " * to you under the Apache License, Version 2.0 (the \"License\");\n" +
+                        " * you may not use this file except in compliance with the License.\n" +
+                        " * You may obtain a copy of the License at\n" +
+                        " *\n" +
+                        " *    http://www.apache.org/licenses/LICENSE-2.0\n" +
+                        " *\n" +
+                        " * Unless required by applicable law or agreed to in writing,\n" +
+                        " * software distributed under the License is distributed on an\n" +
+                        " * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n" +
+                        " * KIND, either express or implied.  See the License for the\n" +
+                        " * specific language governing permissions and limitations\n" +
+                        " * under the License.    \n" +
+                        " */\n" +
+                        "\n" +
+                        "            \n" +
+                        "</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/>", out.toString());
+    }
+
+    @Test
+    public void noteTypeAnalyser() throws Exception {
+        final MonolithicFileDocument document = new MonolithicFileDocument(Resources.getResourceFile("/elements/LICENSE"));
+        analyser.analyse(document);
+        reporter.report(document);
+        assertEquals("Open note element", "<resource name='src/test/resources/elements/LICENSE'><type name='notice'/>", out.toString());
+    }
+
+    @Test
+    public void binaryTypeAnalyser() throws Exception {
+        final MonolithicFileDocument document = new MonolithicFileDocument(Resources.getResourceFile("/elements/Image.png"));
+        analyser.analyse(document);
+        reporter.report(document);
+        assertEquals("Open binary element", "<resource name='src/test/resources/elements/Image.png'><type name='binary'/>", out.toString());
+    }
+
+    @Test
+    public void archiveTypeAnalyser() throws Exception {
+        final MonolithicFileDocument document = new MonolithicFileDocument(Resources.getResourceFile("/elements/dummy.jar"));
+        analyser.analyse(document);
+        reporter.report(document);
+        assertEquals("Open archive element", "<resource name='src/test/resources/elements/dummy.jar'><type name='archive'/>", out.toString());
+    }
+
+    @Test
+    public void archiveTypeAnalyserIntelliJ() throws Exception {
+        final MonolithicFileDocument document = new MonolithicFileDocument(Resources.getResourceFile("/elements/dummy.jar"));
+        analyser.analyse(document);
+        reporter.report(document);
+        assertEquals("Open archive element", "<resource name='src/test/resources/elements/dummy.jar'><type name='archive'/>", out.toString());
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/HeaderCheckWorkerTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/HeaderCheckWorkerTest.java
new file mode 100644
index 0000000..e7ad809
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/HeaderCheckWorkerTest.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+
+package org.apache.rat.analysis;
+
+import org.apache.rat.analysis.license.ApacheSoftwareLicense20;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.junit.Test;
+
+import java.io.StringReader;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class HeaderCheckWorkerTest {
+
+    @Test
+    public void isFinished() throws Exception {
+        final Document subject = new MockLocation("subject");
+        HeaderCheckWorker worker = new HeaderCheckWorker(new StringReader(""), new ApacheSoftwareLicense20(), subject);
+        assertFalse(worker.isFinished());
+        worker.read();
+        assertTrue(worker.isFinished());
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/MockLicenseMatcher.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/MockLicenseMatcher.java
new file mode 100644
index 0000000..3c7ff13
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/MockLicenseMatcher.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis;
+
+import org.apache.rat.api.Document;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MockLicenseMatcher implements IHeaderMatcher {
+
+    public final List<String> lines = new ArrayList<String>();
+    public int resets = 0;
+    public boolean result = true;
+
+    public boolean match(Document subject, String line) {
+        lines.add(line);
+        return result;
+    }
+
+    public void reset() {
+        resets++;
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequiredTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequiredTest.java
new file mode 100644
index 0000000..d9fc72f
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequiredTest.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.generation;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.regex.Pattern;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class GeneratedLicenseNotRequiredTest {
+
+    private GeneratedLicenseNotRequired license;
+    private MockClaimReporter reporter;
+    
+    @Before
+    public void setUp() throws Exception {
+        Pattern[] patterns = {Pattern.compile(".*Generated")};
+        license = new GeneratedLicenseNotRequired(patterns);
+        reporter = new MockClaimReporter();
+    }
+
+    @Test
+    public void match() throws Exception {
+        final Document subject = new MockLocation("subject");
+        assertFalse("Does not match regex", license.match(subject, "Not at all"));
+        assertTrue("Matches regex", license.match(subject, "This is Generated"));
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequiredTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequiredTest.java
new file mode 100644
index 0000000..2f22cdc
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequiredTest.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.generation;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+import org.apache.rat.test.utils.Resources;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class JavaDocLicenseNotRequiredTest {
+
+    private MockClaimReporter reporter;
+    private JavaDocLicenseNotRequired license;
+
+    @Before
+    public void setUp() throws Exception {
+        license = new JavaDocLicenseNotRequired();
+        reporter = new MockClaimReporter();
+    }
+
+    @Test
+    public void matchIndexDoc() throws Exception {
+        boolean result = readAndMatch("index.html");
+        assertTrue("Is a javadoc", result);
+    }
+
+    @Test
+    public void matchClassDoc() throws Exception {
+        boolean result = readAndMatch("ArchiveElement.html");
+        assertTrue("Is a javadoc", result);
+    }
+
+    @Test
+    public void matchNonJavaDoc() throws Exception {
+        boolean result = readAndMatch("notjavadoc.html");
+        assertFalse("Not javadocs and so should return null", result);
+    }
+
+    boolean readAndMatch(String name) throws Exception {
+        File file = Resources.getResourceFile("javadocs/" + name);
+        boolean result = false;
+        BufferedReader in = null;
+        try {
+            in = new BufferedReader(new FileReader(file));
+            String line = in.readLine();
+            final Document subject = new MockLocation("subject");
+            while (line != null && !result) {
+                result = license.match(subject, line);
+                line = in.readLine();
+            }
+        } finally {
+                IOUtils.closeQuietly(in);
+        }
+            return result;
+        }
+    }
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20Test.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20Test.java
new file mode 100644
index 0000000..838ae0b
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20Test.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class ApacheSoftwareLicense20Test {
+
+    private MockClaimReporter reporter;
+
+    @Before
+    public void setUp() throws Exception {
+        reporter = new MockClaimReporter();
+    }
+
+    @Test
+    public void matches() throws Exception {
+        ApacheSoftwareLicense20 worker = new ApacheSoftwareLicense20();
+        assertTrue(worker.matches(ApacheSoftwareLicense20.FIRST_LICENSE_LINE));
+        assertTrue(worker.matches("    Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.matches("Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.matches(" * Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.matches(" // Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.matches(" /* Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.matches("    Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.matches(" ## Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.matches(" ## Licensed under the Apache License, Version 2.0 (the \"License\") ##);"));
+        assertFalse(worker.matches("'Behold, Telemachus! (nor fear the sight,)"));
+    }
+
+    @Test
+    public void match() throws Exception {
+        ApacheSoftwareLicense20 worker = new ApacheSoftwareLicense20();
+        final Document subject = new MockLocation("subject");
+        assertTrue(worker.match(subject, ApacheSoftwareLicense20.FIRST_LICENSE_LINE));
+        assertTrue(worker.match(subject, "    Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.match(subject, "Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.match(subject, " * Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.match(subject, " // Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.match(subject, " /* Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.match(subject, "    Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.match(subject, " ## Licensed under the Apache License, Version 2.0 (the \"License\");"));
+        assertTrue(worker.match(subject, " ## Licensed under the Apache License, Version 2.0 (the \"License\") ##);"));
+        assertFalse(worker.match(subject, "'Behold, Telemachus! (nor fear the sight,)"));
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/AppliedApacheSoftwareLicense20Test.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/AppliedApacheSoftwareLicense20Test.java
new file mode 100644
index 0000000..94c0917
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/AppliedApacheSoftwareLicense20Test.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+import org.apache.rat.test.utils.Resources;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.BufferedReader;
+import java.io.StringReader;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class AppliedApacheSoftwareLicense20Test {
+
+    private static final String HEADER
+            = "/*\n"
+            + " *  Copyright 2012-2013 FooBar.\n"
+            + " *\n"
+            + " *  Licensed under the Apache License, Version 2.0 (the \"License\");\n"
+            + " *  you may not use this file except in compliance with the License.\n"
+            + " *\n"
+            + " *  You may obtain a copy of the License at\n"
+            + " *       http://www.apache.org/licenses/LICENSE-2.0\n"
+            + " *\n"
+            + " *  Unless required by applicable law or agreed to in writing, software\n"
+            + " *  distributed under the License is distributed on an \"AS IS\" BASIS,\n"
+            + " *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"
+            + " *  See the License for the specific language governing permissions and\n"
+            + " *  limitations under the License.\n"
+            + " */\n";
+
+    private AppliedApacheSoftwareLicense20 license;
+
+    private MockClaimReporter reporter;
+
+    @Before
+    public void setUp() throws Exception {
+        license = new AppliedApacheSoftwareLicense20("FooBar");
+        reporter = new MockClaimReporter();
+    }
+
+    @Test
+    public void match() throws Exception {
+        BufferedReader in = new BufferedReader(new StringReader(HEADER));
+        String line = in.readLine();
+        boolean result = false;
+        final Document subject = new MockLocation("subject");
+        while (line != null) {
+            result = license.match(subject, line);
+            line = in.readLine();
+        }
+        assertTrue("Applied AL2.0 license should be matched", result);
+        license.reset();
+        result = license.match(subject, "New line");
+        assertFalse("After reset, content should build up again", result);
+    }
+
+    @Test
+    public void noMatch() throws Exception {
+        BufferedReader in = null;
+        try {
+            in = Resources.getBufferedResourceReader("elements/Source.java");
+            String line = in.readLine();
+            boolean result = false;
+            final Document subject = new MockLocation("subject");
+            while (line != null) {
+                result = license.match(subject, line);
+                line = in.readLine();
+            }
+            assertFalse("Applied AL2.0 license should not be matched", result);
+            license.reset();
+        } finally {
+            IOUtils.closeQuietly(in);
+        }
+    }
+
+    @Test(timeout = 2000) // may need to be adjusted if many more files are added
+    public void goodFiles() throws Exception {
+        DirectoryScanner.testFilesInDir("appliedAL20/good", license, true);
+    }
+
+    @Test(timeout = 2000) // may need to be adjusted if many more files are added
+    public void baddFiles() throws Exception {
+        DirectoryScanner.testFilesInDir("appliedAL20/bad", license, false);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/CDDL1LicenseTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/CDDL1LicenseTest.java
new file mode 100644
index 0000000..813e5e5
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/CDDL1LicenseTest.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class CDDL1LicenseTest {
+
+    private static final String LICENSE_LINE =
+            " DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.\n\n"
+                    + "Copyright 2011-2013 Tirasa. All rights reserved.\n\n"
+                    + "The contents of this file are subject to the terms of the Common Development\n"
+                    + "and Distribution License(\"CDDL\") (the \"License\"). You may not use this file\n"
+                    + "except in compliance with the License.\n\n"
+                    + "You can obtain a copy of the License at https://oss.oracle.com/licenses/CDDL\n"
+                    + "See the License for the specific language governing permissions and limitations\n"
+                    + "under the License.";
+
+    /**
+     * To ease testing provide a map with a given license version and the string to test for.
+     */
+    private static Map<IHeaderMatcher, String> licenseStringMap;
+
+    private Document subject;
+
+    @BeforeClass
+    public static void initLicensesUnderTest() {
+        licenseStringMap = new HashMap<IHeaderMatcher, String>();
+        licenseStringMap.put(new CDDL1License(), LICENSE_LINE);
+        assertEquals(1, licenseStringMap.entrySet().size());
+    }
+
+    @Before
+    public final void initSubject() {
+        this.subject = new MockLocation("subject");
+    }
+
+    @Test
+    public void testNegativeMatches() throws Exception {
+        for (Map.Entry<IHeaderMatcher, String> licenseUnderTest : licenseStringMap.entrySet()) {
+            assertFalse(licenseUnderTest.getKey().match(subject, "'Behold, Telemachus! (nor fear the sight,)"));
+        }
+    }
+
+    @Test
+    public void testPositiveMatchInDocument() throws Exception {
+        for (Map.Entry<IHeaderMatcher, String> licenseUnderTest : licenseStringMap.entrySet()) {
+            assertTrue(licenseUnderTest.getKey().match(subject, "\t" + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, "     " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " * " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " // " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " /* " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " /** " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, "    " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " ## " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " ## " + licenseUnderTest.getValue() + " ##"));
+        }
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/CopyrightHeaderTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/CopyrightHeaderTest.java
new file mode 100644
index 0000000..5699cf5
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/CopyrightHeaderTest.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class CopyrightHeaderTest {
+
+    private static final String[] MATCHING_HEADERS =
+            { "/*  Copyright 2012 FooBar.*/"
+            , "/*  copyright 2012 foobar.*/"
+            , "/*  Copyright 2012-2013 FooBar.*/" };
+    private static final String[] NON_MATCHING_HEADERS =
+            { "/*  Copyright*/"
+            , "/*  Copyright FooBar.*/"
+            , "/*  Copyright 2013*/"
+            , "/*  Copyright 123a*/"
+            , "/*  Copyright 123f oobar*/"
+            , "/*  Copyright 2013FooBar*/"
+            , "/*  Copyright 2012 2013 FooBar.*/" };
+
+    private CopyrightHeader header;
+    private MockClaimReporter reporter;
+    private Document subject = new MockLocation("subject");
+
+    @Before
+    public void setUp() throws Exception {
+        header = new CopyrightHeader(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_ASL,MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_APACHE_LICENSE_VERSION_2_0,"","FooBar");
+        reporter = new MockClaimReporter();
+        subject = new MockLocation("subject");
+    }
+
+    @Test
+    public void match() throws Exception {
+        for (String line : MATCHING_HEADERS) {
+            assertTrue("Copyright Header should be matched", header.match(subject, line));
+            header.reset();
+            assertFalse("After reset, content should build up again", header.match(subject, "New line"));
+            header.reset();
+        }
+    }
+
+    @Test
+    public void noMatch() throws Exception {
+        for (String line : NON_MATCHING_HEADERS) {
+            assertFalse("Copyright Header shouldn't be matched", header.match(subject, line));
+            header.reset();
+            assertTrue("After reset, content should build up again", header.match(subject, MATCHING_HEADERS[0]));
+            header.reset();
+        }
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/DirectoryScanner.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/DirectoryScanner.java
new file mode 100644
index 0000000..8d9a67b
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/DirectoryScanner.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ */
+
+package org.apache.rat.analysis.license;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.BufferedReader;
+import java.io.File;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.test.utils.Resources;
+import org.junit.Assert;
+
+class DirectoryScanner {
+
+    @SuppressWarnings("boxing") // OK in test code
+    /**
+     * Get list of files in a directory, and scan for license matches
+     * @param directory the directory containing the files
+     * @param matcher the license matcher
+     * @param expected the expected result of the each scan
+     * @throws Exception
+     */
+    public static void testFilesInDir(String directory, IHeaderMatcher matcher, boolean expected) throws Exception {
+        final File[] resourceFiles = Resources.getResourceFiles(directory);
+        if (resourceFiles.length == 0) {
+            Assert.fail("No files found under "+directory);
+        }
+        for(File f : resourceFiles) {
+            final Document subject = new MockLocation(f.toString());
+            BufferedReader br = null;
+            try {
+                boolean result = false;
+                br = Resources.getBufferedReader(f);
+                String line;
+                while(!result && (line = br.readLine()) != null) {
+                    result = matcher.match(subject, line);
+                }
+                assertEquals(f.toString(), expected, result);
+            } finally {
+                matcher.reset();
+                IOUtils.closeQuietly(br);
+            }
+        }
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/GPL123LicenseTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/GPL123LicenseTest.java
new file mode 100644
index 0000000..127d75a
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/GPL123LicenseTest.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Tests GPL license occurrences within comments and other characters.
+ * Works for GPL1 to GPL3.
+ */
+public class GPL123LicenseTest {
+    MockClaimReporter reporter;
+    Document subject;
+
+    /**
+     * To ease testing provide a map with a given license version and the string to test for.
+     */
+    private static Map<IHeaderMatcher, String> licenseStringMap;
+
+    /**
+     * If you replace this with BeforeClass and make this method static the build fails at line 67.
+     */
+    @Before
+    public void initLicensesUnderTest() {
+        licenseStringMap = new HashMap<IHeaderMatcher, String>();
+        licenseStringMap.put(new GPL1License(), GPL1License.FIRST_LICENSE_LINE);
+        licenseStringMap.put(new GPL2License(), GPL2License.FIRST_LICENSE_LINE);
+        licenseStringMap.put(new GPL3License(), GPL3License.FIRST_LICENSE_LINE);
+    }
+
+    @Before
+    public final void initReporter() {
+        this.reporter = new MockClaimReporter();
+        this.subject = new MockLocation("subject");
+    }
+
+    @Test
+    public void testNegativeMatches() throws Exception {
+        for (Map.Entry<IHeaderMatcher, String> licenseUnderTest : licenseStringMap.entrySet()) {
+            assertFalse(licenseUnderTest.getKey().match(subject, "'Behold, Telemachus! (nor fear the sight,)"));
+        }
+    }
+
+    @Test
+    public void testPositiveMatchInDocument() throws Exception {
+        for (Map.Entry<IHeaderMatcher, String> licenseUnderTest : licenseStringMap.entrySet()) {
+            assertTrue(licenseUnderTest.getKey().match(subject, "\t" + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, "     " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " * " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " // " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " /* " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " /** " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, "    " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " ## " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " ## " + licenseUnderTest.getValue() + " ##"));
+        }
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/MITLicenseTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/MITLicenseTest.java
new file mode 100644
index 0000000..8cb1f84
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/MITLicenseTest.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class MITLicenseTest {
+    private Document subject;
+
+    /**
+     * To ease testing provide a map with a given license version and the string to test for.
+     */
+    private static Map<IHeaderMatcher, String> licenseStringMap;
+
+    /**
+     * If you replace this with BeforeClass and make this method static the build fails at line 71.
+     */
+    @Before
+    public void initLicensesUnderTest() {
+        licenseStringMap = new HashMap<IHeaderMatcher, String>();
+        licenseStringMap.put(new MITLicense(),
+                MITLicense.FIRST_LICENSE_LINE
+                        + "\n" + MITLicense.MIDDLE_LICENSE_LINE
+                        + "\r\n * " + MITLicense.AS_IS_LICENSE_LINE);
+        assertEquals(1, licenseStringMap.entrySet().size());
+    }
+
+
+    @Before
+    public final void initReporter() {
+        this.subject = new MockLocation("subject");
+    }
+
+    @Test
+    public void testNegativeMatches() throws Exception {
+        for (Map.Entry<IHeaderMatcher, String> licenseUnderTest : licenseStringMap.entrySet()) {
+            assertFalse(licenseUnderTest.getKey().match(subject, "'Behold, Telemachus! (nor fear the sight,)"));
+        }
+    }
+
+    @Test
+    public void testPositiveMatchInDocument() throws Exception {
+        for (Map.Entry<IHeaderMatcher, String> licenseUnderTest : licenseStringMap.entrySet()) {
+            assertTrue(licenseUnderTest.getKey().match(subject, "\t" + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, "     " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " * " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " // " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " /* " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " /** " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, "    " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " ## " + licenseUnderTest.getValue()));
+            assertTrue(licenseUnderTest.getKey().match(subject, " ## " + licenseUnderTest.getValue() + " ##"));
+        }
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/MockStandardLicense.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/MockStandardLicense.java
new file mode 100644
index 0000000..537f69e
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/MockStandardLicense.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.MetaData;
+
+
+public class MockStandardLicense extends BaseLicense {
+
+//    public List visitors = new ArrayList();
+    
+    public MockStandardLicense() {
+        super(new MetaData.Datum(MetaData.RAT_URL_LICENSE_FAMILY_CATEGORY, ""), 
+                new MetaData.Datum(MetaData.RAT_URL_LICENSE_FAMILY_NAME, ""), "");
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/OASISLicenseTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/OASISLicenseTest.java
new file mode 100644
index 0000000..7e46921
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/OASISLicenseTest.java
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.analysis.license;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+import org.apache.rat.test.utils.Resources;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.BufferedReader;
+import java.io.StringReader;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class OASISLicenseTest {
+
+    private static final String LICENSE = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+            "<!--\n" +
+            "\n" +
+            "\n" +
+            "OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS Executive Director.\n" +
+            "\n" +
+            "\n" +
+            "OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director\n." +
+            "\n" +
+            "Copyright (C) OASIS Open (2004-2005). All Rights Reserved.\n" +
+            "\n" +
+            "This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English.\n" +
+            "\n" +
+            "\n" +
+            "The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.\n" +
+            "\n" +
+            "\n" +
+            "This document and the information contained herein is provided on an \"AS IS\" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n" +
+            "-->\n";
+
+    private OASISLicense license;
+
+    private MockClaimReporter reporter;
+
+    @Before
+    public void setUp() throws Exception {
+        license = new OASISLicense();
+        reporter = new MockClaimReporter();
+    }
+
+    @Test
+    public void match() throws Exception {
+        BufferedReader in = null;
+        try {
+            in = new BufferedReader(new StringReader(LICENSE));
+            String line = in.readLine();
+            boolean result = false;
+            final Document subject = new MockLocation("subject");
+            while (line != null) {
+                result = license.match(subject, line);
+                line = in.readLine();
+            }
+            assertTrue("OASIS license should be matched", result);
+            license.reset();
+            result = license.match(subject, "New line");
+            assertFalse("After reset, content should build up again", result);
+        } finally {
+            IOUtils.closeQuietly(in);
+        }
+    }
+
+    @Test
+    public void noMatch() throws Exception {
+        BufferedReader in = null;
+        try {
+            in = Resources.getBufferedResourceReader("elements/Source.java");
+            String line = in.readLine();
+            boolean result = false;
+            final Document subject = new MockLocation("subject");
+            while (line != null) {
+                result = license.match(subject, line);
+                line = in.readLine();
+            }
+            assertFalse("OASIS license should not be matched", result);
+            license.reset();
+        } finally {
+            IOUtils.closeQuietly(in);
+        }
+    }
+
+    @Test(timeout = 2000) // may need to be adjusted if many more files are added
+    public void goodFiles() throws Exception {
+        DirectoryScanner.testFilesInDir("oasis/good", license, true);
+    }
+
+    @Test(timeout = 2000) // may need to be adjusted if many more files are added
+    public void baddFiles() throws Exception {
+        DirectoryScanner.testFilesInDir("oasis/bad", license, false);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/W3CLicenseTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/W3CLicenseTest.java
new file mode 100644
index 0000000..6397bbd
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/license/W3CLicenseTest.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.license;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class W3CLicenseTest {
+
+    public static final String COPYRIGHT_URL 
+    = "http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231";
+    
+    public static final String COPYRIGHT_URL_COMMENTED
+    = "# http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 #";
+    
+    public static final String COPYRIGHT_URL_XML
+    = "<!-- http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 -->";
+    
+    private W3CLicense license;
+    private MockClaimReporter reporter;
+
+    @Before
+    public void setUp() throws Exception {
+        license = new W3CLicense();
+        reporter = new MockClaimReporter();
+    }
+
+    @Test
+    public void match() throws Exception {
+        final Document subject = new MockLocation("subject");
+        assertTrue("Expected matcher to return license", license.match(subject, COPYRIGHT_URL));
+        assertTrue("Expected matcher to return license", license.match(subject, COPYRIGHT_URL_COMMENTED));
+        assertTrue("Expected matcher to return license", license.match(subject, COPYRIGHT_URL_XML));
+        assertFalse("Return null if the license isn't matched", license.match(subject, "Bogus"));
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/util/MatcherMultiplexerTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/util/MatcherMultiplexerTest.java
new file mode 100644
index 0000000..1ed6e69
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/analysis/util/MatcherMultiplexerTest.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.analysis.util;
+
+import junit.framework.TestCase;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.MockLicenseMatcher;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+
+import java.util.Arrays;
+
+public class MatcherMultiplexerTest extends TestCase {
+
+    private static final String LINE_ONE = "Line One";
+    private static final String LINE_TWO = "Line Two";
+
+    MockClaimReporter reporter;
+    MockLicenseMatcher matcherOne;
+    MockLicenseMatcher matcherTwo;
+
+    HeaderMatcherMultiplexer multiplexer;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        matcherOne = new MockLicenseMatcher();
+        matcherTwo = new MockLicenseMatcher();
+        multiplexer = new HeaderMatcherMultiplexer(Arrays.<IHeaderMatcher>asList(matcherOne, matcherTwo));
+        reporter = new MockClaimReporter();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    public void testMatcherLine() throws Exception {
+        matcherOne.result = false;
+        matcherTwo.result = false;
+        final Document subject = new MockLocation("subject");
+        multiplexer.match(subject, LINE_ONE);
+        assertEquals("One line", 1, matcherOne.lines.size());
+        assertEquals("Same as line passed", LINE_ONE, matcherOne.lines.get(0));
+        assertEquals("One line", 1, matcherTwo.lines.size());
+        assertEquals("Same as line passed", LINE_ONE, matcherTwo.lines.get(0));
+        multiplexer.match(subject, LINE_TWO);
+        assertEquals("One line", 2, matcherOne.lines.size());
+        assertEquals("Same as line passed", LINE_TWO, matcherOne.lines.get(1));
+        assertEquals("One line", 2, matcherTwo.lines.size());
+        assertEquals("Same as line passed", LINE_TWO, matcherTwo.lines.get(1));
+    }
+
+    public void testReset() {
+        multiplexer.reset();
+        assertEquals("Reset once", 1, matcherOne.resets);
+        assertEquals("Reset once", 1, matcherTwo.resets);
+        multiplexer.reset();
+        assertEquals("Reset twice", 2, matcherOne.resets);
+        assertEquals("Reset twice", 2, matcherTwo.resets);
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/annotation/TestLicenseAppender.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/annotation/TestLicenseAppender.java
new file mode 100644
index 0000000..0c58154
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/annotation/TestLicenseAppender.java
@@ -0,0 +1,700 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.annotation;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rat.test.utils.Resources;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+public class TestLicenseAppender {
+    @ClassRule
+    public static TemporaryFolder baseTempFolder = new TemporaryFolder();
+
+    private static final String FIRST_LICENSE_LINE = " Licensed to the Apache Software Foundation (ASF) under one";
+
+    private interface FileCreator {
+        void createFile(Writer w) throws IOException;
+    }
+
+    private interface NewFileReader {
+        void readFile(BufferedReader r) throws IOException;
+    }
+
+    private static String getTemporaryFileWithName(String fileName) throws IOException {
+        if (fileName != null) {
+            return baseTempFolder.newFile(fileName).getAbsolutePath();
+        } else {
+            return baseTempFolder.newFile().getAbsolutePath();
+        }
+    }
+
+    private static void createTestFile(String fileName,
+                                       FileCreator creator)
+            throws IOException {
+        FileWriter w = null;
+        try {
+            creator.createFile(w = new FileWriter(fileName));
+        } finally {
+            IOUtils.closeQuietly(w);
+        }
+    }
+
+    private static void tryToDelete(File f) {
+        if (f != null && f.exists() && !f.delete()) {
+            f.deleteOnExit();
+        }
+    }
+
+    private static void commonTestTemplate(String relativeName,
+                                           FileCreator creator,
+                                           NewFileReader reader)
+            throws IOException {
+        String name = getTemporaryFileWithName(relativeName);
+        try {
+            createTestFile(name, creator);
+
+            ApacheV2LicenseAppender appender =
+                    new ApacheV2LicenseAppender();
+            appender.append(new File(name));
+
+            BufferedReader r = null;
+            try {
+                r = new BufferedReader(new FileReader(name + ".new"));
+                reader.readFile(r);
+            } finally {
+                IOUtils.closeQuietly(r);
+            }
+        } finally {
+            tryToDelete(new File(name));
+            tryToDelete(new File(name + ".new"));
+        }
+    }
+
+    private static NewFileReader checkLines(final String firstLine,
+                                            final String secondLine) {
+        return new NewFileReader() {
+            public void readFile(BufferedReader r) throws IOException {
+                String line = r.readLine();
+                assertEquals("First line is incorrect",
+                        firstLine, line);
+                if (secondLine != null) {
+                    line = r.readLine();
+                    assertEquals("Second line is incorrect",
+                            secondLine, line);
+                }
+            }
+        };
+    }
+
+    private static NewFileReader checkLines(final String firstLine,
+                                            final String secondLine,
+                                            final String thirdLine) {
+        return new NewFileReader() {
+            public void readFile(BufferedReader r) throws IOException {
+                String line = r.readLine();
+                assertEquals("First line is incorrect",
+                        firstLine, line);
+                if (secondLine != null) {
+                    line = r.readLine();
+                    assertEquals("Second line is incorrect",
+                            secondLine, line);
+                }
+                if (thirdLine != null) {
+                    line = r.readLine();
+                    assertEquals("Third line is incorrect",
+                            thirdLine, line);
+                }
+            }
+        };
+    }
+
+    @Test
+    public void addLicenseToUnknownFile() throws IOException {
+        String filename = getTemporaryFileWithName(null);
+        createTestFile(filename, new FileCreator() {
+            public void createFile(Writer writer)
+                    throws IOException {
+                writer.write("Unknown file type\n");
+            }
+        });
+
+        File file = new File(filename);
+        file.deleteOnExit();
+        ApacheV2LicenseAppender appender =
+                new ApacheV2LicenseAppender();
+        appender.append(file);
+
+        File newFile = new File(filename + ".new");
+        newFile.deleteOnExit();
+        assertFalse("No new file should have been written",
+                newFile.exists());
+    }
+
+    @Test
+    public void addLicenseToJava() throws IOException {
+        String filename = "tmp.java";
+        final String firstLine = "package foo;";
+        final String secondLine = "";
+        final String thirdLine = "/*";
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write("\n");
+                        writer.write("public class test {\n");
+                        writer.write("}\n");
+                    }
+                },
+                checkLines(firstLine, secondLine, thirdLine));
+    }
+
+    @Test
+    public void addLicenseToJavaWithoutPackage() throws IOException {
+        String filename = "tmp.java";
+        String commentLine = "/*";
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("public class test {\n");
+                        writer.write("}\n");
+                    }
+                },
+                checkLines(commentLine, null));
+    }
+
+    @Test
+    public void addLicenseToXML() throws IOException {
+        String filename = "tmp.xml";
+        final String firstLine = "<?xml version='1.0'?>";
+        final String secondLine = "";
+        final String thirdLine = "<!--";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write("\n");
+                        writer.write("<xml>\n");
+                        writer.write("</xml>\n");
+                    }
+                },
+                checkLines(firstLine, secondLine, thirdLine));
+    }
+
+    @Test
+    public void addLicenseToXMLWithoutDecl() throws IOException {
+        String filename = "tmp.xml";
+        final String firstLine = "<?xml version='1.0'?>";
+        final String secondLine = "<!--";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("<xml>\n");
+                        writer.write("</xml>\n");
+                    }
+                },
+                checkLines(firstLine, secondLine));
+    }
+
+    @Test
+    public void addLicenseToHTML() throws IOException {
+        String filename = "tmp.html";
+        String commentLine = "<!--";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("<html>\n");
+                        writer.write("\n");
+                        writer.write("</html>\n");
+                    }
+                },
+                checkLines(commentLine, null));
+    }
+
+    @Test
+    public void addLicenseToCSS() throws IOException {
+        String filename = "tmp.css";
+        String firstLine = "/*";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(".class {\n");
+                        writer.write(" background-color: red;");
+                        writer.write("}\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void addLicenseToJavascript() throws IOException {
+        String filename = "tmp.js";
+        String firstLine = "/*";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("if (a ==b) {>\n");
+                        writer.write(" alert(\"how useful!\");");
+                        writer.write("}\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void addLicenseToAPT() throws IOException {
+        String filename = "tmp.apt";
+        String firstLine = "~~" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("A Simple APT file");
+                        writer.write(" This file contains nothing\n");
+                        writer.write(" of any importance\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void addLicenseToProperties() throws IOException {
+        String filename = "tmp.properties";
+        String firstLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("property = value\n");
+                        writer.write("fun = true\n");
+                        writer.write("cool = true\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void addLicenseToScala() throws IOException {
+        String filename = "tmp.scala";
+        final String firstLine = "package foo {";
+        final String newFirstLine = "/*";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write("\n");
+                        writer.write("    object X { val x = 1; }\n");
+                        writer.write("}\n");
+                    }
+                },
+                new NewFileReader() {
+                    public void readFile(BufferedReader reader)
+                            throws IOException {
+                        String line = reader.readLine();
+                        assertEquals("First line is incorrect",
+                                newFirstLine, line);
+                        while ((line = reader.readLine()) != null) {
+                            if (line.length() == 0) {
+                                line = reader.readLine();
+                                break;
+                            }
+                        }
+                        assertEquals("Package line is incorrect",
+                                firstLine, line);
+                    }
+                });
+    }
+
+    @Test
+    public void addLicenseToRubyWithoutHashBang()
+            throws IOException {
+        String filename = "tmp.rb";
+        String firstLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("class Foo\n");
+                        writer.write("end\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void addLicenseToRubyWithHashBang() throws IOException {
+        String filename = "tmp.rb";
+        final String firstLine = "#!/usr/bin/env ruby";
+        String secondLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write("class Foo\n");
+                        writer.write("end\n");
+                    }
+                },
+                checkLines(firstLine, secondLine));
+    }
+
+    @Test
+    public void addLicenseToPerlWithoutHashBang()
+            throws IOException {
+        String filename = "tmp.pl";
+        String firstLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("print \"Hello world\"\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void addLicenseToPerlWithHashBang() throws IOException {
+        String filename = "tmp.pl";
+        final String firstLine = "#!/usr/bin/env perl";
+        String secondLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write("print \"Hello world\"\n");
+                    }
+                },
+                checkLines(firstLine, secondLine));
+    }
+
+    @Test
+    public void addLicenseToTclWithoutHashBang()
+            throws IOException {
+        String filename = "tmp.tcl";
+        String firstLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("puts \"Hello world\"\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void addLicenseToTclWithHashBang() throws IOException {
+        String filename = "tmp.tcl";
+        final String firstLine = "#!/usr/bin/env tcl";
+        String secondLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write("puts \"Hello world\"\n");
+                    }
+                },
+                checkLines(firstLine, secondLine));
+    }
+
+    @Test
+    public void addLicenseToPHP() throws IOException {
+        String filename = "tmp.php";
+        final String firstLine = "<?php";
+        final String secondLine = "";
+        final String thirdLine = "/*";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write("echo 'Hello World'\n");
+                        writer.write("?>\n");
+                    }
+                },
+                checkLines(firstLine, secondLine, thirdLine));
+    }
+
+    @Test
+    public void addLicenseToCSharp() throws IOException {
+        String filename = "tmp.cs";
+        String firstLine = "/*";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("namespace org.example {\n");
+                        writer.write("    public class Foo {\n");
+                        writer.write("    }\n");
+                        writer.write("}\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void addLicenseToGroovy() throws IOException {
+        String filename = "tmp.groovy";
+        String firstLine = "/*";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("package org.example \n");
+                        writer.write("    class Foo {\n");
+                        writer.write("    }\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void addLicenseToCPlusPlus() throws IOException {
+        String filename = "tmp.cpp";
+        String firstLine = "/*";
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write("namespace org.example {\n");
+                        writer.write("    public class Foo {\n");
+                        writer.write("    }\n");
+                        writer.write("}\n");
+                    }
+                },
+                checkLines(firstLine, null));
+    }
+
+    @Test
+    public void fileWithBOM() throws IOException {
+        File f = Resources.getResourceFile("violations/FilterTest.cs");
+        try {
+            ApacheV2LicenseAppender appender =
+                    new ApacheV2LicenseAppender();
+            appender.append(f);
+
+            BufferedReader r = null;
+            try {
+                r = new BufferedReader(new FileReader(f.getAbsolutePath()
+                        + ".new"));
+                assertEquals("/*", r.readLine());
+                String line = null;
+                while ((line = r.readLine()) != null) {
+                    if (line.trim().length() == 0) {
+                        break;
+                    }
+                }
+                assertEquals("#if NET_2_0", r.readLine());
+            } finally {
+                IOUtils.closeQuietly(r);
+            }
+        } finally {
+            tryToDelete(new File(f.getAbsolutePath() + ".new"));
+        }
+    }
+
+    @Test
+    public void addLicenseToVS2003solution() throws IOException {
+        String filename = "tmp.sln";
+        final String firstLine = "Microsoft Visual Studio Solution File,"
+                + " Format Version 8.0";
+        String secondLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write("Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"ConsoleApp\", \"Tutorials\\ConsoleApp\\cs\\src\\ConsoleApp.csproj\", \"{933969DF-2BC5-44E6-8B1A-400FC276A23F}\"\n");
+                        writer.write("\tProjectSection(WebsiteProperties) = preProject\n");
+                        writer.write("\t\tDebug.AspNetCompiler.Debug = \"True\"\n");
+                        writer.write("\t\tRelease.AspNetCompiler.Debug = \"False\"\n");
+                        writer.write("\tEndProjectSection\n");
+                        writer.write("EndProject\n");
+                    }
+                },
+                checkLines(firstLine, secondLine));
+    }
+
+    @Test
+    public void addLicenseToVS2005solution() throws IOException {
+        String filename = "tmp.sln";
+        final String firstLine = "Microsoft Visual Studio Solution File,"
+                + " Format Version 9.0";
+        final String secondLine = "# Visual Studio 2005";
+        final String thirdLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write(secondLine + "\n");
+                        writer.write("Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"ConsoleApp\", \"Tutorials\\ConsoleApp\\cs\\src\\ConsoleApp.csproj\", \"{933969DF-2BC5-44E6-8B1A-400FC276A23F}\"\n");
+                        writer.write("\tProjectSection(WebsiteProperties) = preProject\n");
+                        writer.write("\t\tDebug.AspNetCompiler.Debug = \"True\"\n");
+                        writer.write("\t\tRelease.AspNetCompiler.Debug = \"False\"\n");
+                        writer.write("\tEndProjectSection\n");
+                        writer.write("EndProject\n");
+                    }
+                },
+                new NewFileReader() {
+                    public void readFile(BufferedReader r) throws IOException {
+                        String line = r.readLine();
+                        assertEquals("First line is incorrect",
+                                firstLine, line);
+                        line = r.readLine();
+                        assertEquals("Second line is incorrect",
+                                secondLine, line);
+                        line = r.readLine();
+                        assertEquals("Third line is incorrect",
+                                thirdLine, line);
+                    }
+                });
+    }
+
+    @Test
+    public void addLicenseToVS2010ExpressSolution() throws IOException {
+        String filename = "tmp.sln";
+        final String firstLine = "Microsoft Visual Studio Solution File, "
+                + "Format Version 11.00";
+        final String secondLine = "# Visual C# Express 2010";
+        final String thirdLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write(secondLine + "\n");
+                        writer.write("Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Lucene.Net\", \"..\\..\\..\\src\\core\\Lucene.Net.csproj\", \"{5D4AD9BE-1FFB-41AB-9943-25737971BF57}\"\n");
+                        writer.write("EndProject\n");
+                        writer.write("Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Contrib.Highlighter\", \"..\\..\\..\\src\\contrib\\Highlighter\\Contrib.Highlighter.csproj\", \"{901D5415-383C-4AA6-A256-879558841BEA}\"\n");
+                        writer.write("EndProject\n");
+                        writer.write("Global\n");
+                        writer.write("GlobalSection(SolutionConfigurationPlatforms) = preSolution\n");
+                        writer.write("Debug|Any CPU = Debug|Any CPU\n");
+                        writer.write("Release|Any CPU = Release|Any CPU\n");
+                        writer.write("EndGlobalSection\n");
+                        writer.write("GlobalSection(ProjectConfigurationPlatforms) = postSolution\n");
+                        writer.write("{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n");
+                        writer.write("{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU\n");
+                        writer.write("{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU\n");
+                        writer.write("{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU\n");
+                        writer.write("{901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n");
+                        writer.write("{901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU\n");
+                        writer.write("{901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU\n");
+                        writer.write("{901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU\n");
+                        writer.write("EndGlobalSection\n");
+                        writer.write("GlobalSection(SolutionProperties) = preSolution\n");
+                        writer.write("HideSolutionNode = FALSE\n");
+                        writer.write("EndGlobalSection\n");
+                        writer.write("EndGlobal \n");
+                    }
+                },
+                new NewFileReader() {
+                    public void readFile(BufferedReader r) throws IOException {
+                        String line = r.readLine();
+                        assertEquals("First line is incorrect",
+                                firstLine, line);
+                        line = r.readLine();
+                        assertEquals("Second line is incorrect",
+                                secondLine, line);
+                        line = r.readLine();
+                        assertEquals("Third line is incorrect",
+                                thirdLine, line);
+                    }
+                });
+    }
+
+    @Test
+    public void addLicenseToVS2010SolutionWithBlankLine() throws IOException {
+        String filename = "tmp.sln";
+        final String firstLine = "";
+        final String secondLine = "Microsoft Visual Studio Solution File, "
+                + "Format Version 11.00";
+        final String thirdLine = "# Visual C# Express 2010";
+        final String forthLine = "#" + FIRST_LICENSE_LINE;
+
+        commonTestTemplate(filename, new FileCreator() {
+                    public void createFile(Writer writer)
+                            throws IOException {
+                        writer.write(firstLine + "\n");
+                        writer.write(secondLine + "\n");
+                        writer.write(thirdLine + "\n");
+                        writer.write("Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Lucene.Net\", \"..\\..\\..\\src\\core\\Lucene.Net.csproj\", \"{5D4AD9BE-1FFB-41AB-9943-25737971BF57}\"\n");
+                        writer.write("EndProject\n");
+                        writer.write("Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Contrib.Highlighter\", \"..\\..\\..\\src\\contrib\\Highlighter\\Contrib.Highlighter.csproj\", \"{901D5415-383C-4AA6-A256-879558841BEA}\"\n");
+                        writer.write("EndProject\n");
+                        writer.write("Global\n");
+                        writer.write("GlobalSection(SolutionConfigurationPlatforms) = preSolution\n");
+                        writer.write("Debug|Any CPU = Debug|Any CPU\n");
+                        writer.write("Release|Any CPU = Release|Any CPU\n");
+                        writer.write("EndGlobalSection\n");
+                        writer.write("GlobalSection(ProjectConfigurationPlatforms) = postSolution\n");
+                        writer.write("{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n");
+                        writer.write("{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Debug|Any CPU.Build.0 = Debug|Any CPU\n");
+                        writer.write("{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.ActiveCfg = Release|Any CPU\n");
+                        writer.write("{5D4AD9BE-1FFB-41AB-9943-25737971BF57}.Release|Any CPU.Build.0 = Release|Any CPU\n");
+                        writer.write("{901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n");
+                        writer.write("{901D5415-383C-4AA6-A256-879558841BEA}.Debug|Any CPU.Build.0 = Debug|Any CPU\n");
+                        writer.write("{901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.ActiveCfg = Release|Any CPU\n");
+                        writer.write("{901D5415-383C-4AA6-A256-879558841BEA}.Release|Any CPU.Build.0 = Release|Any CPU\n");
+                        writer.write("EndGlobalSection\n");
+                        writer.write("GlobalSection(SolutionProperties) = preSolution\n");
+                        writer.write("HideSolutionNode = FALSE\n");
+                        writer.write("EndGlobalSection\n");
+                        writer.write("EndGlobal \n");
+                    }
+                },
+                new NewFileReader() {
+                    public void readFile(BufferedReader r) throws IOException {
+                        String line = r.readLine();
+                        assertEquals("First line is incorrect",
+                                firstLine, line);
+                        line = r.readLine();
+                        assertEquals("Second line is incorrect",
+                                secondLine, line);
+                        line = r.readLine();
+                        assertEquals("Third line is incorrect",
+                                thirdLine, line);
+                        line = r.readLine();
+                        assertEquals("Forth line is incorrect",
+                                forthLine, line);
+                    }
+                });
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/config/AddLicenseHeadersTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/config/AddLicenseHeadersTest.java
new file mode 100644
index 0000000..7b90c18
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/config/AddLicenseHeadersTest.java
@@ -0,0 +1,31 @@
+package org.apache.rat.config;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+
+public class AddLicenseHeadersTest {
+    @Test
+    public void verifyHelpOptions() {
+        String allOptions = AddLicenseHeaders.getValuesForHelp();
+        assertFalse(allOptions, allOptions.isEmpty());
+        assertFalse(allOptions, allOptions.endsWith("|"));
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/config/ConfigurationUtilTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/config/ConfigurationUtilTest.java
new file mode 100644
index 0000000..e628910
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/config/ConfigurationUtilTest.java
@@ -0,0 +1,44 @@
+package org.apache.rat.config;
+
+import org.apache.rat.api.MetaData;
+import org.apache.rat.license.GPL1LicenseFamily;
+import org.apache.rat.license.ILicenseFamily;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+public class ConfigurationUtilTest {
+    @Test
+    public void toNamesIsNullSafe() {
+        assertTrue(ConfigurationUtil.toNames(null).isEmpty());
+    }
+
+    @Test
+    public void toNamesIsEmptyArraySafe() {
+        assertTrue(ConfigurationUtil.toNames(new ILicenseFamily[0]).isEmpty());
+    }
+    @Test
+    public void toNamesRegular() {
+        assertEquals(MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_1, ConfigurationUtil.toNames(new ILicenseFamily[]{new GPL1LicenseFamily()}).get(0));
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/config/ReportFormatTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/config/ReportFormatTest.java
new file mode 100644
index 0000000..ccb5612
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/config/ReportFormatTest.java
@@ -0,0 +1,43 @@
+package org.apache.rat.config;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.junit.Test;
+
+import java.util.Arrays;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class ReportFormatTest {
+    @Test
+    public void isANullSafe() {
+        for (String optionType : Arrays.asList(null, "")) {
+            assertFalse("Must not equal PLAIN, was " + optionType, ReportFormat.PLAIN.is(optionType));
+        }
+    }
+    @Test
+    public void isAConfigurationOption() {
+        for (String optionType : Arrays.asList("PLAIN", "pLain", "plain", ReportFormat.PLAIN.name())) {
+            assertTrue("Must equal PLAIN, was " + optionType, ReportFormat.PLAIN.is(optionType));
+        }
+        assertFalse(ReportFormat.PLAIN.is(ReportFormat.XML.name()));
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/config/SourceCodeManagementSystemsTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/config/SourceCodeManagementSystemsTest.java
new file mode 100644
index 0000000..1b1edd2
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/config/SourceCodeManagementSystemsTest.java
@@ -0,0 +1,56 @@
+package org.apache.rat.config;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import static org.junit.Assert.*;
+
+import static org.apache.rat.config.SourceCodeManagementSystems.*;
+
+import org.junit.Test;
+
+public class SourceCodeManagementSystemsTest {
+
+    @Test
+    public void testSubversionAndNumberOfSCMSystems() {
+        assertFalse("SVN does not have any external ignore files.", SUBVERSION.hasIgnoreFile());
+        
+        int hasIgnore = 0;
+        int hasNoIgnore = 0;
+        for(SourceCodeManagementSystems scm : values()) {
+            if(scm.hasIgnoreFile()) {
+                hasIgnore++;
+            } else {
+                hasNoIgnore++;
+            }
+        }
+        
+        assertEquals("Did you change the number of SCMs?", 4, hasIgnore);
+        assertEquals("Did you add a new SCM without ignoreFile?", 1, hasNoIgnore);
+        assertEquals("Amount of SCM has changed.", values().length, hasIgnore+hasNoIgnore);
+    }
+    
+    @Test
+    public void testPluginExcludeLists()  {
+        assertEquals(1, SUBVERSION.getExclusions().size());
+        assertEquals(2, GIT.getExclusions().size());
+        
+        assertEquals("Did you change the number of SCM systems?", 9, getPluginExclusions().size());
+        assertEquals("Did you change the number of SCM systems?", 5, values().length);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/MockDocument.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/MockDocument.java
new file mode 100644
index 0000000..d52ae6b
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/MockDocument.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+
+public class MockDocument implements Document {
+
+    private final Reader reader;
+    private final String name;
+    private final MetaData metaData = new MetaData();
+
+    public MockDocument() {
+        this(null, "name");
+    }
+
+    public MockDocument(String name) {
+        this(null, name);
+    }
+    
+    public MockDocument(Reader reader, String name) {
+        super();
+        this.reader = reader;
+        this.name = name;
+    }
+
+    public Reader reader() throws IOException {
+        return reader;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public boolean isComposite() {
+        return false;
+    }
+    
+    public MetaData getMetaData() {
+        return metaData;
+    }
+    
+
+    public InputStream inputStream() throws IOException {
+        throw new UnsupportedOperationException();
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/MockDocumentAnalyser.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/MockDocumentAnalyser.java
new file mode 100644
index 0000000..3d93e82
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/MockDocumentAnalyser.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document;
+
+import org.apache.rat.api.Document;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MockDocumentAnalyser implements IDocumentAnalyser {
+
+    public List<Document> matches = new ArrayList<Document>();
+    
+    public void analyse(Document document) throws RatDocumentAnalysisException {
+        matches.add(document);
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/MockLocation.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/MockLocation.java
new file mode 100644
index 0000000..d639223
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/MockLocation.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+public class MockLocation implements Document {
+
+    public String name;
+    public String url;
+    private final MetaData metaData = new MetaData();
+    
+    public MockLocation() {
+        this("name", "url");
+    }
+    
+    public MockLocation(String name) {
+        this(name, "url");
+    }
+
+    public MockLocation(String name, String url) {
+        super();
+        this.name = name;
+        this.url = url;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getURL() {
+        return url;
+    }
+
+    public boolean isComposite() {
+        return false;
+    }
+
+    public Reader reader() throws IOException {
+        throw new UnsupportedOperationException();
+    }
+
+    public MetaData getMetaData() {
+        return metaData;
+    }
+    
+
+    public InputStream inputStream() throws IOException {
+        throw new UnsupportedOperationException();
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/ToNameTransformerTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/ToNameTransformerTest.java
new file mode 100644
index 0000000..a5aadb4
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/ToNameTransformerTest.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+public class ToNameTransformerTest {
+
+    private ToNameTransformer transformer = new ToNameTransformer();
+    
+    @Test
+    public void transformLocation() {
+        MockLocation location = new MockLocation();
+        Object result = transformer.transform(location);
+        assertNotNull("Transform into name", result);
+        assertEquals("Transform into name", location.name, result);
+    }
+
+    @Test
+    public void transformNull() {
+        Object result = transformer.transform(null);
+        assertNull("Null transforms to null", result);
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/SingularFileDocumentTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/SingularFileDocumentTest.java
new file mode 100644
index 0000000..b7ef80c
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/SingularFileDocumentTest.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.test.utils.Resources;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.Reader;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+public class SingularFileDocumentTest {
+    private Document document;
+    private File file;
+    
+    @Before
+    public void setUp() throws Exception {
+        file = Resources.getResourceFile("elements/Source.java");
+        document = new MonolithicFileDocument(file);
+    }
+
+    @Test
+    public void reader() throws Exception {
+        Reader reader = document.reader();
+        assertNotNull("Reader should be returned", reader);
+        assertEquals("First file line expected", "package elements;", 
+                 new BufferedReader(reader).readLine());
+    }
+
+    @Test
+    public void getName() {
+        final String name = document.getName();
+        assertNotNull("Name is set", name);
+        assertEquals("Name is filename", DocumentImplUtils.toName(file), name);
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/ArchiveGuesserTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/ArchiveGuesserTest.java
new file mode 100644
index 0000000..d54e7ed
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/ArchiveGuesserTest.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl.guesser;
+
+import org.apache.rat.document.MockDocument;
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+
+public class ArchiveGuesserTest {
+
+    @Test
+    public void matches() {
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.jar")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.tar.gz")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.zip")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.tar")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.bz")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.bz2")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.odb")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.odf")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.odg")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.odp")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.ods")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.odt")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.sar")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.har")));
+        assertTrue(ArchiveGuesser.isArchive(new MockDocument("42.wsr")));
+    }
+    
+    @Test
+    public void isArchive() {
+        assertTrue(ArchiveGuesser.isArchive("42.jar"));
+        assertTrue(ArchiveGuesser.isArchive("42.tar.gz"));
+        assertTrue(ArchiveGuesser.isArchive("42.zip"));
+        assertTrue(ArchiveGuesser.isArchive("42.tar"));
+        assertTrue(ArchiveGuesser.isArchive("42.bz"));
+        assertTrue(ArchiveGuesser.isArchive("42.bz2"));
+        assertTrue(ArchiveGuesser.isArchive("42.odb"));
+        assertTrue(ArchiveGuesser.isArchive("42.odf"));
+        assertTrue(ArchiveGuesser.isArchive("42.odg"));
+        assertTrue(ArchiveGuesser.isArchive("42.odp"));
+        assertTrue(ArchiveGuesser.isArchive("42.ods"));
+        assertTrue(ArchiveGuesser.isArchive("42.odt"));
+        assertTrue(ArchiveGuesser.isArchive("42.sar"));
+        assertTrue(ArchiveGuesser.isArchive("42.har"));
+        assertTrue(ArchiveGuesser.isArchive("42.wsr"));
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/BinaryGuesserTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/BinaryGuesserTest.java
new file mode 100644
index 0000000..a80c3fb
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/BinaryGuesserTest.java
@@ -0,0 +1,143 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.document.impl.guesser;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.rat.document.MockDocument;
+import org.apache.rat.document.impl.FileDocument;
+import org.apache.rat.test.utils.Resources;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class BinaryGuesserTest {
+
+    private static final List<String> BINARY_FILES = Arrays.asList(//
+            "image.png",//
+            "image.pdf",//
+            "image.psd",//
+            "image.gif",//
+            "image.giff",//
+            "image.jpg",//
+            "image.jpeg",//
+            "image.exe",//
+            "Whatever.class",//
+            "data.dat",//
+            "libicuda.so.34",//
+            "my.truststore",//
+            //"foo.Java", //
+            //"manifest.Mf",//
+            "deprecatedtechnology.swf"
+    );
+
+    @Test
+    public void testMatches() {
+        for (String name : BINARY_FILES) {
+            assertTrue("'" + name + "' should be detected as a binary", BinaryGuesser.isBinary(new MockDocument(name)));
+        }
+
+    }
+
+    @Test
+    public void testIsBinary() {
+        for (String name : BINARY_FILES) {
+            assertTrue("'" + name + "' should be detected as a binary", BinaryGuesser.isBinary(name));
+        }
+    }
+
+    /**
+     * Used to swallow a MalformedInputException and return false
+     * because the encoding of the stream was different from the
+     * platform's default encoding.
+     *
+     * @throws Exception
+     * @see "RAT-81"
+     */
+    @Test
+    public void binaryWithMalformedInputRAT81() throws Exception {
+        FileDocument doc = new FileDocument(Resources.getResourceFile("/binaries/UTF16_with_signature.xml"));
+        Reader r = doc.reader(); // this will fail test if file is not readable
+        try {
+            char[] dummy = new char[100];
+            r.read(dummy);
+            // if we get here, the UTF-16 encoded file didn't throw
+            // any exception, try the UTF-8 encoded one
+            r.close();
+            r = null; // ensure we detect failure to read second file
+            doc = new FileDocument(Resources.getResourceFile("/binaries/UTF8_with_signature.xml"));
+            r = doc.reader();
+            r.read(dummy);
+            // still here?  can't test on this platform
+            System.err.println("Skipping testBinaryWithMalformedInput");
+        } catch (IOException e) {
+            if (r != null) {
+                IOUtils.closeQuietly(r);
+            } else {
+                throw e; // could not open the second file
+            }
+            r = null;
+            assertTrue("Expected binary for " + doc.getName(), BinaryGuesser.isBinary(doc));
+        } finally {
+            IOUtils.closeQuietly(r);
+        }
+    }
+
+    @Test
+    public void realBinaryContent() throws IOException {
+        // This test is not accurate on all platforms
+        final String encoding = System.getProperty("file.encoding");
+        final boolean isBinary = BinaryGuesser.isBinary(new FileDocument(Resources.getResourceFile("/binaries/Image-png.not")));
+        if (encoding.startsWith("ANSI")) {
+            assertTrue(isBinary);
+        } else {
+            if (isBinary) {
+                System.out.println("BinaryGuesserTest.realBinaryContent() succeeded when using encoding " + encoding);
+            } else {
+                System.err.println("BinaryGuesserTest.realBinaryContent() failed when using encoding " + encoding);
+            }
+        }
+    }
+
+    @Test
+    public void textualContent() throws IOException {
+        assertFalse(BinaryGuesser.isBinary(new FileDocument(Resources.getResourceFile("/elements/Text.txt"))));
+    }
+
+    @Test
+    public void emptyFile() throws IOException {
+        assertFalse(BinaryGuesser.isBinary(new FileDocument(Resources.getResourceFile("/elements/sub/Empty.txt"))));
+    }
+
+    @Test
+    public void testFileEncodingCanBeSetAndHasFallbackInCaseOfErrors() {
+        System.setProperty(BinaryGuesser.FILE_ENCODING, "shouldThrowAnExceptionBecauseNotFound");
+        assertEquals("UTF-8", BinaryGuesser.getFileEncodingOrUTF8AsFallback().displayName());
+
+        final String usAscii = "US-ASCII";
+        System.setProperty(BinaryGuesser.FILE_ENCODING, usAscii);
+        assertEquals(usAscii, BinaryGuesser.getFileEncodingOrUTF8AsFallback().displayName());
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/GuessUtilsTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/GuessUtilsTest.java
new file mode 100644
index 0000000..faf4a39
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/GuessUtilsTest.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl.guesser;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class GuessUtilsTest {
+
+    @Test
+    public void normalise() throws Exception {
+        assertEquals("LICENSE", GuessUtils.normalise("license"));
+        assertEquals("LICENSE.TXT", GuessUtils.normalise("license.txt"));
+        assertEquals("LICENSE.TXT", GuessUtils.normalise("some/path/license.txt"));
+        assertEquals("LICENSE.TXT", GuessUtils.normalise("/license.txt"));
+        assertEquals("LICENSE.TXT", GuessUtils.normalise("some\\path\\license.txt"));
+        assertEquals("", GuessUtils.normalise("/"));
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/NoteGuesserTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/NoteGuesserTest.java
new file mode 100644
index 0000000..509782a
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/NoteGuesserTest.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl.guesser;
+
+import org.apache.rat.document.MockDocument;
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+
+public class NoteGuesserTest {
+
+    @Test
+    public void testMatches() {
+        assertTrue(NoteGuesser.isNote(new MockDocument("DEPENDENCIES")));
+        assertTrue(NoteGuesser.isNote(new MockDocument("LICENSE")));
+        assertTrue(NoteGuesser.isNote(new MockDocument("LICENSE.txt")));
+        assertTrue(NoteGuesser.isNote(new MockDocument("NOTICE")));
+        assertTrue(NoteGuesser.isNote(new MockDocument("NOTICE.txt")));
+        assertTrue(NoteGuesser.isNote(new MockDocument("README")));
+        assertTrue(NoteGuesser.isNote(new MockDocument("README.txt")));
+    }
+
+    @Test
+    public void isNote() {
+        assertTrue(NoteGuesser.isNote("DEPENDENCIES"));
+        assertTrue(NoteGuesser.isNote("LICENSE"));
+        assertTrue(NoteGuesser.isNote("LICENSE.txt"));
+        assertTrue(NoteGuesser.isNote("NOTICE"));
+        assertTrue(NoteGuesser.isNote("NOTICE.txt"));
+        assertTrue(NoteGuesser.isNote("README"));
+        assertTrue(NoteGuesser.isNote("README.txt"));
+    }
+    
+    @Test
+    public void isNoteWithPath() {
+        assertTrue(NoteGuesser.isNote("src/test/DEPENDENCIES"));
+        assertTrue(NoteGuesser.isNote("src/test/LICENSE"));
+        assertTrue(NoteGuesser.isNote("src/test/LICENSE.txt"));
+        assertTrue(NoteGuesser.isNote("src/test/NOTICE"));
+        assertTrue(NoteGuesser.isNote("src/test/NOTICE.txt"));
+        assertTrue(NoteGuesser.isNote("src/test/README"));
+        assertTrue(NoteGuesser.isNote("src/test/README.txt"));
+        assertTrue(NoteGuesser.isNote("src\\test\\DEPENDENCIES"));
+        assertTrue(NoteGuesser.isNote("src\\test\\LICENSE"));
+        assertTrue(NoteGuesser.isNote("src\\test\\LICENSE.txt"));
+        assertTrue(NoteGuesser.isNote("src\\test\\NOTICE"));
+        assertTrue(NoteGuesser.isNote("src\\test\\NOTICE.txt"));
+        assertTrue(NoteGuesser.isNote("src\\test\\README"));
+        assertTrue(NoteGuesser.isNote("src\\test\\README.txt"));
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/util/DocumentAnalyserMultiplexerTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/util/DocumentAnalyserMultiplexerTest.java
new file mode 100644
index 0000000..c03df15
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/util/DocumentAnalyserMultiplexerTest.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.document.impl.util;
+
+import org.apache.rat.document.IDocumentAnalyser;
+import org.apache.rat.document.MockDocument;
+import org.apache.rat.document.MockDocumentAnalyser;
+import junit.framework.TestCase;
+
+public class DocumentAnalyserMultiplexerTest extends TestCase {
+
+    private DocumentAnalyserMultiplexer multiplexer;
+    private IDocumentAnalyser[] analysers;
+    private MockDocument document;
+    
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        IDocumentAnalyser[] analysers = {
+                new MockDocumentAnalyser(), 
+                new MockDocumentAnalyser(),
+                new MockDocumentAnalyser()
+        };
+        this.analysers = analysers;
+        document = new MockDocument();
+        multiplexer = new DocumentAnalyserMultiplexer(analysers);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    public void testAnalyse() throws Exception {
+        multiplexer.analyse(document);
+        MockDocumentAnalyser analyser =  (MockDocumentAnalyser) (analysers[0]);
+        assertEquals("Call made to analyser", 1, analyser.matches.size());
+        assertEquals("Call made to analyser", document, analyser.matches.get(0));
+        analyser =  (MockDocumentAnalyser) (analysers[1]);
+        assertEquals("Call made to analyser", 1, analyser.matches.size());
+        assertEquals("Call made to analyser", document, analyser.matches.get(0));
+        analyser =  (MockDocumentAnalyser) (analysers[2]);
+        assertEquals("Call made to analyser", 1, analyser.matches.size());
+        assertEquals("Call made to analyser", document, analyser.matches.get(0));
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/header/ArrayCharFilterTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/ArrayCharFilterTest.java
new file mode 100644
index 0000000..adddf1a
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/ArrayCharFilterTest.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class ArrayCharFilterTest {
+
+    private static final char[] filtered = {'d', 'o', 'a'};
+    private ArrayCharFilter filter;
+    
+    @Before
+    public void setUp() throws Exception {
+        filter = new ArrayCharFilter(filtered);
+    }
+
+    @Test
+    public void isFilteredOut() {
+        assertTrue(filter.isFilteredOut('a'));
+        assertFalse(filter.isFilteredOut('b'));
+        assertFalse(filter.isFilteredOut('c'));
+        assertTrue(filter.isFilteredOut('d'));
+        assertFalse(filter.isFilteredOut('e'));
+        assertFalse(filter.isFilteredOut('f'));
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/header/FilteringSequenceFactoryTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/FilteringSequenceFactoryTest.java
new file mode 100644
index 0000000..c98db84
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/FilteringSequenceFactoryTest.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.StringReader;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+public class FilteringSequenceFactoryTest {
+
+    private int capacity;
+    private FilteringSequenceFactory factory;
+    private SimpleCharFilter filter;
+
+    @Before
+    public void setUp() throws Exception {
+        capacity = 50;
+        filter = new SimpleCharFilter();
+        factory = new FilteringSequenceFactory(capacity, filter);
+    }
+
+    @Test
+    public void noFiltering() throws Exception {
+        final String INPUT = "Whatever";
+        StringReader reader = new StringReader(INPUT);
+        CharSequence result = factory.filter(reader);
+        assertNotNull(result);
+        String output = result.toString();
+        assertEquals("No filtering so input equals output.", INPUT, output);
+        reader = new StringReader(INPUT);
+        result = factory.filter(reader);
+        assertNotNull(result);
+        output = result.toString();
+        assertEquals("No filtering so input equals output. Independent of previous input", INPUT, output);
+    }
+
+    @Test
+    public void filtering() throws Exception {
+        final String INPUT = "Whatever";
+        StringReader reader = new StringReader(INPUT);
+        CharSequence result = factory.filter(reader);
+        assertNotNull(result);
+        String output = result.toString();
+        assertEquals("No filtering so input equals output.", INPUT, output);
+        filter.filterOut = true;
+        reader = new StringReader(INPUT);
+        result = factory.filter(reader);
+        assertNotNull(result);
+        assertEquals("All filtered output is empty. Independent of previous input", 0, result.length());
+    }
+    
+    @Test
+    public void overCapacity() throws Exception {
+        final String INPUT = "WhateverWhateverWhateverWhateverWhateverWhateverWhateverWhateverWhateverWhatever";
+        StringReader reader = new StringReader(INPUT);
+        CharSequence result = factory.filter(reader);
+        assertNotNull(result);
+        String output = result.toString();
+        assertEquals("No filtering so input equals output.", INPUT.substring(0, capacity), output);
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/header/HeaderMatcherTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/HeaderMatcherTest.java
new file mode 100644
index 0000000..7bfd068
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/HeaderMatcherTest.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.StringReader;
+import java.util.regex.Pattern;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class HeaderMatcherTest {
+
+    private int capacity;
+    private HeaderMatcher matcher;
+    private SimpleCharFilter filter;
+
+    @Before
+    public void setUp() throws Exception {
+        capacity = 20;
+        filter = new SimpleCharFilter();
+        matcher = new HeaderMatcher(filter, 20);
+    }
+
+    @Test
+    public void simpleMatches() throws Exception {
+        Pattern hatPattern = Pattern.compile("(.*)hat(.*)");
+        Pattern headPattern = Pattern.compile("head....");
+        StringReader reader = new StringReader("The mad hatter");
+        matcher.read(reader);
+        assertTrue(matcher.matches(hatPattern));
+        assertFalse(matcher.matches(headPattern));
+        reader = new StringReader("headache");
+        matcher.read(reader);
+        assertFalse(matcher.matches(hatPattern));
+        assertTrue(matcher.matches(headPattern));   
+    }
+
+    @Test
+    public void filteredMatches() throws Exception {
+        Pattern capPattern = Pattern.compile("cap(.*)");
+        StringReader reader = new StringReader("capped");
+        matcher.read(reader);
+        assertTrue(matcher.matches(capPattern));
+        filter.filterOut = true;
+        reader = new StringReader("capped");
+        matcher.read(reader);
+        assertFalse(matcher.matches(capPattern));
+    }
+
+    @Test
+    public void noLines() throws Exception {
+        StringReader reader = new StringReader("None");
+        matcher.read(reader);
+        assertEquals("No lines read", 0, matcher.lines());
+    }
+    
+    @Test
+    public void lines() throws Exception {
+        StringReader reader = new StringReader("One\n");
+        matcher.read(reader);
+        assertEquals("One line read", 1, matcher.lines());
+        reader = new StringReader("One\nTwo");
+        matcher.read(reader);
+        assertEquals("One line read", 1, matcher.lines());
+        reader = new StringReader("One\nTwo\nThree");
+        matcher.read(reader);
+        assertEquals("Two lines read", 2, matcher.lines());
+        reader = new StringReader("One\nTwo\nThree\n");
+        matcher.read(reader);
+        assertEquals("Three lines read", 3, matcher.lines());
+    }
+    
+    @Test
+    public void tooManyLines() throws Exception {
+        StringReader reader = new StringReader("WhateverWhateverWhateverWhateverWhateverWhateverWhateverWhatever");
+        matcher.read(reader);
+        assertEquals("Too many lines read", -1, matcher.lines());
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/header/HeaderMatcherWithBeansTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/HeaderMatcherWithBeansTest.java
new file mode 100644
index 0000000..ce5e9db
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/HeaderMatcherWithBeansTest.java
@@ -0,0 +1,80 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.StringReader;
+import java.util.regex.Pattern;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class HeaderMatcherWithBeansTest {
+
+    private int capacity;
+    private HeaderMatcher matcher;
+    private SimpleCharFilter filter;
+    private HeaderBean[] beans;
+
+    @Before
+    public void setUp() throws Exception {
+        HeaderBean[] beans = {
+                new HeaderBean(),
+                new HeaderBean(),
+                new HeaderBean()
+            };
+        this.beans = beans;
+        capacity = 20;
+        filter = new SimpleCharFilter();
+        matcher = new HeaderMatcher(filter, 20, beans);
+    }
+
+    @Test
+    public void nulls() throws Exception {
+        beans[0].setMatch(false);
+        beans[1].setMatch(true);
+        beans[2].setMatch(false);
+        StringReader reader = new StringReader("Whatever");
+        matcher.read(reader);   
+        assertFalse("State preserved", beans[0].isMatch());
+        assertTrue("State preserved", beans[1].isMatch());
+        assertFalse("State preserved", beans[2].isMatch());
+        beans[0].setMatch(true);
+        beans[1].setMatch(false);
+        beans[2].setMatch(true);
+        assertTrue("State preserved", beans[0].isMatch());
+        assertFalse("State preserved", beans[1].isMatch());
+        assertTrue("State preserved", beans[2].isMatch());
+    }
+
+    @Test
+    public void matches() throws Exception {
+        beans[0].setHeaderPattern(Pattern.compile("What(.*)"));
+        beans[1].setHeaderPattern(Pattern.compile("(.*)ever"));
+        beans[2].setHeaderPattern(Pattern.compile("What"));
+        StringReader reader = new StringReader("Whatever");
+        matcher.read(reader);   
+        assertTrue("Match header pattern", beans[0].isMatch());
+        assertTrue("Match header pattern", beans[1].isMatch());
+        assertFalse("Match header pattern", beans[2].isMatch());
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/header/SimpleCharFilter.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/SimpleCharFilter.java
new file mode 100644
index 0000000..cf44004
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/header/SimpleCharFilter.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.header;
+
+public class SimpleCharFilter implements CharFilter {
+
+    public boolean filterOut = false;
+    
+    public SimpleCharFilter() {}
+
+    public boolean isFilteredOut(char character) {
+        return filterOut;
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java
new file mode 100644
index 0000000..ae59f66
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.policy;
+
+import org.apache.rat.Defaults;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.document.MockLocation;
+import org.apache.rat.license.ILicenseFamily;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+
+import static org.junit.Assert.assertEquals;
+
+
+public class DefaultPolicyTest {
+    private static final int NUMBER_OF_DEFAULT_ACCEPTED_LICENSES = Defaults.DEFAULT_LICENSE_FAMILIES.size();
+
+    private static final ILicenseFamily JUST_A_TEST_LIC_FAMILY = new ILicenseFamily() {
+        public String getFamilyName() {
+            return "justATest";
+        }
+    };
+
+    private Document subject;
+    private DefaultPolicy policy;
+
+    @Before
+    public void setUp() throws Exception {
+        policy = new DefaultPolicy();
+        subject = new MockLocation("subject");
+    }
+
+    @SuppressWarnings("boxing") // OK in test code
+    private void assertApproval(boolean pApproved) {
+        assertEquals(pApproved, MetaData.RAT_APPROVED_LICENSE_VALUE_TRUE.equals(subject.getMetaData().value(MetaData.RAT_URL_APPROVED_LICENSE)));
+    }
+
+    @Test
+    public void testALFamily() throws Exception {
+        assertEquals(NUMBER_OF_DEFAULT_ACCEPTED_LICENSES, policy.getApprovedLicenseNames().size());
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_APACHE_LICENSE_VERSION_2_0);
+        policy.analyse(subject);
+        assertApproval(true);
+    }
+
+    @Test
+    public void testOASISFamily() throws Exception {
+        assertEquals(NUMBER_OF_DEFAULT_ACCEPTED_LICENSES, policy.getApprovedLicenseNames().size());
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_OASIS_OPEN_LICENSE);
+        policy.analyse(subject);
+        assertApproval(true);
+    }
+
+    @Test
+    public void testW3CFamily() throws Exception {
+        assertEquals(NUMBER_OF_DEFAULT_ACCEPTED_LICENSES, policy.getApprovedLicenseNames().size());
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_W3C_SOFTWARE_COPYRIGHT);
+        policy.analyse(subject);
+        assertApproval(true);
+    }
+
+    @Test
+    public void testW3CDocFamily() throws Exception {
+        assertEquals(NUMBER_OF_DEFAULT_ACCEPTED_LICENSES, policy.getApprovedLicenseNames().size());
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_W3C_DOCUMENT_COPYRIGHT);
+        policy.analyse(subject);
+        assertApproval(true);
+    }
+
+    @Test
+    public void testModifiedBSDFamily() throws Exception {
+        assertEquals(NUMBER_OF_DEFAULT_ACCEPTED_LICENSES, policy.getApprovedLicenseNames().size());
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_MODIFIED_BSD_LICENSE);
+        policy.analyse(subject);
+        assertApproval(true);
+    }
+
+    @Test
+    public void testMITFamily() throws Exception {
+        assertEquals(NUMBER_OF_DEFAULT_ACCEPTED_LICENSES, policy.getApprovedLicenseNames().size());
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_MIT);
+        policy.analyse(subject);
+        assertApproval(true);
+    }
+
+    @Test
+    public void testCDDL1Family() throws Exception {
+        assertEquals(NUMBER_OF_DEFAULT_ACCEPTED_LICENSES, policy.getApprovedLicenseNames().size());
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_CDDL1);
+        policy.analyse(subject);
+        assertApproval(true);
+    }
+
+    @Test
+    public void testUnknownFamily() throws Exception {
+        assertEquals(NUMBER_OF_DEFAULT_ACCEPTED_LICENSES, policy.getApprovedLicenseNames().size());
+        subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_UNKNOWN);
+        policy.analyse(subject);
+        assertApproval(false);
+    }
+
+    @Test
+    public void testNullAsMarkerOfDefaults() {
+        // with defaults
+        for (DefaultPolicy policy : new DefaultPolicy[]{//
+                new DefaultPolicy(), //
+                new DefaultPolicy(new ArrayList<String>(0), true),//
+                new DefaultPolicy(new ILicenseFamily[]{}, true),
+        }) {
+            assertEquals("Did you add new license defaults?", NUMBER_OF_DEFAULT_ACCEPTED_LICENSES, policy.getApprovedLicenseNames().size());
+        }
+
+        // without defaults and no additions == 0
+        for (DefaultPolicy policy : new DefaultPolicy[]{//
+                new DefaultPolicy(new ArrayList<String>(0), false),//
+                new DefaultPolicy(new ILicenseFamily[]{}, false),
+        }) {
+            assertEquals(0, policy.getApprovedLicenseNames().size());
+        }
+    }
+
+    @Test
+    public void testAddNewApprovedLicenseAndDefaults() {
+        assertEquals("justATest", new DefaultPolicy(new ILicenseFamily[]{JUST_A_TEST_LIC_FAMILY}, false).getApprovedLicenseNames().get(0));
+        assertEquals("Did not properly merge approved licenses with default", 1, new DefaultPolicy(new ILicenseFamily[]{JUST_A_TEST_LIC_FAMILY}, false).getApprovedLicenseNames().size());
+    }
+
+    @Test
+    public void testAddNewApprovedLicenseNoDefaults() {
+        assertEquals("justATest", new DefaultPolicy(new ILicenseFamily[]{JUST_A_TEST_LIC_FAMILY}, false).getApprovedLicenseNames().get(0));
+        assertEquals("Did not properly merge approved licenses with default", NUMBER_OF_DEFAULT_ACCEPTED_LICENSES + 1, new DefaultPolicy(new ILicenseFamily[]{JUST_A_TEST_LIC_FAMILY}, true).getApprovedLicenseNames().size());
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java
new file mode 100644
index 0000000..009e727
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.claim.impl.xml;
+
+import org.apache.rat.report.AbstractReport;
+
+public class MockClaimReporter extends AbstractReport {
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/MockXmlWriter.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/MockXmlWriter.java
new file mode 100644
index 0000000..ec08988
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/MockXmlWriter.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml;
+
+import org.apache.rat.report.xml.writer.IXmlWriter;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class MockXmlWriter implements IXmlWriter {
+
+    public final List<Object> calls = new ArrayList<Object>();
+    
+    public IXmlWriter attribute(CharSequence name, CharSequence value)
+            throws IOException {
+        calls.add(new Attribute(name, value));
+        return this;
+    }
+
+    public IXmlWriter closeDocument() throws IOException {
+        calls.add(new CloseDocument());
+        return this;
+    }
+
+    public IXmlWriter closeElement() throws IOException {
+        calls.add(new CloseElement());
+        return this;
+    }
+
+    public IXmlWriter content(CharSequence content) throws IOException {
+        calls.add(new Content(content));
+        return this;
+    }
+
+    public IXmlWriter openElement(CharSequence elementName) throws IOException {
+        calls.add(new OpenElement(elementName));
+        return this;
+    }
+
+    public IXmlWriter startDocument() throws IOException {
+        calls.add(new StartDocument());
+        return this;
+    }
+    
+    public boolean isCloseElement(int index) {
+        boolean result = false;
+        final Object call = calls.get(index);
+        result = call instanceof CloseElement;
+        return result;
+    }
+    
+    public boolean isContent(String content, int index) {
+        boolean result = false;
+        final Object call = calls.get(index);
+        if (call instanceof Content) {
+            Content contentCall = (Content) call;
+            result = content.equals(contentCall.content);
+        }
+        return result;
+    }
+    
+    public boolean isOpenElement(String name, int index) {
+        boolean result = false;
+        final Object call = calls.get(index);
+        if (call instanceof OpenElement) {
+            OpenElement openElement = (OpenElement) call;
+            result = name.equals(openElement.elementName);
+        }
+        return result;
+    }
+
+    public boolean isAttribute(String name, String value, int index) {
+        boolean result = false;
+        final Object call = calls.get(index);
+        if (call instanceof Attribute) {
+            Attribute attribute = (Attribute) call;
+            result = name.equals(attribute.name) && value.equals(attribute.value);
+        }
+        return result;
+    }
+    
+    public class StartDocument {}
+    public class CloseDocument {}
+    public class CloseElement {}
+    public class OpenElement {
+        public final CharSequence elementName;
+        private OpenElement(CharSequence elementName) {
+            this.elementName = elementName;
+        }
+    }
+    public class Content {
+        public final CharSequence content;
+        private Content(CharSequence content) {
+            this.content = content;
+        }
+    }
+    public class Attribute {
+        public final CharSequence name;
+        public final CharSequence value;
+        private Attribute(CharSequence name, CharSequence value) {
+            this.name = name;
+            this.value = value;
+        }
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java
new file mode 100644
index 0000000..b02d047
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml;
+
+import org.apache.rat.ReportConfiguration;
+import org.apache.rat.analysis.MockLicenseMatcher;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.report.RatReport;
+import org.apache.rat.report.claim.ClaimStatistic;
+import org.apache.rat.report.xml.writer.IXmlWriter;
+import org.apache.rat.report.xml.writer.impl.base.XmlWriter;
+import org.apache.rat.test.utils.Resources;
+import org.apache.rat.walker.DirectoryWalker;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.StringWriter;
+import java.util.regex.Pattern;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class XmlReportFactoryTest {
+
+    private static final Pattern IGNORE_EMPTY = Pattern.compile(".svn|Empty.txt");
+    
+    private StringWriter out;
+    private IXmlWriter writer;
+    
+    @Before
+    public void setUp() throws Exception {
+        out = new StringWriter();
+        writer = new XmlWriter(out);
+        writer.startDocument();
+    }
+
+    private void report(DirectoryWalker directory, RatReport report) throws Exception {
+        directory.run(report);
+    }
+    
+    @Test
+    public void standardReport() throws Exception {
+        final String elementsPath = Resources.getResourceDirectory("elements/Source.java");
+        final MockLicenseMatcher mockLicenseMatcher = new MockLicenseMatcher();
+        DirectoryWalker directory = new DirectoryWalker(new File(elementsPath), IGNORE_EMPTY);
+        final ClaimStatistic statistic = new ClaimStatistic();
+        final ReportConfiguration configuration = new ReportConfiguration();
+        configuration.setHeaderMatcher(mockLicenseMatcher);
+        RatReport report = XmlReportFactory.createStandardReport(writer, statistic, configuration);
+        report.startReport();
+        report(directory, report);
+        report.endReport();
+        writer.closeDocument();
+        final String output = out.toString();
+        assertTrue("Preamble and document element are OK",
+                   output.startsWith("<?xml version='1.0'?>" +
+                "<rat-report timestamp="));
+        assertTrue("Part after timestamp attribute is OK",
+                   output.endsWith(">" +
+                "<resource name='" + elementsPath + "/ILoggerFactory.java'><type name='standard'/></resource>" +
+                "<resource name='" + elementsPath + "/Image.png'><type name='binary'/></resource>" +
+                "<resource name='" + elementsPath + "/LICENSE'><type name='notice'/></resource>" +
+                "<resource name='" + elementsPath + "/NOTICE'><type name='notice'/></resource>" +
+                "<resource name='" + elementsPath + "/Source.java'><type name='standard'/>" +
+                "</resource>" +
+                "<resource name='" + elementsPath + "/Text.txt'><type name='standard'/>" +
+                "</resource>" +
+                "<resource name='" + elementsPath + "/Xml.xml'><type name='standard'/>" +
+                "</resource>" +
+                "<resource name='" + elementsPath + "/buildr.rb'><type name='standard'/>" +
+                "</resource>" +
+                "<resource name='" + elementsPath + "/dummy.jar'><type name='archive'/></resource>" +
+                                   "</rat-report>"));
+        assertTrue("Is well formed", XmlUtils.isWellFormedXml(output));
+        assertEquals("Binary files", Integer.valueOf(1), statistic.getDocumentCategoryMap().get(MetaData.RAT_DOCUMENT_CATEGORY_VALUE_BINARY));
+        assertEquals("Notice files", Integer.valueOf(2), statistic.getDocumentCategoryMap().get(MetaData.RAT_DOCUMENT_CATEGORY_VALUE_NOTICE));
+        assertEquals("Standard files", Integer.valueOf(5), statistic.getDocumentCategoryMap().get(MetaData.RAT_DOCUMENT_CATEGORY_VALUE_STANDARD));
+        assertEquals("Archives", Integer.valueOf(1), statistic.getDocumentCategoryMap().get(MetaData.RAT_DOCUMENT_CATEGORY_VALUE_ARCHIVE));
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java
new file mode 100644
index 0000000..6debecc
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java
@@ -0,0 +1,196 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml;
+
+import org.apache.rat.analysis.DefaultAnalyserFactory;
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.document.IDocumentAnalyser;
+import org.apache.rat.report.AbstractReport;
+import org.apache.rat.report.RatReport;
+import org.apache.rat.report.claim.impl.xml.SimpleXmlClaimReporter;
+import org.apache.rat.report.claim.util.ClaimReporterMultiplexer;
+import org.apache.rat.report.xml.writer.IXmlWriter;
+import org.apache.rat.report.xml.writer.impl.base.XmlWriter;
+import org.apache.rat.test.utils.Resources;
+import org.apache.rat.walker.DirectoryWalker;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+
+import static org.junit.Assert.assertTrue;
+
+public class XmlReportTest {
+
+    private static final Pattern IGNORE = Pattern.compile(".svn");
+    private StringWriter out;
+    private IXmlWriter writer;
+    private RatReport report;
+    
+    @Before
+    public void setUp() throws Exception {
+        out = new StringWriter();
+        writer = new XmlWriter(out);
+        writer.startDocument();
+        final SimpleXmlClaimReporter reporter = new SimpleXmlClaimReporter(writer);
+        final IHeaderMatcher matcher = new IHeaderMatcher() {
+
+            public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+                return false;
+            }
+
+            public void reset() {
+            }            
+        };
+        IDocumentAnalyser analyser = DefaultAnalyserFactory.createDefaultAnalyser(matcher);
+        final List<AbstractReport> reporters = new ArrayList<AbstractReport>();
+        reporters.add(reporter);
+        report = new ClaimReporterMultiplexer(analyser, reporters); 
+    }
+
+    private void report(DirectoryWalker directory) throws Exception {
+        directory.run(report);
+    }
+    
+    @Test
+    public void baseReport() throws Exception {
+        final String elementsPath = Resources.getResourceDirectory("elements/Source.java");
+        DirectoryWalker directory = new DirectoryWalker(new File(elementsPath), IGNORE);
+        report.startReport();
+        report(directory);
+        report.endReport();
+        writer.closeDocument();
+        final String output = out.toString();
+        assertTrue("Preamble and document element are OK",
+                   output.startsWith("<?xml version='1.0'?>" +
+                "<rat-report timestamp="));
+        assertTrue("Part after timestamp attribute is OK",
+                   output.endsWith(">" +
+                    "<resource name='" + elementsPath + "/Image.png'><type name='binary'/></resource>" +
+                    "<resource name='" + elementsPath + "/LICENSE'><type name='notice'/></resource>" +
+                    "<resource name='" + elementsPath + "/NOTICE'><type name='notice'/></resource>" +
+                    "<resource name='" + elementsPath + "/Source.java'><header-sample>package elements;\n" +
+"\n" +
+"/*\n" +
+" * This file does intentionally *NOT* contain an AL license header,\n" +
+" * because it is used in the test suite.\n" +
+" */\n" +
+"public class Source {\n" +
+"\n" +
+"}\n" + "</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/></resource>" +
+                    "<resource name='" + elementsPath + "/Text.txt'><header-sample>/*\n" +
+" * Licensed to the Apache Software Foundation (ASF) under one\n" +
+" * or more contributor license agreements.  See the NOTICE file\n" +
+" * distributed with this work for additional information\n" +
+" * regarding copyright ownership.  The ASF licenses this file\n" +
+" * to you under the Apache License, Version 2.0 (the \"License\");\n" +
+" * you may not use this file except in compliance with the License.\n" +
+" * You may obtain a copy of the License at\n" +
+" *\n" +
+" *    http://www.apache.org/licenses/LICENSE-2.0\n" +
+" *\n" +
+" * Unless required by applicable law or agreed to in writing,\n" +
+" * software distributed under the License is distributed on an\n" +
+" * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n" +
+" * KIND, either express or implied.  See the License for the\n" +
+" * specific language governing permissions and limitations\n" +
+" * under the License.    \n" +
+" */\n" +
+"\n" +
+"            \n" +
+"</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/></resource>" +
+                    "<resource name='" + elementsPath + "/Xml.xml'><header-sample>&lt;?xml version='1.0'?&gt;\n" +
+"&lt;!--\n" +
+" Licensed to the Apache Software Foundation (ASF) under one   *\n" +
+" or more contributor license agreements.  See the NOTICE file *\n" +
+" distributed with this work for additional information        *\n" +
+" regarding copyright ownership.  The ASF licenses this file   *\n" +
+" to you under the Apache License, Version 2.0 (the            *\n" +
+" \"License\"); you may not use this file except in compliance   *\n" +
+" with the License.  You may obtain a copy of the License at   *\n" +
+"                                                              *\n" +
+"   http://www.apache.org/licenses/LICENSE-2.0                 *\n" +
+"                                                              *\n" +
+" Unless required by applicable law or agreed to in writing,   *\n" +
+" software distributed under the License is distributed on an  *\n" +
+" \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *\n" +
+" KIND, either express or implied.  See the License for the    *\n" +
+" specific language governing permissions and limitations      *\n" +
+" under the License.                                           *\n" +
+"--&gt;\n" +
+"&lt;document/&gt;\n" +
+"</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/></resource>" +
+                    "<resource name='" + elementsPath + "/buildr.rb'><header-sample># Licensed to the Apache Software Foundation (ASF) under one or more\n" +
+"# contributor license agreements.  See the NOTICE file distributed with this\n" +
+"# work for additional information regarding copyright ownership.  The ASF\n" +
+"# licenses this file to you under the Apache License, Version 2.0 (the\n" +
+"# \"License\"); you may not use this file except in compliance with the License.\n" +
+"# You may obtain a copy of the License at\n" +
+"#\n" +
+"#    http://www.apache.org/licenses/LICENSE-2.0\n" +
+"#\n" +
+"# Unless required by applicable law or agreed to in writing, software\n" +
+"# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n" +
+"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the\n" +
+"# License for the specific language governing permissions and limitations under\n" +
+"# the License.\n" +
+"\n" +
+"unless defined?(Buildr::VERSION)\n" +
+"  require 'buildr/version'\n" +
+"end\n" +
+"\n" +
+"require 'buildr/core'\n" +
+"require 'buildr/packaging'\n" +
+"require 'buildr/java'\n" +
+"require 'buildr/ide'\n" +
+"require 'buildr/shell'\n" +
+"require 'buildr/run'\n" +
+"\n" +
+"# Methods defined in Buildr are both instance methods (e.g. when included in Project)\n" +
+"# and class methods when invoked like Buildr.artifacts().\n" +
+"module Buildr ; extend self ; end\n" +
+"\n" +
+"# The Buildfile object (self) has access to all the Buildr methods and constants.\n" +
+"class &lt;&lt; self ; include Buildr ; end\n" +
+"\n" +
+"# All modules defined under Buildr::* can be referenced without Buildr:: prefix\n" +
+"# unless a conflict exists (e.g.  Buildr::RSpec vs ::RSpec)\n" +
+"class Object #:nodoc:\n" +
+"  Buildr.constants.each do |name|\n" +
+"    const = Buildr.const_get(name)\n" +
+"    if const.is_a?(Module)\n" +
+"      const_set name, const unless const_defined?(name)\n" +
+"    end\n" +
+"  end\n" +
+"end\n" +
+"\n" +
+                "</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/></resource>" +
+                    "<resource name='" + elementsPath + "/dummy.jar'><type name='archive'/></resource>" +
+                    "<resource name='" + elementsPath + "/sub/Empty.txt'><header-sample>\n</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/></resource>" +
+                    "</rat-report>"));
+        assertTrue("Is well formed", XmlUtils.isWellFormedXml(output));
+    }
+
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlUtils.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlUtils.java
new file mode 100644
index 0000000..3137464
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlUtils.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml;
+
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.lang.reflect.UndeclaredThrowableException;
+
+public final class XmlUtils {
+    /**
+     * Private constructor, to prevent accidental instantiation.
+     */
+    private XmlUtils() {
+        // Does nothing
+    }
+
+    public static final boolean isWellFormedXml(final String string) throws Exception {
+        return isWellFormedXml(new InputSource(new StringReader(string)));
+    }
+
+    public static final XMLReader newXMLReader() throws SAXException, ParserConfigurationException {
+        final SAXParserFactory spf = SAXParserFactory.newInstance();
+        spf.setValidating(false);
+        spf.setNamespaceAware(true);
+        return spf.newSAXParser().getXMLReader();
+    }
+
+    public static final boolean isWellFormedXml(final InputSource isource) {
+        try {
+            newXMLReader().parse(isource);
+            return true;
+        } catch (SAXException e) {
+            System.out.println(e);
+            e.printStackTrace();
+            return false;
+        } catch (IOException e) {
+            throw new UndeclaredThrowableException(e);
+        } catch (ParserConfigurationException e) {
+            throw new UndeclaredThrowableException(e);
+        }
+    }
+
+    public static final boolean isWellFormedXml(final InputStream in) throws Exception {
+        return isWellFormedXml(new InputSource(in));
+    }
+    
+    public static final Document toDom(final InputStream in) throws SAXException, IOException, ParserConfigurationException, FactoryConfigurationError {
+        final DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+        Document result;
+        result = builder.parse(in);
+        return result;
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/writer/XmlWriterUtilsTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/writer/XmlWriterUtilsTest.java
new file mode 100644
index 0000000..69ef2c4
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/writer/XmlWriterUtilsTest.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml.writer;
+
+import org.apache.rat.report.xml.writer.impl.base.XmlWriter;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.StringWriter;
+
+import static org.junit.Assert.assertEquals;
+
+public class XmlWriterUtilsTest {
+
+    private StringWriter out;
+    private IXmlWriter writer;
+
+    @Before
+    public void setUp() throws Exception {
+        out = new StringWriter();
+        writer = new XmlWriter(out);
+        writer.openElement("alpha");
+    }
+
+    @Test
+    public void writeTrue() throws Exception {
+        XmlWriterUtils.writeAttribute(writer, "name", true);
+        assertEquals("Attribute written as True", "<alpha name='true'", out.toString());
+    }
+
+    @Test
+    public void writeFalse() throws Exception {
+        XmlWriterUtils.writeAttribute(writer, "name", false);
+        assertEquals("Attribute written as False", "<alpha name='false'", out.toString());
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/writer/impl/base/XmlWriterTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/writer/impl/base/XmlWriterTest.java
new file mode 100644
index 0000000..6c86118
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/writer/impl/base/XmlWriterTest.java
@@ -0,0 +1,483 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.report.xml.writer.impl.base;
+
+import org.apache.rat.report.xml.writer.InvalidXmlException;
+import org.apache.rat.report.xml.writer.OperationNotAllowedException;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.StringWriter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+public class XmlWriterTest {
+
+    private static final char[] ZERO_CHAR = {(char)0};
+    
+    private XmlWriter writer;
+    private StringWriter out;
+    
+    @Before
+    public void setUp() throws Exception {
+        out = new StringWriter();
+        writer = new XmlWriter(out);
+    }
+
+    @Test
+    public void returnValues() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("beta", "b"));
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.content("gamma"));
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+    }
+
+    @Test
+    public void openElement() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("beta"));
+        assertEquals("Alpha element tag closed and beta started", "<alpha><beta", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Beta tag ended", "<alpha><beta/>", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("gamma"));
+        assertEquals("Gamma tag started", "<alpha><beta/><gamma", out.toString());
+    }
+    
+    @Test
+    public void invalidElementName() throws Exception {
+        assertTrue("All strings ok", isValidElementName("alpha"));
+        assertTrue("Strings and digits ok", isValidElementName("alpha77"));
+        assertFalse("Must no start with digit", isValidElementName("5alpha77"));
+        assertFalse("Greater than not ok", isValidElementName("alph<a77"));
+        assertFalse("Less than not ok", isValidElementName("alph<a77"));
+        assertFalse("Quote not ok", isValidElementName("alph'a77"));
+        assertTrue("Dash ok", isValidElementName("alph-a77"));
+        assertTrue("Underscore ok", isValidElementName("alph_a77"));
+        assertTrue("Dot ok", isValidElementName("alph.a77"));
+        assertTrue("Colon ok", isValidElementName("alpha:77"));
+        assertFalse("Start with dash not ok", isValidElementName("-a77"));
+        assertTrue("Start with underscore ok", isValidElementName("_a77"));
+        assertFalse("Start with dot not ok", isValidElementName(".a77"));
+        assertTrue("Start with colon ok", isValidElementName(":a77"));
+    }
+    
+    private boolean isValidElementName(String elementName) throws Exception {
+        boolean result = true;
+        try {
+            writer.openElement(elementName);
+        } catch (InvalidXmlException e) {
+            result = false;
+        }
+        return result;
+    }
+
+    @Test
+    public void callOpenElementAfterLastElementClosed() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Element alpha is closed", "<alpha/>", out.toString());
+        try {
+            writer.openElement("delta");
+            fail("Cannot open new elements once the first element has been closed");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements once the first element has been closed
+        }
+    }    
+
+    @Test
+    public void callCloseElementAfterLastElementClosed() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Element alpha is closed", "<alpha/>", out.toString());
+        try {
+            writer.closeElement();
+            fail("Cannot close elements once the first element has been closed");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements once the first element has been closed
+        }
+    }
+
+    @Test
+    public void closeFirstElement() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Element alpha is closed", "<alpha/>", out.toString());
+    }
+    
+    @Test
+    public void closeElementWithContent() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("beta"));
+        assertEquals("Beta element started", "<alpha><beta", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Element beta is closed", "<alpha><beta/>", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Element beta is closed", "<alpha><beta/></alpha>", out.toString());
+        try {
+            writer.closeElement();
+            fail("Cannot close elements once the first element has been closed");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements once the first element has been closed
+        }
+    }
+    
+    @Test
+    public void closeElementBeforeFirstElement() throws Exception {
+        try {
+            writer.closeElement();
+            fail("Cannot close elements before the first element has been closed");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements before the first element has been closed
+        }
+    }
+    
+    @Test
+    public void contentAfterElement() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.content("foo bar"));
+        assertEquals("Alpha tag closed. Content written", "<alpha>foo bar", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.content(" and more foo bar"));
+        assertEquals("Alpha tag closed. Content written", "<alpha>foo bar and more foo bar", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("beta"));
+        assertEquals("Beta element started", "<alpha>foo bar and more foo bar<beta", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Element beta is closed", "<alpha>foo bar and more foo bar<beta/>", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Element beta is closed", "<alpha>foo bar and more foo bar<beta/></alpha>", out.toString());
+        try {
+            writer.content("A Sentence Too far");
+            fail("Cannot write content once the first element has been closed");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements once the first element has been closed
+        }
+    }
+
+    @Test
+    public void contentAfterLastElement() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Element beta is closed", "<alpha/>", out.toString());
+        try {
+            writer.content("A Sentence Too far");
+            fail("Cannot write content once the first element has been closed");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements once the first element has been closed
+        }
+    }
+    
+    @Test
+    public void writeContentBeforeFirstElement() throws Exception {
+        try {
+            writer.content("Too early");
+            fail("Cannot close elements before the first element has been closed");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements before the first element has been closed
+        }
+    }
+    
+    @Test
+    public void contentEscaping() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.content("this&that"));
+        assertEquals("Amphersands must be escaped", "<alpha>this&amp;that", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.content("small<large"));
+        assertEquals("Left angle brackets must be escaped", "<alpha>this&amp;thatsmall&lt;large", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.content("12>1"));
+        assertEquals("Choose to escape right angle brackets", "<alpha>this&amp;thatsmall&lt;large12&gt;1", out.toString());
+
+    }
+
+    @Test
+    public void attributeAfterLastElement() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Element beta is closed", "<alpha/>", out.toString());
+        try {
+            writer.attribute("foo", "bar");
+            fail("Cannot write content once the first element has been closed");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements once the first element has been closed
+        }
+    }
+    
+    @Test
+    public void attributeContentBeforeFirstElement() throws Exception {
+        try {
+            writer.attribute("foo", "bar");
+            fail("Cannot close elements before the first element has been closed");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements before the first element has been closed
+        }
+    }
+    
+    @Test
+    public void invalidAttributeName() throws Exception {
+        writer.openElement("alpha");
+        assertTrue("All strings ok", isValidAttributeName("alpha"));
+        assertTrue("Strings and digits ok", isValidAttributeName("alpha77"));
+        assertFalse("Must not start with digit", isValidAttributeName("5alpha77"));
+        assertTrue("Colon ok", isValidAttributeName("alpha:77"));
+        assertFalse("Greater than not ok", isValidAttributeName("alph<a77"));
+        assertFalse("Less than not ok", isValidAttributeName("alph<a77"));
+        assertFalse("Quote not ok", isValidAttributeName("alph'a77"));
+    }
+    
+    private boolean isValidAttributeName(String name) throws Exception {
+        boolean result = true;
+        try {
+            writer.attribute(name, "");
+        } catch (InvalidXmlException e) {
+            result = false;
+        }
+        return result;
+    }
+    
+    @Test
+    public void escapeAttributeContent() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("one", "this&that"));
+        assertEquals("Amphersands must be escaped", "<alpha one='this&amp;that'", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("two", "small<large"));
+        assertEquals("Left angle brackets must be escaped", "<alpha one='this&amp;that' two='small&lt;large'", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("three", "12>1"));
+        assertEquals("Choose to escape right angle brackets", "<alpha one='this&amp;that' two='small&lt;large' three='12&gt;1'", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("four", "'quote'"));
+        assertEquals("Apostrophes must be escape", "<alpha one='this&amp;that' two='small&lt;large' three='12&gt;1' four='&apos;quote&apos;'", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("five", "\"quote\""));
+        assertEquals("Double quotes must be escape", "<alpha one='this&amp;that' two='small&lt;large' three='12&gt;1' four='&apos;quote&apos;' five='&quot;quote&quot;'", out.toString());
+
+    }
+    
+    @Test
+    public void attributeInContent() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.content("foo bar"));
+        try {
+            writer.attribute("name", "value");
+            fail("attributes after body content are not allowed");
+        } catch (InvalidXmlException e) {
+            // attributes after body content are not allowed
+        }
+    }
+  
+    @Test
+    public void outOfRangeCharacter() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.content(new String(ZERO_CHAR)));
+        String out = this.out.toString();
+        assertEquals("Replace illegal characters with question marks", "<alpha>?", out);
+    }
+    
+    @Test
+    public void attributeAfterElementClosed() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("beta"));
+        assertEquals("Beta element started", "<alpha><beta", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Beta element closed", "<alpha><beta/>", out.toString());
+        try {
+            writer.attribute("name", "value");
+            fail("attributes after closed element are not allowed");
+        } catch (InvalidXmlException e) {
+            // attributes after body content are not allowed
+        }
+    }
+    
+    @Test
+    public void closeDocumentBeforeOpen() throws Exception {
+        try {
+            writer.closeDocument();
+            fail("Cannot close document before the first element has been opened");
+        } catch (OperationNotAllowedException e) {
+            // Cannot open new elements before the first element has been opened
+        }
+    }
+    
+    @Test
+    public void closeDocumentAfterRootElementClosed() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Beta element started", "<alpha/>", out.toString());
+        try {
+            writer.closeDocument();
+        } catch (OperationNotAllowedException e) {
+            fail("No exception should be thrown when called after the root element is closed.");
+        }
+    }   
+    
+    @Test
+    public void closeSimpleDocument() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("beta"));
+        assertEquals("Beta element started", "<alpha><beta", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeDocument());
+        assertEquals("Beta element started", "<alpha><beta/></alpha>", out.toString());
+    }
+    
+    @Test
+    public void closeComplexDocument() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("beta"));
+        assertEquals("Beta element started", "<alpha><beta", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("name", "value"));
+        assertEquals("Beta element started", "<alpha><beta name='value'", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeElement());
+        assertEquals("Beta element started", "<alpha><beta name='value'/>", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("beta"));
+        assertEquals("Beta element started", "<alpha><beta name='value'/><beta", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("name", "value"));
+        assertEquals("Beta element started", "<alpha><beta name='value'/><beta name='value'", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("gamma"));
+        assertEquals("Beta element started", "<alpha><beta name='value'/><beta name='value'><gamma", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.closeDocument());
+        assertEquals("Beta element started", "<alpha><beta name='value'/><beta name='value'><gamma/></beta></alpha>", out.toString());
+    }
+    
+    @Test
+    public void writeProlog() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.startDocument());
+        assertEquals("Prolog written", "<?xml version='1.0'?>", out.toString());
+    }
+    
+    @Test
+    public void writeAfterElement() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        try {
+            writer.startDocument();
+            fail("Operation not allowed once an element has been written");
+        } catch (OperationNotAllowedException e) {
+            // Operation not allowed once an element has been written
+        }
+    }
+    
+    @Test
+    public void writePrologTwo() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.startDocument());
+        assertEquals("Prolog written", "<?xml version='1.0'?>", out.toString());
+        try {
+            writer.startDocument();
+            fail("Operation not allow once a prolog has been written");
+        } catch (OperationNotAllowedException e) {
+            // Operation not allowed once an prolog has been written
+        }
+    }
+    
+    @Test
+    public void duplicateAttributes() throws Exception {
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("alpha"));
+        assertEquals("Alpha element started", "<alpha", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("one", "1"));
+        assertEquals("Attribute written", "<alpha one='1'", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.openElement("beta"));
+        assertEquals("Beta element started", "<alpha one='1'><beta", out.toString());
+        assertEquals("XmlWriters should always return themselves", 
+                writer, writer.attribute("one", "1"));
+        assertEquals("Beta element started", "<alpha one='1'><beta one='1'", out.toString());
+        try {
+            writer.attribute("one", "2");
+            fail("Each attribute may only be written once");
+        } catch (InvalidXmlException e) {
+            // Each attribute may only be written once
+        }
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/test/utils/Resources.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/test/utils/Resources.java
new file mode 100644
index 0000000..52968a5
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/test/utils/Resources.java
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */
+package org.apache.rat.test.utils;
+
+import org.apache.rat.document.impl.DocumentImplUtils;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+
+/**
+ * Utility class, which provides static methods for creating
+ * test cases.
+ */
+public class Resources {
+    /**
+     * Private constructor, to prevent accidental instantiation.
+     */
+    private Resources() {
+        // Does nothing
+    }
+
+    public static final String SRC_TEST_RESOURCES = "src/test/resources";
+    public static final String SRC_MAIN_RESOURCES = "src/main/resources";
+    private static File TEST_RESOURCE_BASE_PATH = new File(SRC_TEST_RESOURCES);
+    private static File RESOURCE_BASE_PATH = new File(SRC_MAIN_RESOURCES);
+
+    /**
+     * Locates a test resource file in the class path.
+     */
+    public static File getResourceFile(String pResource) throws IOException {
+        return getResourceFromBase(TEST_RESOURCE_BASE_PATH, pResource);
+    }
+
+    /**
+     * Locates a main resource file in the class path.
+     */
+    public static File getMainResourceFile(String pResource) throws IOException {
+        return getResourceFromBase(RESOURCE_BASE_PATH, pResource);
+    }
+
+    /**
+     * Try to to load the given file from baseDir, in case of errors try to add module names to fix behaviour from within IntelliJ.
+     */
+    private static File getResourceFromBase(File baseDir, String pResource) throws IOException {
+        File f = new File(baseDir, pResource);
+        if (!f.isFile()) {
+            throw new FileNotFoundException("Unable to locate resource file: " + pResource);
+        }
+        return f;
+    }
+
+    /**
+     * Locates a set of resource files in the class path.
+     * In case of errors try to add module names to fix behaviour from within IntelliJ.
+     */
+    public static File[] getResourceFiles(String pResource) throws IOException {
+        File f = new File(TEST_RESOURCE_BASE_PATH, pResource);
+        if (!f.isDirectory()) {
+            throw new FileNotFoundException("Unable to locate resource directory: " + pResource);
+        }
+
+        return f.listFiles(new FileFilter() {
+            public boolean accept(File pathname) {
+                return pathname.isFile();
+            }
+        });
+    }
+
+    /**
+     * Locates a resource file in the class path and returns an {@link InputStream}.
+     */
+    public static InputStream getResourceStream(String pResource) throws IOException {
+        return new FileInputStream(getResourceFile(pResource));
+    }
+
+    /**
+     * Locates a resource file in the class path and returns a {@link Reader}.
+     */
+    public static Reader getResourceReader(String pResource) throws IOException {
+        return new InputStreamReader(getResourceStream(pResource), "UTF-8");
+    }
+
+    /**
+     * Locates a resource file in the class path and returns a {@link BufferedReader}.
+     */
+    public static BufferedReader getBufferedResourceReader(String pResource) throws IOException {
+        return new BufferedReader(getResourceReader(pResource));
+    }
+
+    /**
+     * Locates a resource file in the class path and returns a {@link BufferedReader}.
+     */
+    public static BufferedReader getBufferedReader(File file) throws IOException {
+        return new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
+    }
+
+    /**
+     * Locates the name of a directory, which contains the given
+     * resource file.
+     */
+    public static String getResourceDirectory(String pResource) throws IOException {
+        final File resource = getResourceFile(pResource);
+        final File dir = resource.getParentFile();
+        return DocumentImplUtils.toName(dir);
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/java/org/apache/rat/walker/FileNameComparatorTest.java b/trunk/apache-rat-core/src/test/java/org/apache/rat/walker/FileNameComparatorTest.java
new file mode 100644
index 0000000..5ac932d
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/java/org/apache/rat/walker/FileNameComparatorTest.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.walker;
+
+import org.apache.rat.test.utils.Resources;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+public class FileNameComparatorTest {
+
+    @Test
+    public void compare() throws IOException {
+        FileNameComparator comparator = new FileNameComparator();
+        assertNotNull(comparator);
+        final int compare = comparator.compare(Resources.getResourceFile("elements/LICENSE"), Resources.getResourceFile("elements/NOTICE"));
+        assertTrue("LICENSE is before NOTICE", compare < 0);
+    }
+}
diff --git a/trunk/apache-rat-core/src/test/resources/appliedAL20/bad/aal20bad1.txt b/trunk/apache-rat-core/src/test/resources/appliedAL20/bad/aal20bad1.txt
new file mode 100644
index 0000000..0a1af5e
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/appliedAL20/bad/aal20bad1.txt
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2012-2013 BarFoo. All Rights Reserved.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the \"License\");
+ *  you may not use this file except in compliance with the License.
+ *
+ *  You may obtain a copy of the License at
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an \"AS IS\" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */ 
+
+ Wrong copyright holder
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/test/resources/appliedAL20/bad/aal20bad2.txt b/trunk/apache-rat-core/src/test/resources/appliedAL20/bad/aal20bad2.txt
new file mode 100644
index 0000000..fcc61d2
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/appliedAL20/bad/aal20bad2.txt
@@ -0,0 +1,5553 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<!-- This file causes RAT 0.9 to run very slowly: see RAT-138 -->
+Copyright 2012-2013 FooBar. All Rights Reserved.
+<head>
+<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-1">
+<title>Index (Commons IO 2.5-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="./stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Index (Commons IO 2.5-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="./overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="./overview-tree.html">Tree</a></li>
+<li><a href="./deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="./help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="./allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#_A_">A</a>&nbsp;<a href="#_B_">B</a>&nbsp;<a href="#_C_">C</a>&nbsp;<a href="#_D_">D</a>&nbsp;<a href="#_E_">E</a>&nbsp;<a href="#_F_">F</a>&nbsp;<a href="#_G_">G</a>&nbsp;<a href="#_H_">H</a>&nbsp;<a href="#_I_">I</a>&nbsp;<a href="#_L_">L</a>&nbsp;<a href="#_M_">M</a>&nbsp;<a href="#_N_">N</a>&nbsp;<a href="#_O_">O</a>&nbsp;<a href="#_P_">P</a>&nbsp;<a href="#_R_">R</a>&nbsp;<a href="#_S_">S</a>&nbsp;<a href="#_T_">T</a>&nbsp;<a href="#_U_">U</a>&nbsp;<a href="#_V_">V</a>&nbsp;<a href="#_W_">W</a>&nbsp;<a href="#_X_">X</a>&nbsp;<a name="_A_">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">AbstractFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">An abstract class which implements the Java FileFilter and FilenameFilter 
+ interfaces via the IOFileFilter interface.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html#AbstractFileFilter()">AbstractFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter">AbstractFileFilter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter">AbstractFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter">AbstractFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the last modification of the file matches cutoff
+ favorably.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file can be read.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter">CanWriteFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file can be written to.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Checks the filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Checks the filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter">DirectoryFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file is a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter">EmptyFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file is empty.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Returns false.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Returns false.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFileFilter.html" title="class in org.apache.commons.io.filefilter">FileFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file is a file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter">HiddenFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file is hidden.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/IOFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter">IOFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/IOFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter">IOFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Accepts the provided file if the file contains the file filter's magic
+ number at the specified offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NotFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter">NotFileFilter</a></dt>
+<dd>
+<div class="block">Returns the logical NOT of the underlying filter's return value for the same File.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NotFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter">NotFileFilter</a></dt>
+<dd>
+<div class="block">Returns the logical NOT of the underlying filter's return value for the same arguments.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename starts with the prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename starts with the prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches one of the regular expressions.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter">SizeFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the size of the file is favorable.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename ends with the suffix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename ends with the suffix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Returns true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Returns true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches one of the wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches one of the wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Checks to see if the filename matches one of the wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Checks to see if the filename matches one of the wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#addFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">addFileFilter(IOFileFilter)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Adds the specified file filter to the list of file filters at the end of
+ the list.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html#addFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">addFileFilter(IOFileFilter)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter">ConditionalFileFilter</a></dt>
+<dd>
+<div class="block">Adds the specified file filter to the list of file filters at the end of
+ the list.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#addFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">addFileFilter(IOFileFilter)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Adds the specified file filter to the list of file filters at the end of
+ the list.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#addListener(org.apache.commons.io.monitor.FileAlterationListener)">addListener(FileAlterationListener)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Add a file system listener.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#addObserver(org.apache.commons.io.monitor.FileAlterationObserver)">addObserver(FileAlterationObserver)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Add a file system observer to this monitor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/AutoCloseInputStream.html#afterRead(int)">afterRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input">AutoCloseInputStream</a></dt>
+<dd>
+<div class="block">Automatically closes the stream if the end of stream was reached.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#afterRead(int)">afterRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Adds the number of read bytes to the count.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#afterRead(int)">afterRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invoked by the read methods after the proxied call has returned
+ successfully.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#afterRead(int)">afterRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invoked by the read methods after the proxied call has returned
+ successfully.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#afterWrite(int)">afterWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invoked by the write methods after the proxied call has returned
+ successfully.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#afterWrite(int)">afterWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invoked by the write methods after the proxied call has returned
+ successfully.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">AgeFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files based on a cutoff time, can filter either newer
+ files or files equal to or older.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(long)">AgeFileFilter(long)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files equal to or older than
+ a certain cutoff</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(long, boolean)">AgeFileFilter(long, boolean)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files on any one side
+ of a certain cutoff.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(java.util.Date)">AgeFileFilter(Date)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files older than (at or before)
+ a certain cutoff date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(java.util.Date, boolean)">AgeFileFilter(Date, boolean)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files on any one side
+ of a certain cutoff date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(java.io.File)">AgeFileFilter(File)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files older than (at or before)
+ a certain File (whose last modification time will be used as reference).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(java.io.File, boolean)">AgeFileFilter(File, boolean)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files on any one side
+ of a certain File (whose last modification time will be used as
+ reference).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(long)">ageFileFilter(long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the file was last modified after
+ the specified cutoff time.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(long, boolean)">ageFileFilter(long, boolean)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that filters files based on a cutoff time.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(java.util.Date)">ageFileFilter(Date)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the file was last modified after
+ the specified cutoff date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(java.util.Date, boolean)">ageFileFilter(Date, boolean)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that filters files based on a cutoff date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(java.io.File)">ageFileFilter(File)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the file was last modified after
+ the specified reference file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(java.io.File, boolean)">ageFileFilter(File, boolean)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that filters files based on a cutoff reference file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#and(org.apache.commons.io.filefilter.IOFileFilter...)">and(IOFileFilter...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that ANDs the specified filters.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">AndFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">A <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileFilter.html?is-external=true" title="class or interface in java.io"><code>FileFilter</code></a> providing conditional AND logic across a list of
+ file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#AndFileFilter()">AndFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new instance of <code>AndFileFilter</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#AndFileFilter(java.util.List)">AndFileFilter(List&lt;IOFileFilter&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new instance of <code>AndFileFilter</code>
+ with the specified list of filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#AndFileFilter(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">AndFileFilter(IOFileFilter, IOFileFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new file filter that ANDs the result of two other filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#andFileFilter(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">andFileFilter(IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>use <a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#and(org.apache.commons.io.filefilter.IOFileFilter...)"><code>FileFilterUtils.and(IOFileFilter...)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#append(char)">append(char)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#append(java.lang.CharSequence, int, int)">append(CharSequence, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#append(java.lang.CharSequence)">append(CharSequence)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#append(char)">append(char)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>append(char)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#append(java.lang.CharSequence, int, int)">append(CharSequence, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>append(CharSequence, int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#append(java.lang.CharSequence)">append(CharSequence)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>append(CharSequence)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#append(char)">append(char)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Append a single character to this Writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#append(java.lang.CharSequence)">append(CharSequence)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Append a character sequence to this Writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#append(java.lang.CharSequence, int, int)">append(CharSequence, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Append a portion of a character sequence to the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#asBufferedInputStream(java.io.InputStream)">asBufferedInputStream(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given InputStream if it is already a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedInputStream.html?is-external=true" title="class or interface in java.io"><code>BufferedInputStream</code></a>, otherwise creates a BufferedInputStream from the given
+ InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#asBufferedOutputStream(java.io.OutputStream)">asBufferedOutputStream(OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given OutputStream if it is already a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedOutputStream.html?is-external=true" title="class or interface in java.io"><code>BufferedOutputStream</code></a>, otherwise creates a BufferedOutputStream from the given
+ OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#asBufferedReader(java.io.Reader)">asBufferedReader(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given reader if it is already a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedReader.html?is-external=true" title="class or interface in java.io"><code>BufferedReader</code></a>, otherwise creates a BufferedReader from the given
+ reader.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#asBufferedWriter(java.io.Writer)">asBufferedWriter(Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given Writer if it is already a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedWriter.html?is-external=true" title="class or interface in java.io"><code>BufferedWriter</code></a>, otherwise creates a BufferedWriter from the given
+ Writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#asFileFilter(java.io.FileFilter)">asFileFilter(FileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns an <code>IOFileFilter</code> that wraps the
+ <code>FileFilter</code> instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#asFileFilter(java.io.FilenameFilter)">asFileFilter(FilenameFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns an <code>IOFileFilter</code> that wraps the
+ <code>FilenameFilter</code> instance.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">AutoCloseInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Proxy stream that closes and discards the underlying stream as soon as the
+ end of input has been reached or when the stream is explicitly closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/AutoCloseInputStream.html#AutoCloseInputStream(java.io.InputStream)">AutoCloseInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input">AutoCloseInputStream</a></dt>
+<dd>
+<div class="block">Creates an automatically closing proxy for the given input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Return an estimate of the number of bytes remaining in the byte stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Return the number of bytes that can be read.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>available()</code> method.</div>
+</dd>
+</dl>
+<a name="_B_">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#beforeRead(int)">beforeRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invoked by the read methods before the call is proxied.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#beforeRead(int)">beforeRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invoked by the read methods before the call is proxied.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#beforeWrite(int)">beforeWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">Updates the count with the number of bytes that are being written.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#beforeWrite(int)">beforeWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invoked by the write methods before the call is proxied.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#beforeWrite(int)">beforeWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invoked by the write methods before the call is proxied.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/DemuxInputStream.html#bindStream(java.io.InputStream)">bindStream(InputStream)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input">DemuxInputStream</a></dt>
+<dd>
+<div class="block">Bind the specified stream to the current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#bindStream(java.io.OutputStream)">bindStream(OutputStream)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>
+<div class="block">Bind the specified stream to the current thread.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">BOMInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">This class is used to wrap a stream that includes an encoded <a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io"><code>ByteOrderMark</code></a> as its first bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#BOMInputStream(java.io.InputStream)">BOMInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new BOM InputStream that excludes a <a href="./org/apache/commons/io/ByteOrderMark.html#UTF_8"><code>ByteOrderMark.UTF_8</code></a> BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#BOMInputStream(java.io.InputStream, boolean)">BOMInputStream(InputStream, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new BOM InputStream that detects a a <a href="./org/apache/commons/io/ByteOrderMark.html#UTF_8"><code>ByteOrderMark.UTF_8</code></a> and optionally includes it.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#BOMInputStream(java.io.InputStream, org.apache.commons.io.ByteOrderMark...)">BOMInputStream(InputStream, ByteOrderMark...)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new BOM InputStream that excludes the specified BOMs.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#BOMInputStream(java.io.InputStream, boolean, org.apache.commons.io.ByteOrderMark...)">BOMInputStream(InputStream, boolean, ByteOrderMark...)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new BOM InputStream that detects the specified BOMs and optionally includes them.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">BoundedInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">This is a stream that will only supply bytes up to a certain length - if its
+ position goes above that, it will stop.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#BoundedInputStream(java.io.InputStream, long)">BoundedInputStream(InputStream, long)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Creates a new <code>BoundedInputStream</code> that wraps the given input
+ stream and limits it to a certain size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#BoundedInputStream(java.io.InputStream)">BoundedInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Creates a new <code>BoundedInputStream</code> that wraps the given input
+ stream and is unlimited.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#branch">branch</a></span> - Variable in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">the second OutputStream to write to</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">BrokenInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Broken input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#BrokenInputStream(java.io.IOException)">BrokenInputStream(IOException)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Creates a new stream that always throws the given exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#BrokenInputStream()">BrokenInputStream()</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Creates a new stream that always throws an <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a></div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">BrokenOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Broken output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#BrokenOutputStream(java.io.IOException)">BrokenOutputStream(IOException)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Creates a new stream that always throws the given exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#BrokenOutputStream()">BrokenOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Creates a new stream that always throws an <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a></div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">ByteArrayOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">This class implements an output stream in which the data is
+ written into a byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#ByteArrayOutputStream()">ByteArrayOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Creates a new byte array output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#ByteArrayOutputStream(int)">ByteArrayOutputStream(int)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Creates a new byte array output stream, with a buffer capacity of
+ the specified size, in bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#byteCountToDisplaySize(java.math.BigInteger)">byteCountToDisplaySize(BigInteger)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns a human-readable version of the file size, where the input represents a specific number of bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#byteCountToDisplaySize(long)">byteCountToDisplaySize(long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns a human-readable version of the file size, where the input represents a specific number of bytes.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io"><span class="strong">ByteOrderMark</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Byte Order Mark (BOM) representation - see <a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input"><code>BOMInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#ByteOrderMark(java.lang.String, int...)">ByteOrderMark(String, int...)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Construct a new BOM.</div>
+</dd>
+</dl>
+<a name="_C_">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#CAN_READ">CAN_READ</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>readable</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html#CAN_WRITE">CAN_WRITE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter">CanWriteFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>writable</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#CANNOT_READ">CANNOT_READ</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of not <i>readable</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html#CANNOT_WRITE">CANNOT_WRITE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter">CanWriteFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of not <i>writable</i> filter</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">CanReadFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that can be read.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#CanReadFileFilter()">CanReadFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">CanWriteFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that can be written to.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html#CanWriteFileFilter()">CanWriteFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter">CanWriteFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">CharSequenceInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> implementation that can read from String, StringBuffer,
+ StringBuilder or CharBuffer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.nio.charset.Charset, int)">CharSequenceInputStream(CharSequence, Charset, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.lang.String, int)">CharSequenceInputStream(CharSequence, String, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Constructor, calls <a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.nio.charset.Charset, int)"><code>CharSequenceInputStream.CharSequenceInputStream(CharSequence, Charset, int)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.nio.charset.Charset)">CharSequenceInputStream(CharSequence, Charset)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Constructor, calls <a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.nio.charset.Charset, int)"><code>CharSequenceInputStream.CharSequenceInputStream(CharSequence, Charset, int)</code></a>
+ with a buffer size of 2048.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.lang.String)">CharSequenceInputStream(CharSequence, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Constructor, calls <a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.lang.String, int)"><code>CharSequenceInputStream.CharSequenceInputStream(CharSequence, String, int)</code></a>
+ with a buffer size of 2048.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input"><span class="strong">CharSequenceReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> implementation that can read from String, StringBuffer,
+ StringBuilder or CharBuffer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#CharSequenceReader(java.lang.CharSequence)">CharSequenceReader(CharSequence)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Construct a new instance with the specified character sequence.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io"><span class="strong">Charsets</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Charsets required of every implementation of the Java platform.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#Charsets()">Charsets()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#checkAndNotify()">checkAndNotify()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Check whether the file and its chlidren have been created, modified or deleted.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkCompareTo(java.lang.String, java.lang.String)">checkCompareTo(String, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Compares two strings using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkEndsWith(java.lang.String, java.lang.String)">checkEndsWith(String, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Checks if one string ends with another using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkEquals(java.lang.String, java.lang.String)">checkEquals(String, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Compares two strings using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#checkIfCancelled(java.io.File, int, java.util.Collection)">checkIfCancelled(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Checks whether the walk has been cancelled by calling <a href="./org/apache/commons/io/DirectoryWalker.html#handleIsCancelled(java.io.File, int, java.util.Collection)"><code>DirectoryWalker.handleIsCancelled(java.io.File, int, java.util.Collection&lt;T&gt;)</code></a>,
+ throwing a <code>CancelException</code> if it has.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkIndexOf(java.lang.String, int, java.lang.String)">checkIndexOf(String, int, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Checks if one string contains another starting at a specific index using the
+ case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkRegionMatches(java.lang.String, int, java.lang.String)">checkRegionMatches(String, int, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Checks if one string contains another at a specific index using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkStartsWith(java.lang.String, java.lang.String)">checkStartsWith(String, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Checks if one string starts with another using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#checksum(java.io.File, java.util.zip.Checksum)">checksum(File, Checksum)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Computes the checksum of a file using the specified checksum object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#checksumCRC32(java.io.File)">checksumCRC32(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Computes the checksum of a file using the CRC32 checksum routine.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#checkThreshold(int)">checkThreshold(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Checks to see if writing the specified number of bytes would cause the
+ configured threshold to be exceeded.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">ClassLoaderObjectInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A special ObjectInputStream that loads a class based on a specified
+ <code>ClassLoader</code> rather than the system default.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html#ClassLoaderObjectInputStream(java.lang.ClassLoader, java.io.InputStream)">ClassLoaderObjectInputStream(ClassLoader, InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html" title="class in org.apache.commons.io.input">ClassLoaderObjectInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new ClassLoaderObjectInputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#cleanDirectory(java.io.File)">cleanDirectory(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Cleans a directory without deleting it.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/AutoCloseInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input">AutoCloseInputStream</a></dt>
+<dd>
+<div class="block">Closes the underlying input stream and replaces the reference to it
+ with a <a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input"><code>ClosedInputStream</code></a> instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method
+ if <a href="./org/apache/commons/io/input/BoundedInputStream.html#isPropagateClose()"><code>BoundedInputStream.isPropagateClose()</code></a> is <code>true</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Close resets the file back to the start and removes any marked position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CloseShieldInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CloseShieldInputStream.html" title="class in org.apache.commons.io.input">CloseShieldInputStream</a></dt>
+<dd>
+<div class="block">Replaces the underlying input stream with a <a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input"><code>ClosedInputStream</code></a>
+ sentinel.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/DemuxInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input">DemuxInputStream</a></dt>
+<dd>
+<div class="block">Closes stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Close this input stream - resets the internal state to
+ the initial values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Close this Reader - resets the internal state to
+ the initial values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Close the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Closes underlying resources.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Closes the proxied input stream and, if so configured, the associated
+ output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Closes the XmlStreamReader stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#close(java.net.URLConnection)">close(URLConnection)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a URLConnection.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#close()">close()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Closes the underlying <code>Reader</code> quietly.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Closing a <tt>ByteArrayOutputStream</tt> has no effect.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CloseShieldOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CloseShieldOutputStream.html" title="class in org.apache.commons.io.output">CloseShieldOutputStream</a></dt>
+<dd>
+<div class="block">Replaces the underlying output stream with a <a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output"><code>ClosedOutputStream</code></a>
+ sentinel.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Closes underlying output stream, and mark this as closed</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>
+<div class="block">Closes stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Close the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Closes the file writer and deletes the lockfile (if possible).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Closing this writer has no effect.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Closes both output streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Closes this output stream and releases any system resources associated
+ with this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Close the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Close the underlying writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClosedInputStream.html#CLOSED_INPUT_STREAM">CLOSED_INPUT_STREAM</a></span> - Static variable in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input">ClosedInputStream</a></dt>
+<dd>
+<div class="block">A singleton.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ClosedOutputStream.html#CLOSED_OUTPUT_STREAM">CLOSED_OUTPUT_STREAM</a></span> - Static variable in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output">ClosedOutputStream</a></dt>
+<dd>
+<div class="block">A singleton.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">ClosedInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Closed input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClosedInputStream.html#ClosedInputStream()">ClosedInputStream()</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input">ClosedInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">ClosedOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Closed output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ClosedOutputStream.html#ClosedOutputStream()">ClosedOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output">ClosedOutputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.Reader)">closeQuietly(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes an <code>Reader</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.Writer)">closeQuietly(Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes an <code>Writer</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.InputStream)">closeQuietly(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes an <code>InputStream</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.OutputStream)">closeQuietly(OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes an <code>OutputStream</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.Closeable)">closeQuietly(Closeable)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a <code>Closeable</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.net.Socket)">closeQuietly(Socket)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a <code>Socket</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.nio.channels.Selector)">closeQuietly(Selector)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a <code>Selector</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.net.ServerSocket)">closeQuietly(ServerSocket)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a <code>ServerSocket</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#closeQuietly(org.apache.commons.io.LineIterator)">closeQuietly(LineIterator)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Closes the iterator, handling null and ignoring exceptions.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/CloseShieldInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">CloseShieldInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Proxy stream that prevents the underlying input stream from being closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CloseShieldInputStream.html#CloseShieldInputStream(java.io.InputStream)">CloseShieldInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CloseShieldInputStream.html" title="class in org.apache.commons.io.input">CloseShieldInputStream</a></dt>
+<dd>
+<div class="block">Creates a proxy that shields the given input stream from being
+ closed.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/CloseShieldOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">CloseShieldOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Proxy stream that prevents the underlying output stream from being closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CloseShieldOutputStream.html#CloseShieldOutputStream(java.io.OutputStream)">CloseShieldOutputStream(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CloseShieldOutputStream.html" title="class in org.apache.commons.io.output">CloseShieldOutputStream</a></dt>
+<dd>
+<div class="block">Creates a proxy that shields the given output stream from being
+ closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator">CompositeFileComparator</a></dt>
+<dd>
+<div class="block">Compare the two files using delegate comparators.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator">DefaultFileComparator</a></dt>
+<dd>
+<div class="block">Compare the two files using the <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#compareTo(java.io.File)" title="class or interface in java.io"><code>File.compareTo(File)</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator">DirectoryFileComparator</a></dt>
+<dd>
+<div class="block">Compare the two files using the <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#isDirectory()" title="class or interface in java.io"><code>File.isDirectory()</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Compare the extensions of two files the specified case sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator">LastModifiedFileComparator</a></dt>
+<dd>
+<div class="block">Compare the last the last modified date/time of two files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Compare the names of two files with the specified case sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Compare the paths of two files the specified case sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Compare the length of two files.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">CompositeFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare two files using a set of delegate file <a href="http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util"><code>Comparator</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html#CompositeFileComparator(java.util.Comparator...)">CompositeFileComparator(Comparator&lt;File&gt;...)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator">CompositeFileComparator</a></dt>
+<dd>
+<div class="block">Create a composite comparator for the set of delegate comparators.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html#CompositeFileComparator(java.lang.Iterable)">CompositeFileComparator(Iterable&lt;Comparator&lt;File&gt;&gt;)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator">CompositeFileComparator</a></dt>
+<dd>
+<div class="block">Create a composite comparator for the set of delegate comparators.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#concat(java.lang.String, java.lang.String)">concat(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Concatenates a filename to a base path using normal command line style rules.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter"><span class="strong">ConditionalFileFilter</span></a> - Interface in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Defines operations for conditional file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#contentEquals(java.io.File, java.io.File)">contentEquals(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two files to determine if they are equal or not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#contentEquals(java.io.InputStream, java.io.InputStream)">contentEquals(InputStream, InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two Streams to determine if they are equal or
+ not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#contentEquals(java.io.Reader, java.io.Reader)">contentEquals(Reader, Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two Readers to determine if they are equal or
+ not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#contentEqualsIgnoreEOL(java.io.File, java.io.File, java.lang.String)">contentEqualsIgnoreEOL(File, File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two files to determine if they are equal or not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#contentEqualsIgnoreEOL(java.io.Reader, java.io.Reader)">contentEqualsIgnoreEOL(Reader, Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two Readers to determine if they are equal or
+ not, ignoring EOL characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#convertFileCollectionToFileArray(java.util.Collection)">convertFileCollectionToFileArray(Collection&lt;File&gt;)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Converts a Collection containing java.io.File instanced into array
+ representation.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(byte[], java.io.OutputStream)">copy(byte[], OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy bytes from a <code>byte[]</code> to an <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(byte[], java.io.Writer)">copy(byte[], Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/CopyUtils.html#copy(byte[], java.io.Writer, java.lang.String)"><code>CopyUtils.copy(byte[], Writer, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(byte[], java.io.Writer, java.lang.String)">copy(byte[], Writer, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy and convert bytes from a <code>byte[]</code> to chars on a
+ <code>Writer</code>, using the specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.InputStream, java.io.OutputStream)">copy(InputStream, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy bytes from an <code>InputStream</code> to an
+ <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.Reader, java.io.Writer)">copy(Reader, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy chars from a <code>Reader</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.InputStream, java.io.Writer)">copy(InputStream, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.InputStream, java.io.Writer, java.lang.String)"><code>CopyUtils.copy(InputStream, Writer, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.InputStream, java.io.Writer, java.lang.String)">copy(InputStream, Writer, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy and convert bytes from an <code>InputStream</code> to chars on a
+ <code>Writer</code>, using the specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.Reader, java.io.OutputStream)">copy(Reader, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.Reader, java.io.OutputStream, java.lang.String)"><code>CopyUtils.copy(Reader, OutputStream, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.Reader, java.io.OutputStream, java.lang.String)">copy(Reader, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Serialize chars from a <code>Reader</code> to bytes on an
+ <code>OutputStream</code>, and flush the <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.lang.String, java.io.OutputStream)">copy(String, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/CopyUtils.html#copy(java.lang.String, java.io.OutputStream, java.lang.String)"><code>CopyUtils.copy(String, OutputStream, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.lang.String, java.io.OutputStream, java.lang.String)">copy(String, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Serialize chars from a <code>String</code> to bytes on an
+ <code>OutputStream</code>, and
+ flush the <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.lang.String, java.io.Writer)">copy(String, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy chars from a <code>String</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.OutputStream)">copy(InputStream, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <code>InputStream</code> to an
+ <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.OutputStream, int)">copy(InputStream, OutputStream, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <code>InputStream</code> to an <code>OutputStream</code> using an internal buffer of the
+ given size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.Writer)">copy(InputStream, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.Writer, java.nio.charset.Charset)"><code>IOUtils.copy(InputStream, Writer, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.Writer, java.nio.charset.Charset)">copy(InputStream, Writer, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <code>InputStream</code> to chars on a
+ <code>Writer</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.Writer, java.lang.String)">copy(InputStream, Writer, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <code>InputStream</code> to chars on a
+ <code>Writer</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.Writer)">copy(Reader, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a <code>Reader</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.OutputStream)">copy(Reader, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.copy(Reader, OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.OutputStream, java.nio.charset.Charset)">copy(Reader, OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a <code>Reader</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding, and
+ calling flush.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.OutputStream, java.lang.String)">copy(Reader, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a <code>Reader</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding, and
+ calling flush.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectory(java.io.File, java.io.File)">copyDirectory(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a whole directory to a new location preserving the file dates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectory(java.io.File, java.io.File, boolean)">copyDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a whole directory to a new location.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectory(java.io.File, java.io.File, java.io.FileFilter)">copyDirectory(File, File, FileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a filtered directory to a new location preserving the file dates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectory(java.io.File, java.io.File, java.io.FileFilter, boolean)">copyDirectory(File, File, FileFilter, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a filtered directory to a new location.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectoryToDirectory(java.io.File, java.io.File)">copyDirectoryToDirectory(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a directory to within another directory preserving the file dates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFile(java.io.File, java.io.File)">copyFile(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a file to a new location preserving the file date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFile(java.io.File, java.io.File, boolean)">copyFile(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a file to a new location.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFile(java.io.File, java.io.OutputStream)">copyFile(File, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copy bytes from a <code>File</code> to an <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFileToDirectory(java.io.File, java.io.File)">copyFileToDirectory(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a file to a directory preserving the file date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFileToDirectory(java.io.File, java.io.File, boolean)">copyFileToDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a file to a directory optionally preserving the file date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyInputStreamToFile(java.io.InputStream, java.io.File)">copyInputStreamToFile(InputStream, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> <code>source</code> to a file
+ <code>destination</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.InputStream, java.io.OutputStream)">copyLarge(InputStream, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.InputStream, java.io.OutputStream, byte[])">copyLarge(InputStream, OutputStream, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.InputStream, java.io.OutputStream, long, long)">copyLarge(InputStream, OutputStream, long, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies some or all bytes from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>, optionally skipping input bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.InputStream, java.io.OutputStream, long, long, byte[])">copyLarge(InputStream, OutputStream, long, long, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies some or all bytes from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>, optionally skipping input bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.Reader, java.io.Writer)">copyLarge(Reader, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a large (over 2GB) <code>Reader</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.Reader, java.io.Writer, char[])">copyLarge(Reader, Writer, char[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a large (over 2GB) <code>Reader</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.Reader, java.io.Writer, long, long)">copyLarge(Reader, Writer, long, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies some or all chars from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>, optionally skipping input chars.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.Reader, java.io.Writer, long, long, char[])">copyLarge(Reader, Writer, long, long, char[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies some or all chars from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>, optionally skipping input chars.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyToFile(java.io.InputStream, java.io.File)">copyToFile(InputStream, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> <code>source</code> to a file
+ <code>destination</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyURLToFile(java.net.URL, java.io.File)">copyURLToFile(URL, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from the URL <code>source</code> to a file
+ <code>destination</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyURLToFile(java.net.URL, java.io.File, int, int)">copyURLToFile(URL, File, int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from the URL <code>source</code> to a file
+ <code>destination</code>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io"><span class="strong">CopyUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use IOUtils. Will be removed in 2.0.
+  Methods renamed to IOUtils.write() or IOUtils.copy().
+  Null handling behaviour changed in IOUtils (null data does not
+  throw NullPointerException).</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#CopyUtils()">CopyUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">CountingInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A decorating input stream that counts the number of bytes that have passed
+ through the stream so far.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#CountingInputStream(java.io.InputStream)">CountingInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new CountingInputStream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">CountingOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">A decorating output stream that counts the number of bytes that have passed
+ through the stream so far.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#CountingOutputStream(java.io.OutputStream)">CountingOutputStream(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new CountingOutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, int)">create(File, TailerListener, long, boolean, int)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, boolean, int)">create(File, TailerListener, long, boolean, boolean, int)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean)">create(File, TailerListener, long, boolean)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file with default buffer size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, boolean)">create(File, TailerListener, long, boolean, boolean)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file with default buffer size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long)">create(File, TailerListener, long)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file, starting at the beginning of the file</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener)">create(File, TailerListener)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file, starting at the beginning of the file
+ with the default delay of 1.0s</div>
+</dd>
+</dl>
+<a name="_D_">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html#DEFAULT_COMPARATOR">DEFAULT_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator">DefaultFileComparator</a></dt>
+<dd>
+<div class="block">Singleton default comparator instance</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html#DEFAULT_REVERSE">DEFAULT_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator">DefaultFileComparator</a></dt>
+<dd>
+<div class="block">Singleton reverse default comparator instance</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">DefaultFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare two files using the <b>default</b> <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#compareTo(java.io.File)" title="class or interface in java.io"><code>File.compareTo(File)</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html#DefaultFileComparator()">DefaultFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator">DefaultFileComparator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">DeferredFileOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">An output stream which will retain data in memory until a specified
+ threshold is reached, and only then commit it to disk.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#DeferredFileOutputStream(int, java.io.File)">DeferredFileOutputStream(int, File)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Constructs an instance of this class which will trigger an event at the
+ specified threshold, and save data to a file beyond that point.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#DeferredFileOutputStream(int, java.lang.String, java.lang.String, java.io.File)">DeferredFileOutputStream(int, String, String, File)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Constructs an instance of this class which will trigger an event at the
+ specified threshold, and save data to a temporary file beyond that point.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">DelegateFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This class turns a Java FileFilter or FilenameFilter into an IO FileFilter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#DelegateFileFilter(java.io.FilenameFilter)">DelegateFileFilter(FilenameFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a delegate file filter around an existing FilenameFilter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#DelegateFileFilter(java.io.FileFilter)">DelegateFileFilter(FileFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a delegate file filter around an existing FileFilter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#delete(java.io.File)">delete(File)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Deletes the file object, which may be a file or a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#deleteDirectory(java.io.File)">deleteDirectory(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Deletes a directory recursively.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#deleteQuietly(java.io.File)">deleteQuietly(File)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Deletes the file object, which may be a file or a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#deleteQuietly(java.io.File)">deleteQuietly(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Deletes a file, never throwing an exception.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">DemuxInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Data written to this stream is forwarded to a stream that has been associated
+ with this thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/DemuxInputStream.html#DemuxInputStream()">DemuxInputStream()</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input">DemuxInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">DemuxOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Data written to this stream is forwarded to a stream that has been associated
+ with this thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#DemuxOutputStream()">DemuxOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#destroy()">destroy()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Final processing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#DIR_SEPARATOR">DIR_SEPARATOR</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The system directory separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#DIR_SEPARATOR_UNIX">DIR_SEPARATOR_UNIX</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The Unix directory separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#DIR_SEPARATOR_WINDOWS">DIR_SEPARATOR_WINDOWS</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The Windows directory separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html#DIRECTORY">DIRECTORY</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter">DirectoryFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of directory filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html#DIRECTORY_COMPARATOR">DIRECTORY_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator">DirectoryFileComparator</a></dt>
+<dd>
+<div class="block">Singleton default comparator instance</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html#DIRECTORY_REVERSE">DIRECTORY_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator">DirectoryFileComparator</a></dt>
+<dd>
+<div class="block">Singleton reverse default comparator instance</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#directoryContains(java.lang.String, java.lang.String)">directoryContains(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Determines whether the <code>parent</code> directory contains the <code>child</code> element (a file or directory).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#directoryContains(java.io.File, java.io.File)">directoryContains(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Determines whether the <code>parent</code> directory contains the <code>child</code> element (a file or directory).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">DirectoryFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare two files using the <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#isDirectory()" title="class or interface in java.io"><code>File.isDirectory()</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html#DirectoryFileComparator()">DirectoryFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator">DirectoryFileComparator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">DirectoryFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that are directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html#DirectoryFileFilter()">DirectoryFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter">DirectoryFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#directoryFileFilter()">directoryFileFilter()</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that checks if the file is a directory.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io"><span class="strong">DirectoryWalker</span></a>&lt;<a href="./org/apache/commons/io/DirectoryWalker.html" title="type parameter in DirectoryWalker">T</a>&gt; - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Abstract class that walks through a directory hierarchy and provides
+ subclasses with convenient hooks to add specific behaviour.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#DirectoryWalker()">DirectoryWalker()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Construct an instance with no filtering and unlimited <i>depth</i>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#DirectoryWalker(java.io.FileFilter, int)">DirectoryWalker(FileFilter, int)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Construct an instance with a filter and limit the <i>depth</i> navigated to.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#DirectoryWalker(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter, int)">DirectoryWalker(IOFileFilter, IOFileFilter, int)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Construct an instance with a directory and a file filter and an optional
+ limit on the <i>depth</i> navigated to.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io"><span class="strong">DirectoryWalker.CancelException</span></a> - Exception in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">CancelException is thrown in DirectoryWalker to cancel the current
+ processing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html#DirectoryWalker.CancelException(java.io.File, int)">DirectoryWalker.CancelException(File, int)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io">DirectoryWalker.CancelException</a></dt>
+<dd>
+<div class="block">Constructs a <code>CancelException</code> with
+ the file and depth when cancellation occurred.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html#DirectoryWalker.CancelException(java.lang.String, java.io.File, int)">DirectoryWalker.CancelException(String, File, int)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io">DirectoryWalker.CancelException</a></dt>
+<dd>
+<div class="block">Constructs a <code>CancelException</code> with
+ an appropriate message and the file and depth when
+ cancellation occurred.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#doDelete(java.io.File)">doDelete(File)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Actually deletes the file object, which may be a file or a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/HexDump.html#dump(byte[], long, java.io.OutputStream, int)">dump(byte[], long, OutputStream, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/HexDump.html" title="class in org.apache.commons.io">HexDump</a></dt>
+<dd>
+<div class="block">Dump an array of bytes to an OutputStream.</div>
+</dd>
+</dl>
+<a name="_E_">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html#EMPTY">EMPTY</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter">EmptyFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>empty</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#EMPTY_FILE_ARRAY">EMPTY_FILE_ARRAY</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">An empty array of type <code>File</code>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">EmptyFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts files or directories that are empty.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html#EmptyFileFilter()">EmptyFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter">EmptyFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#ENCODING_PATTERN">ENCODING_PATTERN</a></span> - Static variable in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io"><span class="strong">EndianUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Utility code for dealing with different endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#EndianUtils()">EndianUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/HexDump.html#EOL">EOL</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/HexDump.html" title="class in org.apache.commons.io">HexDump</a></dt>
+<dd>
+<div class="block">The line-separator (initializes to "line.separator" system property.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Indicates if this BOM's bytes equals another.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equals(java.lang.String, java.lang.String)">equals(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal exactly.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equals(java.lang.String, java.lang.String, boolean, org.apache.commons.io.IOCase)">equals(String, String, boolean, IOCase)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal, optionally normalizing and providing
+ control over the case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equalsNormalized(java.lang.String, java.lang.String)">equalsNormalized(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal after both have been normalized.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equalsNormalizedOnSystem(java.lang.String, java.lang.String)">equalsNormalizedOnSystem(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal after both have been normalized
+ and using the case rules of the system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equalsOnSystem(java.lang.String, java.lang.String)">equalsOnSystem(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal using the case rules of the system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#exitWhenFinished()">exitWhenFinished()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#exitWhenFinished()"><code>FileCleaningTracker.exitWhenFinished()</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#exitWhenFinished()">exitWhenFinished()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Call this method to cause the file cleaner thread to terminate when
+ there are no more objects being tracked for deletion.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_COMPARATOR">EXTENSION_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Case-sensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_INSENSITIVE_COMPARATOR">EXTENSION_INSENSITIVE_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Case-insensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_INSENSITIVE_REVERSE">EXTENSION_INSENSITIVE_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-insensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_REVERSE">EXTENSION_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-sensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#EXTENSION_SEPARATOR">EXTENSION_SEPARATOR</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">The extension separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#EXTENSION_SEPARATOR_STR">EXTENSION_SEPARATOR_STR</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">The extension separator String.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_SYSTEM_COMPARATOR">EXTENSION_SYSTEM_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">System sensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_SYSTEM_REVERSE">EXTENSION_SYSTEM_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Reverse system sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">ExtensionFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the file name <b>extensions</b> for order
+ (see <a href="./org/apache/commons/io/FilenameUtils.html#getExtension(java.lang.String)"><code>FilenameUtils.getExtension(String)</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#ExtensionFileComparator()">ExtensionFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Construct a case sensitive file extension comparator instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#ExtensionFileComparator(org.apache.commons.io.IOCase)">ExtensionFileComparator(IOCase)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file extension comparator instance with the specified case-sensitivity.</div>
+</dd>
+</dl>
+<a name="_F_">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#FALSE">FALSE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of false filter.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">FalseFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">A file filter that always returns false.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#FalseFileFilter()">FalseFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#falseFileFilter()">falseFileFilter()</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that always returns false.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFileFilter.html#FILE">FILE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFileFilter.html" title="class in org.apache.commons.io.filefilter">FileFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of file filter</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor"><span class="strong">FileAlterationListener</span></a> - Interface in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block">A listener that receives events of file system modifications.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor"><span class="strong">FileAlterationListenerAdaptor</span></a> - Class in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block">Convenience <a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor"><code>FileAlterationListener</code></a> implementation that does nothing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#FileAlterationListenerAdaptor()">FileAlterationListenerAdaptor()</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor"><span class="strong">FileAlterationMonitor</span></a> - Class in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block">A runnable that spawns a monitoring thread triggering any
+ registered <a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor"><code>FileAlterationObserver</code></a> at a specified interval.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#FileAlterationMonitor()">FileAlterationMonitor()</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Construct a monitor with a default interval of 10 seconds.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#FileAlterationMonitor(long)">FileAlterationMonitor(long)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Construct a monitor with the specified interval.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#FileAlterationMonitor(long, org.apache.commons.io.monitor.FileAlterationObserver...)">FileAlterationMonitor(long, FileAlterationObserver...)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Construct a monitor with the specified interval and set of observers.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor"><span class="strong">FileAlterationObserver</span></a> - Class in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block">FileAlterationObserver represents the state of files below a root directory,
+ checking the filesystem and notifying listeners of create, change or
+ delete events.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.lang.String)">FileAlterationObserver(String)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.lang.String, java.io.FileFilter)">FileAlterationObserver(String, FileFilter)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory and file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.lang.String, java.io.FileFilter, org.apache.commons.io.IOCase)">FileAlterationObserver(String, FileFilter, IOCase)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory, file filter and
+ file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.io.File)">FileAlterationObserver(File)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.io.File, java.io.FileFilter)">FileAlterationObserver(File, FileFilter)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory and file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.io.File, java.io.FileFilter, org.apache.commons.io.IOCase)">FileAlterationObserver(File, FileFilter, IOCase)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory, file filter and
+ file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(org.apache.commons.io.monitor.FileEntry, java.io.FileFilter, org.apache.commons.io.IOCase)">FileAlterationObserver(FileEntry, FileFilter, IOCase)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory, file filter and
+ file comparator.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io"><span class="strong">FileCleaner</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io"><code>FileCleaningTracker</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#FileCleaner()">FileCleaner()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io"><span class="strong">FileCleaningTracker</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Keeps track of files awaiting deletion, and deletes them when an associated
+ marker object is reclaimed by the garbage collector.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#FileCleaningTracker()">FileCleaningTracker()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io"><span class="strong">FileDeleteStrategy</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Strategy for deleting files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#FileDeleteStrategy(java.lang.String)">FileDeleteStrategy(String)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Restricted constructor.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor"><span class="strong">FileEntry</span></a> - Class in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block"><a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor"><code>FileEntry</code></a> represents the state of a file or directory, capturing
+ the following <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a> attributes at a point in time.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#FileEntry(java.io.File)">FileEntry(File)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Construct a new monitor for a specified <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#FileEntry(org.apache.commons.io.monitor.FileEntry, java.io.File)">FileEntry(FileEntry, File)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Construct a new monitor for a specified <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io"><span class="strong">FileExistsException</span></a> - Exception in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Indicates that a file already exists.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileExistsException.html#FileExistsException()">FileExistsException()</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io">FileExistsException</a></dt>
+<dd>
+<div class="block">Default Constructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileExistsException.html#FileExistsException(java.lang.String)">FileExistsException(String)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io">FileExistsException</a></dt>
+<dd>
+<div class="block">Construct an instance with the specified message.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileExistsException.html#FileExistsException(java.io.File)">FileExistsException(File)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io">FileExistsException</a></dt>
+<dd>
+<div class="block">Construct an instance with the specified file.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/FileFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">FileFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that are files (not directories).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFileFilter.html#FileFileFilter()">FileFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFileFilter.html" title="class in org.apache.commons.io.filefilter">FileFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#fileFileFilter()">fileFileFilter()</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that checks if the file is a file (and not a directory).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter"><span class="strong">FileFilterUtils</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Useful utilities for working with file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#FileFilterUtils()">FileFilterUtils()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">FileFilterUtils is not normally instantiated.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io"><span class="strong">FilenameUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">General filename and filepath manipulation utilities.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#FilenameUtils()">FilenameUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#fileNotFound()">fileNotFound()</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">This method is called if the tailed file is not found.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#fileNotFound()">fileNotFound()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">This method is called if the tailed file is not found.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#fileRotated()">fileRotated()</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">Called if a file rotation is detected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#fileRotated()">fileRotated()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">Called if a file rotation is detected.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io"><span class="strong">FileSystemUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">General File System utilities.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#FileSystemUtils()">FileSystemUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io"><span class="strong">FileUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">General file manipulation utilities.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#FileUtils()">FileUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output"><span class="strong">FileWriterWithEncoding</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Writer of files that allows the encoding to be set.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.lang.String)">FileWriterWithEncoding(String, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.lang.String, boolean)">FileWriterWithEncoding(String, String, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.nio.charset.Charset)">FileWriterWithEncoding(String, Charset)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.nio.charset.Charset, boolean)">FileWriterWithEncoding(String, Charset, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.nio.charset.CharsetEncoder)">FileWriterWithEncoding(String, CharsetEncoder)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.nio.charset.CharsetEncoder, boolean)">FileWriterWithEncoding(String, CharsetEncoder, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.lang.String)">FileWriterWithEncoding(File, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.lang.String, boolean)">FileWriterWithEncoding(File, String, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.nio.charset.Charset)">FileWriterWithEncoding(File, Charset)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.nio.charset.Charset, boolean)">FileWriterWithEncoding(File, Charset, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.nio.charset.CharsetEncoder)">FileWriterWithEncoding(File, CharsetEncoder)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.nio.charset.CharsetEncoder, boolean)">FileWriterWithEncoding(File, CharsetEncoder, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filter(org.apache.commons.io.filefilter.IOFileFilter, java.io.File...)">filter(IOFileFilter, File...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filter(org.apache.commons.io.filefilter.IOFileFilter, java.lang.Iterable)">filter(IOFileFilter, Iterable&lt;File&gt;)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#filterDirectoryContents(java.io.File, int, java.io.File[])">filterDirectoryContents(File, int, File[])</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked with the contents of each directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filterList(org.apache.commons.io.filefilter.IOFileFilter, java.lang.Iterable)">filterList(IOFileFilter, Iterable&lt;File&gt;)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filterList(org.apache.commons.io.filefilter.IOFileFilter, java.io.File...)">filterList(IOFileFilter, File...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filterSet(org.apache.commons.io.filefilter.IOFileFilter, java.io.File...)">filterSet(IOFileFilter, File...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filterSet(org.apache.commons.io.filefilter.IOFileFilter, java.lang.Iterable)">filterSet(IOFileFilter, Iterable&lt;File&gt;)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/AutoCloseInputStream.html#finalize()">finalize()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input">AutoCloseInputStream</a></dt>
+<dd>
+<div class="block">Ensures that the stream is closed before it gets garbage-collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>
+<div class="block">Flushes stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Flush the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Flush the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>flush()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>flush()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Flushing this writer has no effect.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Flushes both streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Flushes this output stream and forces any buffered output bytes to be
+ written out.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Flush the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Flush the underlying writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#FORCE">FORCE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">The singleton instance for forced file deletion, which always deletes,
+ even if the file represents a non-empty directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#forceDelete(java.io.File)">forceDelete(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Deletes a file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#forceDeleteOnExit(java.io.File)">forceDeleteOnExit(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Schedules a file to be deleted when JVM exits.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#forceMkdir(java.io.File)">forceMkdir(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Makes a directory, including any necessary but nonexistent parent
+ directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#forceMkdirParent(java.io.File)">forceMkdirParent(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Makes any necessary but nonexistent parent directories for a given File.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#forName(java.lang.String)">forName(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Factory method to create an IOCase from a name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpace(java.lang.String)">freeSpace(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use freeSpaceKb(String)
+  Deprecated from 1.3, may be removed in 2.0</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpaceKb(java.lang.String)">freeSpaceKb(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Returns the free space on a drive or volume in kilobytes by invoking
+ the command line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpaceKb(java.lang.String, long)">freeSpaceKb(String, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Returns the free space on a drive or volume in kilobytes by invoking
+ the command line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpaceKb()">freeSpaceKb()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Returns the disk size of the volume which holds the working directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpaceKb(long)">freeSpaceKb(long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Returns the disk size of the volume which holds the working directory.</div>
+</dd>
+</dl>
+<a name="_G_">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#get(int)">get(int)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">The byte at the specified position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getBaseName(java.lang.String)">getBaseName(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the base name, minus the full path and extension, from a full filename.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#getBOM()">getBOM()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Return the BOM (Byte Order Mark).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#getBOMCharsetName()">getBOMCharsetName()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Return the BOM charset Name - <a href="./org/apache/commons/io/ByteOrderMark.html#getCharsetName()"><code>ByteOrderMark.getCharsetName()</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getBomEncoding()">getBomEncoding()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the BOM encoding found in the InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#getBuilder()">getBuilder()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Return the underlying builder.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#getByteCount()">getByteCount()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">The number of bytes that have passed through this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#getByteCount()">getByteCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">The number of bytes that have passed through this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#getByteCount()">getByteCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Returns the number of bytes that have been written to this output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#getBytes()">getBytes()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Return a copy of the BOM's bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#getCause()">getCause()</a></span> - Method in exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Returns the wrapped exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#getCharsetName()">getCharsetName()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Return the name of the <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html?is-external=true" title="class or interface in java.nio.charset"><code>Charset</code></a> the BOM represents.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getChildren()">getChildren()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the directory's files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getContentTypeEncoding()">getContentTypeEncoding()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the encoding in the content-type used to attempt determining the
+ encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getContentTypeMime()">getContentTypeMime()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the MIME type in the content-type used to attempt determining the
+ encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#getCount()">getCount()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">The number of bytes that have passed through this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#getCount()">getCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">The number of bytes that have passed through this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#getData()">getData()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Returns the data for this output stream as an array of bytes, assuming
+ that the data has been retained in memory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#getDefaultEncoding()">getDefaultEncoding()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Returns the default encoding to use if none is set in HTTP content-type,
+ XML prolog and the rules based on content-type are not adequate.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#getDefaultEncoding()">getDefaultEncoding()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Return the default encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#getDelay()">getDelay()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Return the delay in milliseconds.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#getDeleteFailures()">getDeleteFailures()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Return the file paths that failed to delete.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html#getDepth()">getDepth()</a></span> - Method in exception org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io">DirectoryWalker.CancelException</a></dt>
+<dd>
+<div class="block">Return the depth when the operation was cancelled.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#getDirectory()">getDirectory()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Return the directory being observed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#getEncoding()">getEncoding()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Returns the charset encoding of the XmlStreamReader.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#getEncoding()">getEncoding()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Return the detected encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getExtension(java.lang.String)">getExtension(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the extension of a filename.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html#getFile()">getFile()</a></span> - Method in exception org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io">DirectoryWalker.CancelException</a></dt>
+<dd>
+<div class="block">Return the file when the operation was cancelled.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getFile(java.io.File, java.lang.String...)">getFile(File, String...)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Construct a file from the set of name elements.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getFile(java.lang.String...)">getFile(String...)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Construct a file from the set of name elements.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#getFile()">getFile()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Return the file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getFile()">getFile()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the file being monitored.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#getFile()">getFile()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Returns either the output file specified in the constructor or
+ the temporary file created or null.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#getFileFilter()">getFileFilter()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Return the fileFilter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#getFileFilters()">getFileFilters()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Returns this conditional file filter's list of file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html#getFileFilters()">getFileFilters()</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter">ConditionalFileFilter</a></dt>
+<dd>
+<div class="block">Returns this conditional file filter's list of file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#getFileFilters()">getFileFilters()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Returns this conditional file filter's list of file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getFullPath(java.lang.String)">getFullPath(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the full path from a full filename, which is the prefix + path.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getFullPathNoEndSeparator(java.lang.String)">getFullPathNoEndSeparator(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the full path from a full filename, which is the prefix + path,
+ and also excluding the final directory separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#getInstance()">getInstance()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Returns the singleton instance, which is used by the deprecated, static methods.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#getInterval()">getInterval()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Return the interval.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getLastModified()">getLastModified()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the last modified time from the last time it
+ was checked.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getLength()">getLength()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the length.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getLevel()">getLevel()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the level</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#getListeners()">getListeners()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Returns the set of registered file system listeners.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getName(java.lang.String)">getName(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the name minus the path from a full filename.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#getName()">getName()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Gets the name of the constant.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getName()">getName()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the file name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#getObservers()">getObservers()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Returns the set of <a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor"><code>FileAlterationObserver</code></a> registered with
+ this monitor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getParent()">getParent()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the parent entry.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getPath(java.lang.String)">getPath(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the path from a full filename, which excludes the prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getPathNoEndSeparator(java.lang.String)">getPathNoEndSeparator(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the path from a full filename, which excludes the prefix, and
+ also excluding the final directory separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#getPosition()">getPosition()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Return the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#getPosition()">getPosition()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Return the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getPrefix(java.lang.String)">getPrefix(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the prefix from a full filename, such as <code>C:/</code>
+ or <code>~/</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getPrefixLength(java.lang.String)">getPrefixLength(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Returns the length of the filename prefix, such as <code>C:/</code> or <code>~/</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#getRun()">getRun()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Gets whether to keep on running.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#getSize()">getSize()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Return the size this <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> emulates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#getSize()">getSize()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Return the size this <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> emulates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#getStream()">getStream()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Returns the current output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#getStream()">getStream()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Returns the underlying output stream, to which the corresponding
+ <code>OutputStream</code> methods in this class will ultimately delegate.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#getTag()">getTag()</a></span> - Method in exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Returns the serializable tag object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getTempDirectory()">getTempDirectory()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns a <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a> representing the system temporary directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getTempDirectoryPath()">getTempDirectoryPath()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns the path to the system temporary directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#getThreshold()">getThreshold()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Returns the threshold, in bytes, at which an event will be triggered.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#getTrackCount()">getTrackCount()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#getTrackCount()"><code>FileCleaningTracker.getTrackCount()</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#getTrackCount()">getTrackCount()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Retrieve the number of files currently being tracked, and therefore
+ awaiting deletion.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getUserDirectory()">getUserDirectory()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns a <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a> representing the user's home directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getUserDirectoryPath()">getUserDirectoryPath()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns the path to the user's home directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getXmlEncoding()">getXmlEncoding()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the encoding found in the XML prolog of the InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getXmlGuessEncoding()">getXmlGuessEncoding()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the encoding guess based on the first bytes of the InputStream.</div>
+</dd>
+</dl>
+<a name="_H_">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#handle(java.lang.String)">handle(String)</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">Handles a line from a Tailer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#handle(java.lang.Exception)">handle(Exception)</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">Handles an Exception .</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#handle(java.lang.String)">handle(String)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">Handles a line from a Tailer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#handle(java.lang.Exception)">handle(Exception)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">Handles an Exception .</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleCancelled(java.io.File, java.util.Collection, org.apache.commons.io.DirectoryWalker.CancelException)">handleCancelled(File, Collection&lt;T&gt;, DirectoryWalker.CancelException)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked when the operation is cancelled.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleDirectory(java.io.File, int, java.util.Collection)">handleDirectory(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked to determine if a directory should be processed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleDirectoryEnd(java.io.File, int, java.util.Collection)">handleDirectoryEnd(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked at the end of processing each directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleDirectoryStart(java.io.File, int, java.util.Collection)">handleDirectoryStart(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked at the start of processing each directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleEnd(java.util.Collection)">handleEnd(Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked at the end of processing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleFile(java.io.File, int, java.util.Collection)">handleFile(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked for each (non-directory) file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Handle any IOExceptions thrown.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Handle any IOExceptions thrown.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TaggedInputStream.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input">TaggedInputStream</a></dt>
+<dd>
+<div class="block">Tags any IOExceptions thrown, wrapping and re-throwing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Handle any IOExceptions thrown.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Handle any IOExceptions thrown.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TaggedOutputStream.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output">TaggedOutputStream</a></dt>
+<dd>
+<div class="block">Tags any IOExceptions thrown, wrapping and re-throwing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleIsCancelled(java.io.File, int, java.util.Collection)">handleIsCancelled(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked to determine if the entire walk
+ operation should be immediately cancelled.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleRestricted(java.io.File, int, java.util.Collection)">handleRestricted(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked for each restricted directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleStart(java.io.File, java.util.Collection)">handleStart(File, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked at the start of processing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#hasBOM()">hasBOM()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Indicates whether the stream contains one of the specified BOMs.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#hasBOM(org.apache.commons.io.ByteOrderMark)">hasBOM(ByteOrderMark)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Indicates whether the stream contains the specified BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#hashCode()">hashCode()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Return the hashcode for this BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#hasNext()">hasNext()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Indicates whether the <code>Reader</code> has more lines.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/HexDump.html" title="class in org.apache.commons.io"><span class="strong">HexDump</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Dumps data in hexadecimal format.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/HexDump.html#HexDump()">HexDump()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/HexDump.html" title="class in org.apache.commons.io">HexDump</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html#HIDDEN">HIDDEN</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter">HiddenFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>hidden</i> filter</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">HiddenFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that are hidden.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html#HiddenFileFilter()">HiddenFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter">HiddenFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+</dl>
+<a name="_I_">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#indexOfExtension(java.lang.String)">indexOfExtension(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Returns the index of the last extension separator character, which is a dot.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#indexOfLastSeparator(java.lang.String)">indexOfLastSeparator(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Returns the index of the last directory separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#init(org.apache.commons.io.input.Tailer)">init(Tailer)</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">The tailer will call this method during construction,
+ giving the listener a method of stopping the tailer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#init(org.apache.commons.io.input.Tailer)">init(Tailer)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">The tailer will call this method during construction,
+ giving the listener a method of stopping the tailer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#initialize()">initialize()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Initialize the observer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#INSENSITIVE">INSENSITIVE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">The constant for case insensitive regardless of operating system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html#INSTANCE">INSTANCE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter">DirectoryFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of directory filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#INSTANCE">INSTANCE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of false filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#INSTANCE">INSTANCE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of true filter.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io"><span class="strong">IOCase</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Enumeration of IO case sensitivity.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/IOExceptionWithCause.html" title="class in org.apache.commons.io"><span class="strong">IOExceptionWithCause</span></a> - Exception in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Subclasses IOException with the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><code>Throwable</code></a> constructors missing before Java 6.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOExceptionWithCause.html#IOExceptionWithCause(java.lang.String, java.lang.Throwable)">IOExceptionWithCause(String, Throwable)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/IOExceptionWithCause.html" title="class in org.apache.commons.io">IOExceptionWithCause</a></dt>
+<dd>
+<div class="block">Constructs a new instance with the given message and cause.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOExceptionWithCause.html#IOExceptionWithCause(java.lang.Throwable)">IOExceptionWithCause(Throwable)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/IOExceptionWithCause.html" title="class in org.apache.commons.io">IOExceptionWithCause</a></dt>
+<dd>
+<div class="block">Constructs a new instance with the given cause.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><span class="strong">IOFileFilter</span></a> - Interface in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">An interface which brings the FileFilter and FilenameFilter
+ interfaces together.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io"><span class="strong">IOUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">General IO stream manipulation utilities.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#IOUtils()">IOUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#isCaseSensitive()">isCaseSensitive()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Does the object represent case sensitive comparison.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TaggedInputStream.html#isCauseOf(java.lang.Throwable)">isCauseOf(Throwable)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input">TaggedInputStream</a></dt>
+<dd>
+<div class="block">Tests if the given exception was caused by this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TaggedOutputStream.html#isCauseOf(java.lang.Exception)">isCauseOf(Exception)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output">TaggedOutputStream</a></dt>
+<dd>
+<div class="block">Tests if the given exception was caused by this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#isDirectory()">isDirectory()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Indicate whether the file is a directory or not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#isExists()">isExists()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Indicate whether the file existed the last time it
+ was checked.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#isExtension(java.lang.String, java.lang.String)">isExtension(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether the extension of the filename is that specified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#isExtension(java.lang.String, java.lang.String[])">isExtension(String, String[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether the extension of the filename is one of those specified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#isExtension(java.lang.String, java.util.Collection)">isExtension(String, Collection&lt;String&gt;)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether the extension of the filename is one of those specified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileNewer(java.io.File, java.io.File)">isFileNewer(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is newer than the reference
+ <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileNewer(java.io.File, java.util.Date)">isFileNewer(File, Date)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is newer than the specified
+ <code>Date</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileNewer(java.io.File, long)">isFileNewer(File, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is newer than the specified
+ time reference.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileOlder(java.io.File, java.io.File)">isFileOlder(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is older than the reference
+ <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileOlder(java.io.File, java.util.Date)">isFileOlder(File, Date)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is older than the specified
+ <code>Date</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileOlder(java.io.File, long)">isFileOlder(File, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is older than the specified
+ time reference.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#isInMemory()">isInMemory()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Determines whether or not the data for this output stream has been
+ retained in memory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#ISO_8859_1">ISO_8859_1</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">CharEncodingISO Latin Alphabet No.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#isPropagateClose()">isPropagateClose()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Indicates whether the <a href="./org/apache/commons/io/input/BoundedInputStream.html#close()"><code>BoundedInputStream.close()</code></a> method
+ should propagate to the underling <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isSymlink(java.io.File)">isSymlink(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Determines whether the specified file is a Symbolic Link rather than an actual file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#isTaggedWith(java.lang.Throwable, java.lang.Object)">isTaggedWith(Throwable, Object)</a></span> - Static method in exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Checks whether the given throwable is tagged with the given tag.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#isThresholdExceeded()">isThresholdExceeded()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Determines whether or not the configured threshold has been exceeded for
+ this output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#isValidLine(java.lang.String)">isValidLine(String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Overridable method to validate each line that is returned.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#iterateFiles(java.io.File, org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">iterateFiles(File, IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Allows iteration over the files in given directory (and optionally
+ its subdirectories).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#iterateFiles(java.io.File, java.lang.String[], boolean)">iterateFiles(File, String[], boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Allows iteration over the files in a given directory (and optionally
+ its subdirectories) which match an array of extensions.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#iterateFilesAndDirs(java.io.File, org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">iterateFilesAndDirs(File, IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Allows iteration over the files in given directory (and optionally
+ its subdirectories).</div>
+</dd>
+</dl>
+<a name="_L_">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html#LASTMODIFIED_COMPARATOR">LASTMODIFIED_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator">LastModifiedFileComparator</a></dt>
+<dd>
+<div class="block">Last modified comparator instance</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html#LASTMODIFIED_REVERSE">LASTMODIFIED_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator">LastModifiedFileComparator</a></dt>
+<dd>
+<div class="block">Reverse last modified comparator instance</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">LastModifiedFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the <b>last modified date/time</b> of two files for order 
+ (see <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#lastModified()" title="class or interface in java.io"><code>File.lastModified()</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html#LastModifiedFileComparator()">LastModifiedFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator">LastModifiedFileComparator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#length()">length()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Return the length of the BOM's bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#LINE_SEPARATOR">LINE_SEPARATOR</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The system line separator string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#LINE_SEPARATOR_UNIX">LINE_SEPARATOR_UNIX</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The Unix line separator string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#LINE_SEPARATOR_WINDOWS">LINE_SEPARATOR_WINDOWS</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The Windows line separator string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#lineIterator(java.io.File, java.lang.String)">lineIterator(File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in a <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#lineIterator(java.io.File)">lineIterator(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in a <code>File</code> using the default encoding for the VM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#lineIterator(java.io.Reader)">lineIterator(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in a <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#lineIterator(java.io.InputStream, java.nio.charset.Charset)">lineIterator(InputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in an <code>InputStream</code>, using
+ the character encoding specified (or default encoding if null).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#lineIterator(java.io.InputStream, java.lang.String)">lineIterator(InputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in an <code>InputStream</code>, using
+ the character encoding specified (or default encoding if null).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io"><span class="strong">LineIterator</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">An Iterator over the lines in a <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#LineIterator(java.io.Reader)">LineIterator(Reader)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Constructs an iterator of the lines for a <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#listFiles(java.io.File, org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">listFiles(File, IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Finds files within a given directory (and optionally its
+ subdirectories).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#listFiles(java.io.File, java.lang.String[], boolean)">listFiles(File, String[], boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Finds files within a given directory (and optionally its subdirectories)
+ which match an array of extensions.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#listFilesAndDirs(java.io.File, org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">listFilesAndDirs(File, IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Finds files within a given directory (and optionally its
+ subdirectories).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output"><span class="strong">LockableFileWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">FileWriter that will create and honor lock files to allow simple
+ cross thread file lock handling.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.lang.String)">LockableFileWriter(String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.lang.String, boolean)">LockableFileWriter(String, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.lang.String, boolean, java.lang.String)">LockableFileWriter(String, boolean, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File)">LockableFileWriter(File)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, boolean)">LockableFileWriter(File, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, boolean, java.lang.String)">LockableFileWriter(File, boolean, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.nio.charset.Charset, boolean, java.lang.String)"><code>LockableFileWriter.LockableFileWriter(File, Charset, boolean, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.nio.charset.Charset)">LockableFileWriter(File, Charset)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.lang.String)">LockableFileWriter(File, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.nio.charset.Charset, boolean, java.lang.String)">LockableFileWriter(File, Charset, boolean, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.lang.String, boolean, java.lang.String)">LockableFileWriter(File, String, boolean, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter with a file encoding.</div>
+</dd>
+</dl>
+<a name="_M_">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#magicNumberFileFilter(java.lang.String)">magicNumberFileFilter(String)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files that begin with the provided magic
+ number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#magicNumberFileFilter(java.lang.String, long)">magicNumberFileFilter(String, long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files that contains the provided magic
+ number at a specified offset within the file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#magicNumberFileFilter(byte[])">magicNumberFileFilter(byte[])</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files that begin with the provided magic
+ number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#magicNumberFileFilter(byte[], long)">magicNumberFileFilter(byte[], long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files that contains the provided magic
+ number at a specified offset within the file.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">MagicNumberFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">
+ File filter for matching files containing a "magic number".</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#MagicNumberFileFilter(byte[])">MagicNumberFileFilter(byte[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Constructs a new MagicNumberFileFilter and associates it with the magic
+ number to test for in files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#MagicNumberFileFilter(java.lang.String)">MagicNumberFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Constructs a new MagicNumberFileFilter and associates it with the magic
+ number to test for in files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#MagicNumberFileFilter(java.lang.String, long)">MagicNumberFileFilter(String, long)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Constructs a new MagicNumberFileFilter and associates it with the magic
+ number to test for in files and the byte offset location in the file to
+ to look for that magic number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#MagicNumberFileFilter(byte[], long)">MagicNumberFileFilter(byte[], long)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Constructs a new MagicNumberFileFilter and associates it with the magic
+ number to test for in files and the byte offset location in the file to
+ to look for that magic number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#makeCVSAware(org.apache.commons.io.filefilter.IOFileFilter)">makeCVSAware(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Decorates a filter to make it ignore CVS directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#makeDirectoryOnly(org.apache.commons.io.filefilter.IOFileFilter)">makeDirectoryOnly(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Decorates a filter so that it only applies to directories and not to files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#makeFileOnly(org.apache.commons.io.filefilter.IOFileFilter)">makeFileOnly(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Decorates a filter so that it only applies to files and not to directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#makeSVNAware(org.apache.commons.io.filefilter.IOFileFilter)">makeSVNAware(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Decorates a filter to make it ignore SVN directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>mark(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>mark(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Mark the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Mark the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Mark the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>mark(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>mark(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>markSupported()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Mark is supported (returns true).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Indicates whether <i>mark</i> is supported.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Indicates whether <i>mark</i> is supported.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>markSupported()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>markSupported()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveDirectory(java.io.File, java.io.File)">moveDirectory(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveDirectoryToDirectory(java.io.File, java.io.File, boolean)">moveDirectoryToDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a directory to another directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveFile(java.io.File, java.io.File)">moveFile(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveFileToDirectory(java.io.File, java.io.File, boolean)">moveFileToDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a file to a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveToDirectory(java.io.File, java.io.File, boolean)">moveToDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a file or directory to the destination directory.</div>
+</dd>
+</dl>
+<a name="_N_">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_COMPARATOR">NAME_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Case-sensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_INSENSITIVE_COMPARATOR">NAME_INSENSITIVE_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Case-insensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_INSENSITIVE_REVERSE">NAME_INSENSITIVE_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-insensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_REVERSE">NAME_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-sensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_SYSTEM_COMPARATOR">NAME_SYSTEM_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">System sensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_SYSTEM_REVERSE">NAME_SYSTEM_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Reverse system sensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">NameFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the <b>names</b> of two files for order (see <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#getName()" title="class or interface in java.io"><code>File.getName()</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NameFileComparator()">NameFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Construct a case sensitive file name comparator instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NameFileComparator(org.apache.commons.io.IOCase)">NameFileComparator(IOCase)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file name comparator instance with the specified case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#nameFileFilter(java.lang.String)">nameFileFilter(String)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename matches the specified text.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#nameFileFilter(java.lang.String, org.apache.commons.io.IOCase)">nameFileFilter(String, IOCase)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename matches the specified text.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">NameFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters filenames for a certain name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.lang.String)">NameFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new case-sensitive name file filter for a single name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.lang.String, org.apache.commons.io.IOCase)">NameFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new name file filter specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.lang.String[])">NameFileFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new case-sensitive name file filter for an array of names.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.lang.String[], org.apache.commons.io.IOCase)">NameFileFilter(String[], IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new name file filter for an array of names specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.util.List)">NameFileFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new case-sensitive name file filter for a list of names.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.util.List, org.apache.commons.io.IOCase)">NameFileFilter(List&lt;String&gt;, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new name file filter for a list of names specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#newChildInstance(java.io.File)">newChildInstance(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Create a new child instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#next()">next()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Returns the next line in the wrapped <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#nextLine()">nextLine()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Returns the next line in the wrapped <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#NORMAL">NORMAL</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">The singleton instance for normal file deletion, which does not permit
+ the deletion of directories that are not empty.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#normalize(java.lang.String)">normalize(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Normalizes a path, removing double and single dot path steps.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#normalize(java.lang.String, boolean)">normalize(String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Normalizes a path, removing double and single dot path steps.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#normalizeNoEndSeparator(java.lang.String)">normalizeNoEndSeparator(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Normalizes a path, removing double and single dot path steps,
+ and removing any final directory separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#normalizeNoEndSeparator(java.lang.String, boolean)">normalizeNoEndSeparator(String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Normalizes a path, removing double and single dot path steps,
+ and removing any final directory separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html#NOT_EMPTY">NOT_EMPTY</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter">EmptyFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>not-empty</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#notFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">notFileFilter(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that NOTs the specified filter.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">NotFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter produces a logical NOT of the filters specified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NotFileFilter.html#NotFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">NotFileFilter(IOFileFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter">NotFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new file filter that NOTs the result of another filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#NULL_OUTPUT_STREAM">NULL_OUTPUT_STREAM</a></span> - Static variable in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>
+<div class="block">A singleton.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#NULL_WRITER">NULL_WRITER</a></span> - Static variable in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">A singleton.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">NullInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A functional, light weight <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> that emulates
+ a stream of a specified size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#NullInputStream(long)">NullInputStream(long)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Create an <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> that emulates a specified size
+ which supports marking and does not throw EOFException.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#NullInputStream(long, boolean, boolean)">NullInputStream(long, boolean, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Create an <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> that emulates a specified
+ size with option settings.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">NullOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">This OutputStream writes all data to the famous <b>/dev/null</b>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#NullOutputStream()">NullOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input"><span class="strong">NullReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A functional, light weight <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> that emulates
+ a reader of a specified size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#NullReader(long)">NullReader(long)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Create a <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> that emulates a specified size
+ which supports marking and does not throw EOFException.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#NullReader(long, boolean, boolean)">NullReader(long, boolean, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Create a <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> that emulates a specified
+ size with option settings.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output"><span class="strong">NullWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">This <a href="http://download.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a> writes all data to the famous <b>/dev/null</b>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#NullWriter()">NullWriter()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Constructs a new NullWriter.</div>
+</dd>
+</dl>
+<a name="_O_">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onDirectoryChange(java.io.File)">onDirectoryChange(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">Directory changed Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onDirectoryChange(java.io.File)">onDirectoryChange(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">Directory changed Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onDirectoryCreate(java.io.File)">onDirectoryCreate(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">Directory created Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onDirectoryCreate(java.io.File)">onDirectoryCreate(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">Directory created Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onDirectoryDelete(java.io.File)">onDirectoryDelete(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">Directory deleted Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onDirectoryDelete(java.io.File)">onDirectoryDelete(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">Directory deleted Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_EB">ONE_EB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in an exabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_EB_BI">ONE_EB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in an exabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_GB">ONE_GB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a gigabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_GB_BI">ONE_GB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a gigabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_KB">ONE_KB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a kilobyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_KB_BI">ONE_KB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a kilobyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_MB">ONE_MB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a megabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_MB_BI">ONE_MB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a megabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_PB">ONE_PB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a petabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_PB_BI">ONE_PB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a petabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_TB">ONE_TB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a terabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_TB_BI">ONE_TB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a terabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_YB">ONE_YB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a yottabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_ZB">ONE_ZB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a zettabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onFileChange(java.io.File)">onFileChange(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File changed Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onFileChange(java.io.File)">onFileChange(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File changed Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onFileCreate(java.io.File)">onFileCreate(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File created Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onFileCreate(java.io.File)">onFileCreate(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File created Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onFileDelete(java.io.File)">onFileDelete(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File deleted Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onFileDelete(java.io.File)">onFileDelete(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File deleted Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onStart(org.apache.commons.io.monitor.FileAlterationObserver)">onStart(FileAlterationObserver)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File system observer started checking event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onStart(org.apache.commons.io.monitor.FileAlterationObserver)">onStart(FileAlterationObserver)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File system observer started checking event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onStop(org.apache.commons.io.monitor.FileAlterationObserver)">onStop(FileAlterationObserver)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File system observer finished checking event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onStop(org.apache.commons.io.monitor.FileAlterationObserver)">onStop(FileAlterationObserver)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File system observer finished checking event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#openInputStream(java.io.File)">openInputStream(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Opens a <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileInputStream.html?is-external=true" title="class or interface in java.io"><code>FileInputStream</code></a> for the specified file, providing better
+ error messages than simply calling <code>new FileInputStream(file)</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#openOutputStream(java.io.File)">openOutputStream(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Opens a <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileOutputStream.html?is-external=true" title="class or interface in java.io"><code>FileOutputStream</code></a> for the specified file, checking and
+ creating the parent directory if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#openOutputStream(java.io.File, boolean)">openOutputStream(File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Opens a <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileOutputStream.html?is-external=true" title="class or interface in java.io"><code>FileOutputStream</code></a> for the specified file, checking and
+ creating the parent directory if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#or(org.apache.commons.io.filefilter.IOFileFilter...)">or(IOFileFilter...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that ORs the specified filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#orFileFilter(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">orFileFilter(IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>use <a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#or(org.apache.commons.io.filefilter.IOFileFilter...)"><code>FileFilterUtils.or(IOFileFilter...)</code></a></i></div>
+</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">OrFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">A <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileFilter.html?is-external=true" title="class or interface in java.io"><code>FileFilter</code></a> providing conditional OR logic across a list of
+ file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#OrFileFilter()">OrFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new instance of <code>OrFileFilter</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#OrFileFilter(java.util.List)">OrFileFilter(List&lt;IOFileFilter&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new instance of <code>OrFileFilter</code>
+ with the specified filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#OrFileFilter(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">OrFileFilter(IOFileFilter, IOFileFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new file filter that ORs the result of two other filters.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a> - package org.apache.commons.io</dt>
+<dd>
+<div class="block">
+This package defines utility classes for working with streams, readers,
+writers and files.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a> - package org.apache.commons.io.comparator</dt>
+<dd>
+<div class="block">This package provides various <a href="http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util"><code>Comparator</code></a> implementations
+for <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>s.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a> - package org.apache.commons.io.filefilter</dt>
+<dd>
+<div class="block">This package defines an interface (IOFileFilter) that combines both 
+<a href="http://download.oracle.com/javase/6/docs/api/java/io/FileFilter.html?is-external=true" title="class or interface in java.io"><code>FileFilter</code></a> and <a href="http://download.oracle.com/javase/6/docs/api/java/io/FilenameFilter.html?is-external=true" title="class or interface in java.io"><code>FilenameFilter</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a> - package org.apache.commons.io.input</dt>
+<dd>
+<div class="block">
+This package provides implementations of input classes, such as
+<code>InputStream</code> and <code>Reader</code>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a> - package org.apache.commons.io.monitor</dt>
+<dd>
+<div class="block">
+This package provides a component for monitoring file system events
+(directory and file create, update and delete events).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a> - package org.apache.commons.io.output</dt>
+<dd>
+<div class="block">
+This package provides implementations of output classes, such as
+<code>OutputStream</code> and <code>Writer</code>.</div>
+</dd>
+</dl>
+<a name="_P_">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_COMPARATOR">PATH_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Case-sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_INSENSITIVE_COMPARATOR">PATH_INSENSITIVE_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Case-insensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_INSENSITIVE_REVERSE">PATH_INSENSITIVE_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-insensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_REVERSE">PATH_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_SYSTEM_COMPARATOR">PATH_SYSTEM_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">System sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_SYSTEM_REVERSE">PATH_SYSTEM_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Reverse system sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">PathFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the <b>path</b> of two files for order (see <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#getPath()" title="class or interface in java.io"><code>File.getPath()</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PathFileComparator()">PathFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Construct a case sensitive file path comparator instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PathFileComparator(org.apache.commons.io.IOCase)">PathFileComparator(IOCase)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file path comparator instance with the specified case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#prefixFileFilter(java.lang.String)">prefixFileFilter(String)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename starts with the specified text.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#prefixFileFilter(java.lang.String, org.apache.commons.io.IOCase)">prefixFileFilter(String, IOCase)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename starts with the specified text.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">PrefixFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters filenames for a certain prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.lang.String)">PrefixFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for a single prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.lang.String, org.apache.commons.io.IOCase)">PrefixFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for a single prefix
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.lang.String[])">PrefixFileFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for any of an array of prefixes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.lang.String[], org.apache.commons.io.IOCase)">PrefixFileFilter(String[], IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for any of an array of prefixes
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.util.List)">PrefixFileFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for a list of prefixes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.util.List, org.apache.commons.io.IOCase)">PrefixFileFilter(List&lt;String&gt;, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for a list of prefixes
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#processByte()">processByte()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Return a byte value for the  <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#processBytes(byte[], int, int)">processBytes(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Process the bytes for the <code>read(byte[], offset, length)</code>
+ method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#processChar()">processChar()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Return a character value for the  <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#processChars(char[], int, int)">processChars(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Process the characters for the <code>read(char[], offset, length)</code>
+ method.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">ProxyInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A Proxy stream which acts as expected, that is it passes the method
+ calls on to the proxied stream and doesn't change which methods are
+ being called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#ProxyInputStream(java.io.InputStream)">ProxyInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new ProxyInputStream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">ProxyOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">A Proxy stream which acts as expected, that is it passes the method 
+ calls on to the proxied stream and doesn't change which methods are 
+ being called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#ProxyOutputStream(java.io.OutputStream)">ProxyOutputStream(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new ProxyOutputStream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input"><span class="strong">ProxyReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A Proxy stream which acts as expected, that is it passes the method 
+ calls on to the proxied stream and doesn't change which methods are 
+ being called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#ProxyReader(java.io.Reader)">ProxyReader(Reader)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Constructs a new ProxyReader.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output"><span class="strong">ProxyWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">A Proxy stream which acts as expected, that is it passes the method 
+ calls on to the proxied stream and doesn't change which methods are 
+ being called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#ProxyWriter(java.io.Writer)">ProxyWriter(Writer)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Constructs a new ProxyWriter.</div>
+</dd>
+</dl>
+<a name="_R_">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method, detecting and optionally skipping BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[], int, int)</code> method, detecting and optionally skipping BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[])</code> method, detecting and optionally skipping BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method if
+ the current position is less than the limit.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Read a single character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#read(char[], int, int)">read(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Read the sepcified number of characters into the array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClosedInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input">ClosedInputStream</a></dt>
+<dd>
+<div class="block">Returns -1 to indicate that the stream is closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/DemuxInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input">DemuxInputStream</a></dt>
+<dd>
+<div class="block">Read byte from stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Read a byte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Read some bytes into the specified array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Read the specified number bytes into an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Read a character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#read(char[])">read(char[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Read some characters into the specified array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#read(char[], int, int)">read(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Read the specified number characters into an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#read(char[])">read(char[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(char[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#read(char[], int, int)">read(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(char[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#read(java.nio.CharBuffer)">read(CharBuffer)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(CharBuffer)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Read the specified number of bytes into an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Read the specified number of bytes into an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Read a single byte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Reads a single byte from the proxied input stream and writes it to
+ the associated output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Reads bytes from the proxied input stream and writes the read bytes
+ to the associated output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Reads bytes from the proxied input stream and writes the read bytes
+ to the associated output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#read(char[], int, int)">read(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Invokes the underlying reader's <code>read(char[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.io.Reader, char[], int, int)">read(Reader, char[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads characters from an input character stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.io.Reader, char[])">read(Reader, char[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads characters from an input character stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.io.InputStream, byte[], int, int)">read(InputStream, byte[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads bytes from an input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.io.InputStream, byte[])">read(InputStream, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads bytes from an input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)">read(ReadableByteChannel, ByteBuffer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads bytes from a ReadableByteChannel.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#READ_ONLY">READ_ONLY</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>read-only</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readBoolean()">readBoolean()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Return <code><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readByte()"><code>SwappedDataInputStream.readByte()</code></a> != 0</code></div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readByte()">readByte()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readChar()">readChar()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Reads a character delegating to <a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readShort()"><code>SwappedDataInputStream.readShort()</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readDouble()">readDouble()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedDouble(java.io.InputStream)"><code>EndianUtils.readSwappedDouble(InputStream)</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">ReaderInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> implementation that reads a character stream from a <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>
+ and transforms it to a byte stream using a specified charset encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.CharsetEncoder)">ReaderInputStream(Reader, CharsetEncoder)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.CharsetEncoder, int)">ReaderInputStream(Reader, CharsetEncoder, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.Charset, int)">ReaderInputStream(Reader, Charset, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.Charset)">ReaderInputStream(Reader, Charset)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a> with a default input buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.lang.String, int)">ReaderInputStream(Reader, String, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.lang.String)">ReaderInputStream(Reader, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a> with a default input buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader)">ReaderInputStream(Reader)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.Charset)"><code>ReaderInputStream.ReaderInputStream(Reader, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readFileToByteArray(java.io.File)">readFileToByteArray(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file into a byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readFileToString(java.io.File, java.nio.charset.Charset)">readFileToString(File, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file into a String.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readFileToString(java.io.File, java.lang.String)">readFileToString(File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file into a String.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readFileToString(java.io.File)">readFileToString(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#readFileToString(java.io.File, java.nio.charset.Charset)"><code>FileUtils.readFileToString(File, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readFloat()">readFloat()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedFloat(java.io.InputStream)"><code>EndianUtils.readSwappedFloat(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readFully(byte[])">readFully(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[] data, int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readFully(byte[], int, int)">readFully(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[] data, int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.io.Reader, char[], int, int)">readFully(Reader, char[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of characters or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.io.Reader, char[])">readFully(Reader, char[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of characters or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.io.InputStream, byte[], int, int)">readFully(InputStream, byte[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.io.InputStream, byte[])">readFully(InputStream, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)">readFully(ReadableByteChannel, ByteBuffer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readInt()">readInt()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedInteger(java.io.InputStream)"><code>EndianUtils.readSwappedInteger(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#readLine()">readLine()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Returns the lines of the file from bottom to top.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readLine()">readLine()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Not currently supported - throws <a href="http://download.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang"><code>UnsupportedOperationException</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readLines(java.io.File, java.nio.charset.Charset)">readLines(File, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file line by line to a List of Strings.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readLines(java.io.File, java.lang.String)">readLines(File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file line by line to a List of Strings.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readLines(java.io.File)">readLines(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#readLines(java.io.File, java.nio.charset.Charset)"><code>FileUtils.readLines(File, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.InputStream)">readLines(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.InputStream, java.nio.charset.Charset)"><code>IOUtils.readLines(InputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.InputStream, java.nio.charset.Charset)">readLines(InputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a list of Strings,
+ one entry per line, using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.InputStream, java.lang.String)">readLines(InputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a list of Strings,
+ one entry per line, using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.Reader)">readLines(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a list of Strings,
+ one entry per line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readLong()">readLong()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedLong(java.io.InputStream)"><code>EndianUtils.readSwappedLong(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readShort()">readShort()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedShort(java.io.InputStream)"><code>EndianUtils.readSwappedShort(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedDouble(byte[], int)">readSwappedDouble(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "double" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedDouble(java.io.InputStream)">readSwappedDouble(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "double" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedFloat(byte[], int)">readSwappedFloat(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "float" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedFloat(java.io.InputStream)">readSwappedFloat(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "float" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedInteger(byte[], int)">readSwappedInteger(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "int" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedInteger(java.io.InputStream)">readSwappedInteger(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "int" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedLong(byte[], int)">readSwappedLong(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "long" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedLong(java.io.InputStream)">readSwappedLong(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "long" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedShort(byte[], int)">readSwappedShort(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "short" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedShort(java.io.InputStream)">readSwappedShort(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "short" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedInteger(byte[], int)">readSwappedUnsignedInteger(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads an unsigned integer (32-bit) value from a byte array at a given
+ offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedInteger(java.io.InputStream)">readSwappedUnsignedInteger(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a unsigned integer (32-bit) from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedShort(byte[], int)">readSwappedUnsignedShort(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads an unsigned short (16-bit) value from a byte array at a given
+ offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedShort(java.io.InputStream)">readSwappedUnsignedShort(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a unsigned short (16-bit) from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readUnsignedByte()">readUnsignedByte()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readUnsignedShort()">readUnsignedShort()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedShort(java.io.InputStream)"><code>EndianUtils.readSwappedUnsignedShort(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readUTF()">readUTF()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Not currently supported - throws <a href="http://download.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang"><code>UnsupportedOperationException</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#ready()">ready()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>ready()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#refresh(java.io.File)">refresh(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Refresh the attributes from the <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>, indicating
+ whether the file has changed.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">RegexFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files using supplied regular expression(s).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#RegexFileFilter(java.lang.String)">RegexFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new regular expression filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#RegexFileFilter(java.lang.String, org.apache.commons.io.IOCase)">RegexFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new regular expression filter with the specified flags case sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#RegexFileFilter(java.lang.String, int)">RegexFileFilter(String, int)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new regular expression filter with the specified flags.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#RegexFileFilter(java.util.regex.Pattern)">RegexFileFilter(Pattern)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new regular expression filter for a compiled regular expression</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#remove()">remove()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Unsupported.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#removeExtension(java.lang.String)">removeExtension(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Removes the extension from a filename.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#removeFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">removeFileFilter(IOFileFilter)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Removes the specified file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html#removeFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">removeFileFilter(IOFileFilter)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter">ConditionalFileFilter</a></dt>
+<dd>
+<div class="block">Removes the specified file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#removeFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">removeFileFilter(IOFileFilter)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Removes the specified file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#removeListener(org.apache.commons.io.monitor.FileAlterationListener)">removeListener(FileAlterationListener)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Remove a file system listener.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#removeObserver(org.apache.commons.io.monitor.FileAlterationObserver)">removeObserver(FileAlterationObserver)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Remove a file system observer from this monitor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#requiredCharsets()">requiredCharsets()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">Constructs a sorted map from canonical charset names to charset objects required of every implementation of the
+ Java platform.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>reset()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>reset()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Reset the reader to the last marked position (or the beginning if
+ mark has not been called).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Reset the stream to the point when mark was last called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Reset the stream to the point when mark was last called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>reset()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>reset()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#resetByteCount()">resetByteCount()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Set the byte count back to 0.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#resetByteCount()">resetByteCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">Set the byte count back to 0.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#resetByteCount()">resetByteCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Resets the byteCount to zero.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#resetCount()">resetCount()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Set the byte count back to 0.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#resetCount()">resetCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">Set the byte count back to 0.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html#resolveClass(java.io.ObjectStreamClass)">resolveClass(ObjectStreamClass)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html" title="class in org.apache.commons.io.input">ClassLoaderObjectInputStream</a></dt>
+<dd>
+<div class="block">Resolve a class specified by the descriptor using the
+ specified ClassLoader or the super ClassLoader.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html#resolveProxyClass(java.lang.String[])">resolveProxyClass(String[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html" title="class in org.apache.commons.io.input">ClassLoaderObjectInputStream</a></dt>
+<dd>
+<div class="block">Create a proxy class that implements the specified interfaces using
+ the specified ClassLoader or the super ClassLoader.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input"><span class="strong">ReversedLinesFileReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Reads lines in a file reversely (similar to a BufferedReader, but starting at
+ the last line).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File)">ReversedLinesFileReader(File)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File, java.nio.charset.Charset)"><code>ReversedLinesFileReader.ReversedLinesFileReader(File, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File, java.nio.charset.Charset)">ReversedLinesFileReader(File, Charset)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Creates a ReversedLinesFileReader with default block size of 4KB and the
+ specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File, int, java.nio.charset.Charset)">ReversedLinesFileReader(File, int, Charset)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Creates a ReversedLinesFileReader with the given block size and encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File, int, java.lang.String)">ReversedLinesFileReader(File, int, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Creates a ReversedLinesFileReader with the given block size and encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#run()">run()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Follows changes in the file, calling the TailerListener's handle method for each new line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#run()">run()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Run.</div>
+</dd>
+</dl>
+<a name="_S_">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#SENSITIVE">SENSITIVE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">The constant for case sensitive regardless of operating system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#separatorsToSystem(java.lang.String)">separatorsToSystem(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Converts all separators to the system separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#separatorsToUnix(java.lang.String)">separatorsToUnix(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Converts all separators to the Unix separator of forward slash.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#separatorsToWindows(java.lang.String)">separatorsToWindows(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Converts all separators to the Windows separator of backslash.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setChildren(org.apache.commons.io.monitor.FileEntry[])">setChildren(FileEntry[])</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set the directory's files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setDirectory(boolean)">setDirectory(boolean)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set whether the file is a directory or not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setExists(boolean)">setExists(boolean)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set whether the file existed the last time it
+ was checked.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#setFileFilters(java.util.List)">setFileFilters(List&lt;IOFileFilter&gt;)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Sets the list of file filters, replacing any previously configured
+ file filters on this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html#setFileFilters(java.util.List)">setFileFilters(List&lt;IOFileFilter&gt;)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter">ConditionalFileFilter</a></dt>
+<dd>
+<div class="block">Sets the list of file filters, replacing any previously configured
+ file filters on this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#setFileFilters(java.util.List)">setFileFilters(List&lt;IOFileFilter&gt;)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Sets the list of file filters, replacing any previously configured
+ file filters on this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setLastModified(long)">setLastModified(long)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the last modified time from the last time it
+ was checked.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setLength(long)">setLength(long)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set the length.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setName(java.lang.String)">setName(String)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set the file name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#setPropagateClose(boolean)">setPropagateClose(boolean)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Set whether the <a href="./org/apache/commons/io/input/BoundedInputStream.html#close()"><code>BoundedInputStream.close()</code></a> method
+ should propagate to the underling <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#setThreadFactory(java.util.concurrent.ThreadFactory)">setThreadFactory(ThreadFactory)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Set the thread factory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#size()">size()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Return the current size of the byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SIZE_COMPARATOR">SIZE_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Size comparator instance - directories are treated as zero size</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SIZE_REVERSE">SIZE_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Reverse size comparator instance - directories are treated as zero size</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SIZE_SUMDIR_COMPARATOR">SIZE_SUMDIR_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Size comparator instance which sums the size of a directory's contents
+ using <a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectory(java.io.File)"><code>FileUtils.sizeOfDirectory(File)</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SIZE_SUMDIR_REVERSE">SIZE_SUMDIR_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Reverse size comparator instance which sums the size of a directory's contents
+ using <a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectory(java.io.File)"><code>FileUtils.sizeOfDirectory(File)</code></a></div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">SizeFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the <b>length/size</b> of two files for order (see
+ <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#length()" title="class or interface in java.io"><code>File.length()</code></a> and <a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectory(java.io.File)"><code>FileUtils.sizeOfDirectory(File)</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SizeFileComparator()">SizeFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file size comparator instance (directories treated as zero size).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SizeFileComparator(boolean)">SizeFileComparator(boolean)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file size comparator instance specifying whether the size of
+ the directory contents should be aggregated.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#sizeFileFilter(long)">sizeFileFilter(long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the file is bigger than a certain size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#sizeFileFilter(long, boolean)">sizeFileFilter(long, boolean)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that filters based on file size.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">SizeFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files based on size, can filter either smaller files or
+ files equal to or larger than a given threshold.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html#SizeFileFilter(long)">SizeFileFilter(long)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter">SizeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new size file filter for files equal to or 
+ larger than a certain size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html#SizeFileFilter(long, boolean)">SizeFileFilter(long, boolean)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter">SizeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new size file filter for files based on a certain size
+ threshold.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#sizeOf(java.io.File)">sizeOf(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns the size of the specified file or directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#sizeOfAsBigInteger(java.io.File)">sizeOfAsBigInteger(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns the size of the specified file or directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectory(java.io.File)">sizeOfDirectory(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Counts the size of a directory recursively (sum of the length of all files).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectoryAsBigInteger(java.io.File)">sizeOfDirectoryAsBigInteger(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Counts the size of a directory recursively (sum of the length of all files).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#sizeRangeFileFilter(long, long)">sizeRangeFileFilter(long, long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files whose size is &gt;= minimum size
+ and &lt;= maximum size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(long)</code> method, detecting and optionallyskipping BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(long)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Skip the specified number of characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Skips the stream over the specified number of bytes, adding the skipped
+ amount to the count.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Skip a specified number of bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Skip a specified number of characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(long)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(long)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skip(java.io.InputStream, long)">skip(InputStream, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips bytes from an input byte stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skip(java.nio.channels.ReadableByteChannel, long)">skip(ReadableByteChannel, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips bytes from a ReadableByteChannel.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skip(java.io.Reader, long)">skip(Reader, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips characters from an input character stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#skipBytes(int)">skipBytes(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skipFully(java.io.InputStream, long)">skipFully(InputStream, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skipFully(java.nio.channels.ReadableByteChannel, long)">skipFully(ReadableByteChannel, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skipFully(java.io.Reader, long)">skipFully(Reader, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips the requested number of characters or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#start()">start()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Start monitoring.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#stop()">stop()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Allows the tailer to complete its current loop and return.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#stop()">stop()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Stop monitoring.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#stop(long)">stop(long)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Stop monitoring.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output"><span class="strong">StringBuilderWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a> implementation that outputs to a <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#StringBuilderWriter()">StringBuilderWriter()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Construct a new <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a> instance with default capacity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#StringBuilderWriter(int)">StringBuilderWriter(int)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Construct a new <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a> instance with the specified capacity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#StringBuilderWriter(java.lang.StringBuilder)">StringBuilderWriter(StringBuilder)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Construct a new instance with the specified <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#suffixFileFilter(java.lang.String)">suffixFileFilter(String)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename ends with the specified text.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#suffixFileFilter(java.lang.String, org.apache.commons.io.IOCase)">suffixFileFilter(String, IOCase)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename ends with the specified text.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">SuffixFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files based on the suffix (what the filename ends with).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.lang.String)">SuffixFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for a single extension.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.lang.String, org.apache.commons.io.IOCase)">SuffixFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for a single extension
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.lang.String[])">SuffixFileFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for an array of suffixs.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.lang.String[], org.apache.commons.io.IOCase)">SuffixFileFilter(String[], IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for an array of suffixs
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.util.List)">SuffixFileFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for a list of suffixes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.util.List, org.apache.commons.io.IOCase)">SuffixFileFilter(List&lt;String&gt;, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for a list of suffixes
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapDouble(double)">swapDouble(double)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "double" value between endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapFloat(float)">swapFloat(float)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "float" value between endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapInteger(int)">swapInteger(int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "int" value between endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapLong(long)">swapLong(long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "long" value between endian systems.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">SwappedDataInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">DataInput for systems relying on little endian data formats.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#SwappedDataInputStream(java.io.InputStream)">SwappedDataInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Constructs a SwappedDataInputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapShort(short)">swapShort(short)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "short" value between endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#SYSTEM">SYSTEM</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">The constant for case sensitivity determined by the current operating system.</div>
+</dd>
+</dl>
+<a name="_T_">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">TaggedInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">An input stream decorator that tags potential exceptions so that the
+ stream that caused the exception can easily be identified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TaggedInputStream.html#TaggedInputStream(java.io.InputStream)">TaggedInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input">TaggedInputStream</a></dt>
+<dd>
+<div class="block">Creates a tagging decorator for the given input stream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io"><span class="strong">TaggedIOException</span></a> - Exception in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">An <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a> decorator that adds a serializable tag to the
+ wrapped exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#TaggedIOException(java.io.IOException, java.io.Serializable)">TaggedIOException(IOException, Serializable)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Creates a tagged wrapper for the given exception.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">TaggedOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">An output stream decorator that tags potential exceptions so that the
+ stream that caused the exception can easily be identified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TaggedOutputStream.html#TaggedOutputStream(java.io.OutputStream)">TaggedOutputStream(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output">TaggedOutputStream</a></dt>
+<dd>
+<div class="block">Creates a tagging decorator for the given output stream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input"><span class="strong">Tailer</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Simple implementation of the unix "tail -f" functionality.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener)">Tailer(File, TailerListener)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, starting from the beginning, with the default delay of 1.0s.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long)">Tailer(File, TailerListener, long)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, starting from the beginning.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean)">Tailer(File, TailerListener, long, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, with a delay other than the default 1.0s.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, boolean)">Tailer(File, TailerListener, long, boolean, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, with a delay other than the default 1.0s.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, int)">Tailer(File, TailerListener, long, boolean, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, with a specified buffer size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, boolean, int)">Tailer(File, TailerListener, long, boolean, boolean, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, with a specified buffer size.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input"><span class="strong">TailerListener</span></a> - Interface in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Listener for events from a <a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input"><code>Tailer</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input"><span class="strong">TailerListenerAdapter</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block"><a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input"><code>TailerListener</code></a> Adapter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#TailerListenerAdapter()">TailerListenerAdapter()</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">TeeInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">InputStream proxy that transparently writes a copy of all bytes read
+ from the proxied stream to a given OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#TeeInputStream(java.io.InputStream, java.io.OutputStream)">TeeInputStream(InputStream, OutputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Creates a TeeInputStream that proxies the given <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>
+ and copies all read bytes to the given <a href="http://download.oracle.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io"><code>OutputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#TeeInputStream(java.io.InputStream, java.io.OutputStream, boolean)">TeeInputStream(InputStream, OutputStream, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Creates a TeeInputStream that proxies the given <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>
+ and copies all read bytes to the given <a href="http://download.oracle.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io"><code>OutputStream</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">TeeOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Classic splitter of OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#TeeOutputStream(java.io.OutputStream, java.io.OutputStream)">TeeOutputStream(OutputStream, OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a TeeOutputStream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">ThresholdingOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">An output stream which triggers an event when a specified number of bytes of
+ data have been written to it.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#ThresholdingOutputStream(int)">ThresholdingOutputStream(int)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Constructs an instance of this class which will trigger an event at the
+ specified threshold.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#thresholdReached()">thresholdReached()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Switches the underlying output stream from a memory based stream to one
+ that is backed by disk.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#thresholdReached()">thresholdReached()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Indicates that the configured threshold has been reached, and that a
+ subclass should take whatever action necessary on this event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#throwCauseIfTaggedWith(java.lang.Throwable, java.lang.Object)">throwCauseIfTaggedWith(Throwable, Object)</a></span> - Static method in exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Throws the original <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a> if the given throwable is
+ a <a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io"><code>TaggedIOException</code></a> decorator the given tag.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TaggedInputStream.html#throwIfCauseOf(java.lang.Throwable)">throwIfCauseOf(Throwable)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input">TaggedInputStream</a></dt>
+<dd>
+<div class="block">Re-throws the original exception thrown by this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TaggedOutputStream.html#throwIfCauseOf(java.lang.Exception)">throwIfCauseOf(Exception)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output">TaggedOutputStream</a></dt>
+<dd>
+<div class="block">Re-throws the original exception thrown by this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toBufferedInputStream(java.io.InputStream)">toBufferedInputStream(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Fetches entire contents of an <code>InputStream</code> and represent
+ same data as result InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toBufferedInputStream(java.io.InputStream)">toBufferedInputStream(InputStream)</a></span> - Static method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Fetches entire contents of an <code>InputStream</code> and represent
+ same data as result InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toBufferedReader(java.io.Reader)">toBufferedReader(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given reader if it is a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedReader.html?is-external=true" title="class or interface in java.io"><code>BufferedReader</code></a>, otherwise creates a BufferedReader from the given
+ reader.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.InputStream)">toByteArray(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.InputStream, long)">toByteArray(InputStream, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets contents of an <code>InputStream</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.InputStream, int)">toByteArray(InputStream, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.Reader)">toByteArray(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.Reader, java.nio.charset.Charset)"><code>IOUtils.toByteArray(Reader, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.Reader, java.nio.charset.Charset)">toByteArray(Reader, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a <code>byte[]</code>
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.Reader, java.lang.String)">toByteArray(Reader, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a <code>byte[]</code>
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.lang.String)">toByteArray(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 Use <a href="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true#getBytes()" title="class or interface in java.lang"><code>String.getBytes()</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.net.URI)">toByteArray(URI)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>URI</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.net.URL)">toByteArray(URL)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>URL</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.net.URLConnection)">toByteArray(URLConnection)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>URLConnection</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toByteArray()">toByteArray()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Gets the curent contents of this byte stream as a byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.InputStream)">toCharArray(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.InputStream, java.nio.charset.Charset)"><code>IOUtils.toCharArray(InputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.InputStream, java.nio.charset.Charset)">toCharArray(InputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a character array
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.InputStream, java.lang.String)">toCharArray(InputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a character array
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.Reader)">toCharArray(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a character array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#toCharset(java.nio.charset.Charset)">toCharset(Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">Returns the given Charset or the default Charset if the given Charset is null.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#toCharset(java.lang.String)">toCharset(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">Returns a Charset for the named charset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#toFile(java.net.URL)">toFile(URL)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Convert from a <code>URL</code> to a <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#toFiles(java.net.URL[])">toFiles(URL[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Converts each of an array of <code>URL</code> to a <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.CharSequence)">toInputStream(CharSequence)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.CharSequence, java.nio.charset.Charset)"><code>IOUtils.toInputStream(CharSequence, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.CharSequence, java.nio.charset.Charset)">toInputStream(CharSequence, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Converts the specified CharSequence to an input stream, encoded as bytes
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.CharSequence, java.lang.String)">toInputStream(CharSequence, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Converts the specified CharSequence to an input stream, encoded as bytes
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.String)">toInputStream(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.String, java.nio.charset.Charset)"><code>IOUtils.toInputStream(String, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.String, java.nio.charset.Charset)">toInputStream(String, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Converts the specified string to an input stream, encoded as bytes
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.String, java.lang.String)">toInputStream(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Converts the specified string to an input stream, encoded as bytes
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toInputStream()">toInputStream()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Gets the current contents of this byte stream as a Input Stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#toList(org.apache.commons.io.filefilter.IOFileFilter...)">toList(IOFileFilter...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Create a List of file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Provide a String representation of the BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator">CompositeFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Gets a string describing the delete strategy.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter">AbstractFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">Returns a String representation of the file filter, which includes the
+ magic number bytes and byte offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NotFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter">NotFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter">SizeFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representation of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>toString()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Return a String representation of the underlying
+ character sequence.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Gets a string describing the sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.io.InputStream)">toString(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toString(java.io.InputStream, java.nio.charset.Charset)"><code>IOUtils.toString(InputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.io.InputStream, java.nio.charset.Charset)">toString(InputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a String
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.io.InputStream, java.lang.String)">toString(InputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a String
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.io.Reader)">toString(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a String.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URI)">toString(URI)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URI, java.nio.charset.Charset)"><code>IOUtils.toString(URI, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URI, java.nio.charset.Charset)">toString(URI, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents at the given URI.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URI, java.lang.String)">toString(URI, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents at the given URI.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URL)">toString(URL)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URL, java.nio.charset.Charset)"><code>IOUtils.toString(URL, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URL, java.nio.charset.Charset)">toString(URL, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents at the given URL.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URL, java.lang.String)">toString(URL, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents at the given URL.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(byte[])">toString(byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 Use <a href="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true#String(byte[])" title="class or interface in java.lang"><code>String.String(byte[])</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(byte[], java.lang.String)">toString(byte[], String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>byte[]</code> as a String
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Provide a String representation of this observer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toString(java.lang.String)"><code>ByteArrayOutputStream.toString(String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toString(java.lang.String)">toString(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Gets the curent contents of this byte stream as a string
+ using the specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toString(java.nio.charset.Charset)">toString(Charset)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Gets the curent contents of this byte stream as a string
+ using the specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Returns <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true#toString()" title="class or interface in java.lang"><code>StringBuilder.toString()</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#touch(java.io.File)">touch(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Implements the same behaviour as the "touch" utility on Unix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#toURLs(java.io.File[])">toURLs(File[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Converts each of an array of <code>File</code> to a <code>URL</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#track(java.io.File, java.lang.Object)">track(File, Object)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.io.File, java.lang.Object)"><code>FileCleaningTracker.track(File, Object)</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#track(java.io.File, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)">track(File, Object, FileDeleteStrategy)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.io.File, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)"><code>FileCleaningTracker.track(File, Object, FileDeleteStrategy)</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#track(java.lang.String, java.lang.Object)">track(String, Object)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.lang.String, java.lang.Object)"><code>FileCleaningTracker.track(String, Object)</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#track(java.lang.String, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)">track(String, Object, FileDeleteStrategy)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.lang.String, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)"><code>FileCleaningTracker.track(String, Object, FileDeleteStrategy)</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.io.File, java.lang.Object)">track(File, Object)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Track the specified file, using the provided marker, deleting the file
+ when the marker instance is garbage collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.io.File, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)">track(File, Object, FileDeleteStrategy)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Track the specified file, using the provided marker, deleting the file
+ when the marker instance is garbage collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.lang.String, java.lang.Object)">track(String, Object)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Track the specified file, using the provided marker, deleting the file
+ when the marker instance is garbage collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.lang.String, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)">track(String, Object, FileDeleteStrategy)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Track the specified file, using the provided marker, deleting the file
+ when the marker instance is garbage collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#TRUE">TRUE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of true filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#trueFileFilter()">trueFileFilter()</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that always returns true.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">TrueFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">A file filter that always returns true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#TrueFileFilter()">TrueFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive constructor.</div>
+</dd>
+</dl>
+<a name="_U_">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#US_ASCII">US_ASCII</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Seven-bit ASCII, also known as ISO646-US, also known as the Basic Latin block of the Unicode character set.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#UTF_16">UTF_16</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Sixteen-bit Unicode Transformation Format, The byte order specified by a mandatory initial byte-order mark
+ (either order accepted on input, big-endian used on output)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_16BE">UTF_16BE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-16BE BOM (Big-Endian)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#UTF_16BE">UTF_16BE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Sixteen-bit Unicode Transformation Format, big-endian byte order.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_16LE">UTF_16LE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-16LE BOM (Little-Endian)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#UTF_16LE">UTF_16LE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Sixteen-bit Unicode Transformation Format, little-endian byte order.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_32BE">UTF_32BE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-32BE BOM (Big-Endian)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_32LE">UTF_32LE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-32LE BOM (Little-Endian)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_8">UTF_8</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-8 BOM</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#UTF_8">UTF_8</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Eight-bit Unicode Transformation Format.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_BOM">UTF_BOM</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Unicode BOM character; external form depends on the encoding.</div>
+</dd>
+</dl>
+<a name="_V_">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html#VISIBLE">VISIBLE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter">HiddenFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>visible</i> filter</div>
+</dd>
+</dl>
+<a name="_W_">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#waitFor(java.io.File, int)">waitFor(File, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Waits for NFS to propagate a file creation, imposing a timeout.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#walk(java.io.File, java.util.Collection)">walk(File, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Internal method that walks the directory hierarchy in a depth-first manner.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">WildcardFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files using the supplied wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.lang.String)">WildcardFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new case-sensitive wildcard filter for a single wildcard.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.lang.String, org.apache.commons.io.IOCase)">WildcardFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new wildcard filter for a single wildcard specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.lang.String[])">WildcardFileFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new case-sensitive wildcard filter for an array of wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.lang.String[], org.apache.commons.io.IOCase)">WildcardFileFilter(String[], IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new wildcard filter for an array of wildcards specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.util.List)">WildcardFileFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new case-sensitive wildcard filter for a list of wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.util.List, org.apache.commons.io.IOCase)">WildcardFileFilter(List&lt;String&gt;, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new wildcard filter for a list of wildcards specifying case-sensitivity.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">WildcardFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use WilcardFileFilter. Deprecated as this class performs directory
+ filtering which it shouldn't do, but that can't be removed due to compatability.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#WildcardFilter(java.lang.String)">WildcardFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Construct a new case-sensitive wildcard filter for a single wildcard.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#WildcardFilter(java.lang.String[])">WildcardFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Construct a new case-sensitive wildcard filter for an array of wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#WildcardFilter(java.util.List)">WildcardFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Construct a new case-sensitive wildcard filter for a list of wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#wildcardMatch(java.lang.String, java.lang.String)">wildcardMatch(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks a filename to see if it matches the specified wildcard matcher,
+ always testing case-sensitive.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#wildcardMatch(java.lang.String, java.lang.String, org.apache.commons.io.IOCase)">wildcardMatch(String, String, IOCase)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks a filename to see if it matches the specified wildcard matcher
+ allowing control over case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#wildcardMatchOnSystem(java.lang.String, java.lang.String)">wildcardMatchOnSystem(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks a filename to see if it matches the specified wildcard matcher
+ using the case rules of the system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence)">write(File, CharSequence)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.nio.charset.Charset)"><code>FileUtils.write(File, CharSequence, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, boolean)">write(File, CharSequence, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.nio.charset.Charset, boolean)"><code>FileUtils.write(File, CharSequence, Charset, boolean)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.nio.charset.Charset)">write(File, CharSequence, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a CharSequence to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.lang.String)">write(File, CharSequence, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a CharSequence to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.nio.charset.Charset, boolean)">write(File, CharSequence, Charset, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a CharSequence to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.lang.String, boolean)">write(File, CharSequence, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a CharSequence to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.OutputStream)">write(byte[], OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes bytes from a <code>byte[]</code> to an <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.Writer)">write(byte[], Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.Writer, java.nio.charset.Charset)"><code>IOUtils.write(byte[], Writer, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.Writer, java.nio.charset.Charset)">write(byte[], Writer, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes bytes from a <code>byte[]</code> to chars on a <code>Writer</code>
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.Writer, java.lang.String)">write(byte[], Writer, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes bytes from a <code>byte[]</code> to chars on a <code>Writer</code>
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.Writer)">write(char[], Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>char[]</code> to a <code>Writer</code>
+ using the default character encoding of the platform.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.OutputStream)">write(char[], OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.write(char[], OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.OutputStream, java.nio.charset.Charset)">write(char[], OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>char[]</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.OutputStream, java.lang.String)">write(char[], OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>char[]</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.Writer)">write(CharSequence, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>CharSequence</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.OutputStream)">write(CharSequence, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.write(CharSequence, OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.OutputStream, java.nio.charset.Charset)">write(CharSequence, OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>CharSequence</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.OutputStream, java.lang.String)">write(CharSequence, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>CharSequence</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.Writer)">write(String, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>String</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.OutputStream)">write(String, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.write(String, OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.OutputStream, java.nio.charset.Charset)">write(String, OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>String</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.OutputStream, java.lang.String)">write(String, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>String</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.StringBuffer, java.io.Writer)">write(StringBuffer, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>replaced by write(CharSequence, Writer)</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.StringBuffer, java.io.OutputStream)">write(StringBuffer, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>replaced by write(CharSequence, OutputStream)</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.StringBuffer, java.io.OutputStream, java.lang.String)">write(StringBuffer, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>replaced by write(CharSequence, OutputStream, String)</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Write the bytes to byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Write a byte to byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#write(java.io.InputStream)">write(InputStream)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Writes the entire contents of the specified input stream to this
+ byte stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ClosedOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output">ClosedOutputStream</a></dt>
+<dd>
+<div class="block">Throws an <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a> to indicate that the stream is closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>
+<div class="block">Writes byte to stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write a character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(char[])">write(char[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write the characters from an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write the specified characters from an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write the characters from a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(java.lang.String, int, int)">write(String, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write the specified characters from a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write a character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(char[])">write(char[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write the characters from an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write the specified characters from an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write the characters from a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(java.lang.String, int, int)">write(String, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write the specified characters from a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(char[])">write(char[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(java.lang.String, int, int)">write(String, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(byte[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(byte[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(char[])">write(char[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(char[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(char[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(String)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(java.lang.String, int, int)">write(String, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(String)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Write a String to the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Write a portion of a character array to the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Write the bytes to both streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Write the specified bytes to both streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Write a byte to both streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Writes the specified byte to this output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Writes <code>b.length</code> bytes from the specified byte array to this
+ output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Writes <code>len</code> bytes from the specified byte array starting at
+ offset <code>off</code> to this output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Write bytes from the specified byte array to the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Write bytes from the specified byte array to the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Write a single byte to the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Write the characters to the underlying writer, detecing encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeByteArrayToFile(java.io.File, byte[])">writeByteArrayToFile(File, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a byte array to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeByteArrayToFile(java.io.File, byte[], boolean)">writeByteArrayToFile(File, byte[], boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a byte array to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeByteArrayToFile(java.io.File, byte[], int, int)">writeByteArrayToFile(File, byte[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes <code>len</code> bytes from the specified byte array starting
+ at offset <code>off</code> to a file, creating the file if it does
+ not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeByteArrayToFile(java.io.File, byte[], int, int, boolean)">writeByteArrayToFile(File, byte[], int, int, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes <code>len</code> bytes from the specified byte array starting
+ at offset <code>off</code> to a file, creating the file if it does
+ not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.lang.String, java.util.Collection)">writeLines(File, String, Collection&lt;?&gt;)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.lang.String, java.util.Collection, boolean)">writeLines(File, String, Collection&lt;?&gt;, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line, optionally appending.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.util.Collection)">writeLines(File, Collection&lt;?&gt;)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.util.Collection, boolean)">writeLines(File, Collection&lt;?&gt;, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.lang.String, java.util.Collection, java.lang.String)">writeLines(File, String, Collection&lt;?&gt;, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.lang.String, java.util.Collection, java.lang.String, boolean)">writeLines(File, String, Collection&lt;?&gt;, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.util.Collection, java.lang.String)">writeLines(File, Collection&lt;?&gt;, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.util.Collection, java.lang.String, boolean)">writeLines(File, Collection&lt;?&gt;, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.OutputStream)">writeLines(Collection&lt;?&gt;, String, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.writeLines(Collection, String, OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.OutputStream, java.nio.charset.Charset)">writeLines(Collection&lt;?&gt;, String, OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ an <code>OutputStream</code> line by line, using the specified character
+ encoding and the specified line ending.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.OutputStream, java.lang.String)">writeLines(Collection&lt;?&gt;, String, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ an <code>OutputStream</code> line by line, using the specified character
+ encoding and the specified line ending.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.Writer)">writeLines(Collection&lt;?&gt;, String, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ a <code>Writer</code> line by line, using the specified line ending.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">WriterOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io"><code>OutputStream</code></a> implementation that transforms a byte stream to a
+ character stream using a specified charset encoding and writes the resulting
+ stream to a <a href="http://download.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.CharsetDecoder)">WriterOutputStream(Writer, CharsetDecoder)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a> with a default output buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.CharsetDecoder, int, boolean)">WriterOutputStream(Writer, CharsetDecoder, int, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.Charset, int, boolean)">WriterOutputStream(Writer, Charset, int, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.Charset)">WriterOutputStream(Writer, Charset)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a> with a default output buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.lang.String, int, boolean)">WriterOutputStream(Writer, String, int, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.lang.String)">WriterOutputStream(Writer, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a> with a default output buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer)">WriterOutputStream(Writer)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.Charset)"><code>WriterOutputStream.WriterOutputStream(Writer, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.nio.charset.Charset)">writeStringToFile(File, String, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a String to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.lang.String)">writeStringToFile(File, String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a String to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.nio.charset.Charset, boolean)">writeStringToFile(File, String, Charset, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a String to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.lang.String, boolean)">writeStringToFile(File, String, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a String to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String)">writeStringToFile(File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.nio.charset.Charset)"><code>FileUtils.writeStringToFile(File, String, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, boolean)">writeStringToFile(File, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.nio.charset.Charset, boolean)"><code>FileUtils.writeStringToFile(File, String, Charset, boolean)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedDouble(byte[], int, double)">writeSwappedDouble(byte[], int, double)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "double" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedDouble(java.io.OutputStream, double)">writeSwappedDouble(OutputStream, double)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "double" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedFloat(byte[], int, float)">writeSwappedFloat(byte[], int, float)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "float" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedFloat(java.io.OutputStream, float)">writeSwappedFloat(OutputStream, float)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "float" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedInteger(byte[], int, int)">writeSwappedInteger(byte[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "int" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedInteger(java.io.OutputStream, int)">writeSwappedInteger(OutputStream, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "int" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedLong(byte[], int, long)">writeSwappedLong(byte[], int, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "long" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedLong(java.io.OutputStream, long)">writeSwappedLong(OutputStream, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "long" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedShort(byte[], int, short)">writeSwappedShort(byte[], int, short)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "short" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedShort(java.io.OutputStream, short)">writeSwappedShort(OutputStream, short)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "short" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#writeTo(java.io.OutputStream)">writeTo(OutputStream)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Writes the entire contents of this byte stream to the
+ specified output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#writeTo(java.io.OutputStream)">writeTo(OutputStream)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Writes the data from this output stream to the specified output stream,
+ after it has been closed.</div>
+</dd>
+</dl>
+<a name="_X_">
+<!--   -->
+</a>
+<h2 class="title">X</h2>
+<dl>
+<dt><a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input"><span class="strong">XmlStreamReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Character stream that handles all the necessary Voodo to figure out the
+ charset encoding of the XML document within the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.File)">XmlStreamReader(File)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader for a File.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream)">XmlStreamReader(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader for a raw InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, boolean)">XmlStreamReader(InputStream, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader for a raw InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, boolean, java.lang.String)">XmlStreamReader(InputStream, boolean, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader for a raw InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.net.URL)">XmlStreamReader(URL)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using the InputStream of a URL.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.net.URLConnection, java.lang.String)">XmlStreamReader(URLConnection, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using the InputStream of a URLConnection.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, java.lang.String)">XmlStreamReader(InputStream, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using an InputStream an the associated content-type
+ header.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, java.lang.String, boolean, java.lang.String)">XmlStreamReader(InputStream, String, boolean, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using an InputStream an the associated content-type
+ header.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, java.lang.String, boolean)">XmlStreamReader(InputStream, String, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using an InputStream an the associated content-type
+ header.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input"><span class="strong">XmlStreamReaderException</span></a> - Exception in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">The XmlStreamReaderException is thrown by the XmlStreamReader constructors if
+ the charset encoding can not be determined according to the XML 1.0
+ specification and RFC 3023.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#XmlStreamReaderException(java.lang.String, java.lang.String, java.lang.String, java.lang.String)">XmlStreamReaderException(String, String, String, String)</a></span> - Constructor for exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Creates an exception instance if the charset encoding could not be
+ determined.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#XmlStreamReaderException(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)">XmlStreamReaderException(String, String, String, String, String, String)</a></span> - Constructor for exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Creates an exception instance if the charset encoding could not be
+ determined.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output"><span class="strong">XmlStreamWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Character stream that handles all the necessary Voodo to figure out the
+ charset encoding of the XML document written to the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#XmlStreamWriter(java.io.OutputStream)">XmlStreamWriter(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Construct an new XML stream writer for the specified output stream
+ with a default encoding of UTF-8.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#XmlStreamWriter(java.io.OutputStream, java.lang.String)">XmlStreamWriter(OutputStream, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Construct an new XML stream writer for the specified output stream
+ with the specified default encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#XmlStreamWriter(java.io.File)">XmlStreamWriter(File)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Construct an new XML stream writer for the specified file
+ with a default encoding of UTF-8.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#XmlStreamWriter(java.io.File, java.lang.String)">XmlStreamWriter(File, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Construct an new XML stream writer for the specified file
+ with the specified default encoding.</div>
+</dd>
+</dl>
+<a href="#_A_">A</a>&nbsp;<a href="#_B_">B</a>&nbsp;<a href="#_C_">C</a>&nbsp;<a href="#_D_">D</a>&nbsp;<a href="#_E_">E</a>&nbsp;<a href="#_F_">F</a>&nbsp;<a href="#_G_">G</a>&nbsp;<a href="#_H_">H</a>&nbsp;<a href="#_I_">I</a>&nbsp;<a href="#_L_">L</a>&nbsp;<a href="#_M_">M</a>&nbsp;<a href="#_N_">N</a>&nbsp;<a href="#_O_">O</a>&nbsp;<a href="#_P_">P</a>&nbsp;<a href="#_R_">R</a>&nbsp;<a href="#_S_">S</a>&nbsp;<a href="#_T_">T</a>&nbsp;<a href="#_U_">U</a>&nbsp;<a href="#_V_">V</a>&nbsp;<a href="#_W_">W</a>&nbsp;<a href="#_X_">X</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="./overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="./overview-tree.html">Tree</a></li>
+<li><a href="./deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="./help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="./allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2002-2013 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
+</body>
+</html>
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/test/resources/appliedAL20/good/aal20good1.txt b/trunk/apache-rat-core/src/test/resources/appliedAL20/good/aal20good1.txt
new file mode 100644
index 0000000..0e0f322
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/appliedAL20/good/aal20good1.txt
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2012-2013 FooBar. All Rights Reserved.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the \"License\");
+ *  you may not use this file except in compliance with the License.
+ *
+ *  You may obtain a copy of the License at
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an \"AS IS\" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */ 
diff --git a/trunk/apache-rat-core/src/test/resources/artifacts/dummy.tar.gz b/trunk/apache-rat-core/src/test/resources/artifacts/dummy.tar.gz
new file mode 100644
index 0000000..3354fb7
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/artifacts/dummy.tar.gz
Binary files differ
diff --git a/trunk/apache-rat-core/src/test/resources/binaries/Image-png.not b/trunk/apache-rat-core/src/test/resources/binaries/Image-png.not
new file mode 100644
index 0000000..10577d4
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/binaries/Image-png.not
Binary files differ
diff --git a/trunk/apache-rat-core/src/test/resources/binaries/UTF16_with_signature.xml b/trunk/apache-rat-core/src/test/resources/binaries/UTF16_with_signature.xml
new file mode 100644
index 0000000..9e9104e
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/binaries/UTF16_with_signature.xml
Binary files differ
diff --git a/trunk/apache-rat-core/src/test/resources/binaries/UTF8_with_signature.xml b/trunk/apache-rat-core/src/test/resources/binaries/UTF8_with_signature.xml
new file mode 100644
index 0000000..b82c0ee
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/binaries/UTF8_with_signature.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    
+        <!--
+     ***************************************************************
+     * Licensed to the Apache Software Foundation (ASF) under one
+     * or more contributor license agreements.  See the NOTICE file
+     * distributed with this work for additional information
+     * regarding copyright ownership.  The ASF licenses this file
+     * to you under the Apache License, Version 2.0 (the
+     * "License"); you may not use this file except in compliance
+     * with the License.  You may obtain a copy of the License at
+         *
+     *   http://www.apache.org/licenses/LICENSE-2.0
+     * 
+     * Unless required by applicable law or agreed to in writing,
+     * software distributed under the License is distributed on an
+     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+     * KIND, either express or implied.  See the License for the
+     * specific language governing permissions and limitations
+     * under the License.
+     ***************************************************************
+   -->
+
+
+<xmlRoot>
+<descrition>
+The file encoding is UTF-8 with signature. (Special chars: äöü)
+</descrition>
+</xmlRoot>
diff --git a/trunk/apache-rat-core/src/test/resources/elements/ILoggerFactory.java b/trunk/apache-rat-core/src/test/resources/elements/ILoggerFactory.java
new file mode 100644
index 0000000..9b259f9
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/ILoggerFactory.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2004-2011 QOS.ch
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free  of charge, to any person obtaining
+ * a  copy  of this  software  and  associated  documentation files  (the
+ * "Software"), to  deal in  the Software without  restriction, including
+ * without limitation  the rights to  use, copy, modify,  merge, publish,
+ * distribute,  sublicense, and/or sell  copies of  the Software,  and to
+ * permit persons to whom the Software  is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The  above  copyright  notice  and  this permission  notice  shall  be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
+ * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+ * MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+package org.slf4j;
+
+
+/**
+ * <code>ILoggerFactory</code> instances manufacture {@link Logger}
+ * instances by name.
+ * 
+ * <p>Most users retrieve {@link Logger} instances through the static
+ * {@link LoggerFactory#getLogger(String)} method. An instance of of this
+ * interface is bound internally with {@link LoggerFactory} class at 
+ * compile time. 
+ * 
+ * @author Ceki G&uuml;lc&uuml;
+ */
+public interface ILoggerFactory {
+  
+  /**
+   * Return an appropriate {@link Logger} instance as specified by the
+   * <code>name</code> parameter.
+   * 
+   * <p>If the name parameter is equal to {@link Logger#ROOT_LOGGER_NAME}, that is 
+   * the string value "ROOT" (case insensitive), then the root logger of the 
+   * underlying logging system is returned.
+   * 
+   * <p>Null-valued name arguments are considered invalid.
+   *
+   * <p>Certain extremely simple logging systems, e.g. NOP, may always
+   * return the same logger instance regardless of the requested name.
+   * 
+   * @param name the name of the Logger to return
+   */
+  public Logger getLogger(String name);
+}
diff --git a/trunk/apache-rat-core/src/test/resources/elements/Image.png b/trunk/apache-rat-core/src/test/resources/elements/Image.png
new file mode 100644
index 0000000..ed8f507
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/Image.png
Binary files differ
diff --git a/trunk/apache-rat-core/src/test/resources/elements/LICENSE b/trunk/apache-rat-core/src/test/resources/elements/LICENSE
new file mode 100644
index 0000000..7a4a3ea
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/test/resources/elements/NOTICE b/trunk/apache-rat-core/src/test/resources/elements/NOTICE
new file mode 100644
index 0000000..967464b
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/NOTICE
@@ -0,0 +1,7 @@
+=========================================================================
+==  NOTICE file corresponding to section 4(d) of the Apache License,   ==
+==  Version 2.0.                                                       ==
+=========================================================================
+
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/test/resources/elements/Source.java b/trunk/apache-rat-core/src/test/resources/elements/Source.java
new file mode 100644
index 0000000..b14d93e
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/Source.java
@@ -0,0 +1,9 @@
+package elements;
+
+/*
+ * This file does intentionally *NOT* contain an AL license header,
+ * because it is used in the test suite.
+ */
+public class Source {
+
+}
diff --git a/trunk/apache-rat-core/src/test/resources/elements/Text.txt b/trunk/apache-rat-core/src/test/resources/elements/Text.txt
new file mode 100644
index 0000000..2eef8cb
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/Text.txt
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+            
diff --git a/trunk/apache-rat-core/src/test/resources/elements/Xml.xml b/trunk/apache-rat-core/src/test/resources/elements/Xml.xml
new file mode 100644
index 0000000..76138fc
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/Xml.xml
@@ -0,0 +1,20 @@
+<?xml version='1.0'?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one   *
+ or more contributor license agreements.  See the NOTICE file *
+ distributed with this work for additional information        *
+ regarding copyright ownership.  The ASF licenses this file   *
+ to you under the Apache License, Version 2.0 (the            *
+ "License"); you may not use this file except in compliance   *
+ with the License.  You may obtain a copy of the License at   *
+                                                              *
+   http://www.apache.org/licenses/LICENSE-2.0                 *
+                                                              *
+ Unless required by applicable law or agreed to in writing,   *
+ software distributed under the License is distributed on an  *
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ KIND, either express or implied.  See the License for the    *
+ specific language governing permissions and limitations      *
+ under the License.                                           *
+-->
+<document/>
diff --git a/trunk/apache-rat-core/src/test/resources/elements/buildr.rb b/trunk/apache-rat-core/src/test/resources/elements/buildr.rb
new file mode 100644
index 0000000..00e4e8e
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/buildr.rb
@@ -0,0 +1,44 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with this
+# work for additional information regarding copyright ownership.  The ASF
+# licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+unless defined?(Buildr::VERSION)
+  require 'buildr/version'
+end
+
+require 'buildr/core'
+require 'buildr/packaging'
+require 'buildr/java'
+require 'buildr/ide'
+require 'buildr/shell'
+require 'buildr/run'
+
+# Methods defined in Buildr are both instance methods (e.g. when included in Project)
+# and class methods when invoked like Buildr.artifacts().
+module Buildr ; extend self ; end
+
+# The Buildfile object (self) has access to all the Buildr methods and constants.
+class << self ; include Buildr ; end
+
+# All modules defined under Buildr::* can be referenced without Buildr:: prefix
+# unless a conflict exists (e.g.  Buildr::RSpec vs ::RSpec)
+class Object #:nodoc:
+  Buildr.constants.each do |name|
+    const = Buildr.const_get(name)
+    if const.is_a?(Module)
+      const_set name, const unless const_defined?(name)
+    end
+  end
+end
+
diff --git a/trunk/apache-rat-core/src/test/resources/elements/dummy.jar b/trunk/apache-rat-core/src/test/resources/elements/dummy.jar
new file mode 100644
index 0000000..ccbf9f3
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/dummy.jar
Binary files differ
diff --git a/trunk/apache-rat-core/src/test/resources/elements/sub/Empty.txt b/trunk/apache-rat-core/src/test/resources/elements/sub/Empty.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/elements/sub/Empty.txt
@@ -0,0 +1 @@
+
diff --git a/trunk/apache-rat-core/src/test/resources/javadocs/ArchiveElement.html b/trunk/apache-rat-core/src/test/resources/javadocs/ArchiveElement.html
new file mode 100644
index 0000000..d86f968
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/javadocs/ArchiveElement.html
@@ -0,0 +1,417 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_08) on Sun Oct 01 15:23:55 GMT 2006 -->
+<TITLE>
+ArchiveElement
+</TITLE>
+
+<META NAME="keywords" CONTENT="rat.ArchiveElement class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ArchiveElement";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../rat/DirectoryLastComparator.html" title="class in rat"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?rat/ArchiveElement.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ArchiveElement.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+rat</FONT>
+<BR>
+Class ArchiveElement</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>rat.ArchiveElement</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ArchiveElement</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;java.io.File</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../rat/ArchiveElement.html#file">file</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../rat/ArchiveElement.html#name">name</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../rat/ArchiveElement.html#ArchiveElement(java.io.File)">ArchiveElement</A></B>(java.io.File&nbsp;file)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../rat/ArchiveElement.html#accept(rat.IElementVisitor)">accept</A></B>(rat.IElementVisitor&nbsp;visitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../rat/ArchiveElement.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object&nbsp;subject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../rat/ArchiveElement.html#getName()">getName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../rat/ArchiveElement.html#getPath()">getPath</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;java.io.Reader</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../rat/ArchiveElement.html#getReader()">getReader</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../rat/ArchiveElement.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="file"><!-- --></A><H3>
+file</H3>
+<PRE>
+protected final java.io.File <B>file</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="name"><!-- --></A><H3>
+name</H3>
+<PRE>
+protected final java.lang.String <B>name</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ArchiveElement(java.io.File)"><!-- --></A><H3>
+ArchiveElement</H3>
+<PRE>
+public <B>ArchiveElement</B>(java.io.File&nbsp;file)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="accept(rat.IElementVisitor)"><!-- --></A><H3>
+accept</H3>
+<PRE>
+public void <B>accept</B>(rat.IElementVisitor&nbsp;visitor)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getName()"><!-- --></A><H3>
+getName</H3>
+<PRE>
+public final java.lang.String <B>getName</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPath()"><!-- --></A><H3>
+getPath</H3>
+<PRE>
+public final java.lang.String <B>getPath</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getReader()"><!-- --></A><H3>
+getReader</H3>
+<PRE>
+protected final java.io.Reader <B>getReader</B>()
+                                  throws java.io.IOException</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object&nbsp;subject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../rat/DirectoryLastComparator.html" title="class in rat"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?rat/ArchiveElement.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ArchiveElement.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/trunk/apache-rat-core/src/test/resources/javadocs/index.html b/trunk/apache-rat-core/src/test/resources/javadocs/index.html
new file mode 100644
index 0000000..3cd09f3
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/javadocs/index.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Sun Oct 01 15:23:59 GMT 2006-->
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+<SCRIPT type="text/javascript">
+    targetPage = "" + window.location.search;
+    if (targetPage != "" && targetPage != "undefined")
+       targetPage = targetPage.substring(1);
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+</HEAD>
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
+<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</FRAMESET>
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/trunk/apache-rat-core/src/test/resources/javadocs/notjavadoc.html b/trunk/apache-rat-core/src/test/resources/javadocs/notjavadoc.html
new file mode 100644
index 0000000..b67939c
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/javadocs/notjavadoc.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>This is not a java doc!</title>
+</head>
+<body>
+Not a java doc
+</body>
+</html>
diff --git a/trunk/apache-rat-core/src/test/resources/oasis/bad/oasisbad1.txt b/trunk/apache-rat-core/src/test/resources/oasis/bad/oasisbad1.txt
new file mode 100644
index 0000000..720dcc3
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/oasis/bad/oasisbad1.txt
@@ -0,0 +1,6 @@
+CopyrightOASIS Open
+
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published,
+and distributed
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/test/resources/oasis/bad/oasisbad2.txt b/trunk/apache-rat-core/src/test/resources/oasis/bad/oasisbad2.txt
new file mode 100644
index 0000000..6a4a036
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/oasis/bad/oasisbad2.txt
@@ -0,0 +1,5553 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<!-- This file causes RAT 0.8 and 0.9 to run very slowly: see RAT-138 -->
+Copyright OASIS Open
+<head>
+<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-1">
+<title>Index (Commons IO 2.5-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="./stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Index (Commons IO 2.5-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="./overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="./overview-tree.html">Tree</a></li>
+<li><a href="./deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="./help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="./allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#_A_">A</a>&nbsp;<a href="#_B_">B</a>&nbsp;<a href="#_C_">C</a>&nbsp;<a href="#_D_">D</a>&nbsp;<a href="#_E_">E</a>&nbsp;<a href="#_F_">F</a>&nbsp;<a href="#_G_">G</a>&nbsp;<a href="#_H_">H</a>&nbsp;<a href="#_I_">I</a>&nbsp;<a href="#_L_">L</a>&nbsp;<a href="#_M_">M</a>&nbsp;<a href="#_N_">N</a>&nbsp;<a href="#_O_">O</a>&nbsp;<a href="#_P_">P</a>&nbsp;<a href="#_R_">R</a>&nbsp;<a href="#_S_">S</a>&nbsp;<a href="#_T_">T</a>&nbsp;<a href="#_U_">U</a>&nbsp;<a href="#_V_">V</a>&nbsp;<a href="#_W_">W</a>&nbsp;<a href="#_X_">X</a>&nbsp;<a name="_A_">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">AbstractFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">An abstract class which implements the Java FileFilter and FilenameFilter 
+ interfaces via the IOFileFilter interface.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html#AbstractFileFilter()">AbstractFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter">AbstractFileFilter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter">AbstractFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter">AbstractFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the last modification of the file matches cutoff
+ favorably.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file can be read.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter">CanWriteFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file can be written to.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Checks the filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Checks the filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter">DirectoryFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file is a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter">EmptyFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file is empty.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Returns false.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Returns false.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFileFilter.html" title="class in org.apache.commons.io.filefilter">FileFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file is a file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter">HiddenFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the file is hidden.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/IOFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter">IOFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/IOFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter">IOFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Accepts the provided file if the file contains the file filter's magic
+ number at the specified offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NotFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter">NotFileFilter</a></dt>
+<dd>
+<div class="block">Returns the logical NOT of the underlying filter's return value for the same File.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NotFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter">NotFileFilter</a></dt>
+<dd>
+<div class="block">Returns the logical NOT of the underlying filter's return value for the same arguments.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the File should be accepted by this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename starts with the prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename starts with the prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches one of the regular expressions.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter">SizeFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the size of the file is favorable.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename ends with the suffix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename ends with the suffix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Returns true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Returns true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches one of the wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Checks to see if the filename matches one of the wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#accept(java.io.File, java.lang.String)">accept(File, String)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Checks to see if the filename matches one of the wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#accept(java.io.File)">accept(File)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Checks to see if the filename matches one of the wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#addFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">addFileFilter(IOFileFilter)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Adds the specified file filter to the list of file filters at the end of
+ the list.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html#addFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">addFileFilter(IOFileFilter)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter">ConditionalFileFilter</a></dt>
+<dd>
+<div class="block">Adds the specified file filter to the list of file filters at the end of
+ the list.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#addFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">addFileFilter(IOFileFilter)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Adds the specified file filter to the list of file filters at the end of
+ the list.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#addListener(org.apache.commons.io.monitor.FileAlterationListener)">addListener(FileAlterationListener)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Add a file system listener.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#addObserver(org.apache.commons.io.monitor.FileAlterationObserver)">addObserver(FileAlterationObserver)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Add a file system observer to this monitor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/AutoCloseInputStream.html#afterRead(int)">afterRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input">AutoCloseInputStream</a></dt>
+<dd>
+<div class="block">Automatically closes the stream if the end of stream was reached.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#afterRead(int)">afterRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Adds the number of read bytes to the count.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#afterRead(int)">afterRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invoked by the read methods after the proxied call has returned
+ successfully.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#afterRead(int)">afterRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invoked by the read methods after the proxied call has returned
+ successfully.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#afterWrite(int)">afterWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invoked by the write methods after the proxied call has returned
+ successfully.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#afterWrite(int)">afterWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invoked by the write methods after the proxied call has returned
+ successfully.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">AgeFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files based on a cutoff time, can filter either newer
+ files or files equal to or older.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(long)">AgeFileFilter(long)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files equal to or older than
+ a certain cutoff</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(long, boolean)">AgeFileFilter(long, boolean)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files on any one side
+ of a certain cutoff.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(java.util.Date)">AgeFileFilter(Date)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files older than (at or before)
+ a certain cutoff date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(java.util.Date, boolean)">AgeFileFilter(Date, boolean)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files on any one side
+ of a certain cutoff date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(java.io.File)">AgeFileFilter(File)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files older than (at or before)
+ a certain File (whose last modification time will be used as reference).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#AgeFileFilter(java.io.File, boolean)">AgeFileFilter(File, boolean)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new age file filter for files on any one side
+ of a certain File (whose last modification time will be used as
+ reference).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(long)">ageFileFilter(long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the file was last modified after
+ the specified cutoff time.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(long, boolean)">ageFileFilter(long, boolean)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that filters files based on a cutoff time.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(java.util.Date)">ageFileFilter(Date)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the file was last modified after
+ the specified cutoff date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(java.util.Date, boolean)">ageFileFilter(Date, boolean)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that filters files based on a cutoff date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(java.io.File)">ageFileFilter(File)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the file was last modified after
+ the specified reference file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#ageFileFilter(java.io.File, boolean)">ageFileFilter(File, boolean)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that filters files based on a cutoff reference file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#and(org.apache.commons.io.filefilter.IOFileFilter...)">and(IOFileFilter...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that ANDs the specified filters.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">AndFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">A <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileFilter.html?is-external=true" title="class or interface in java.io"><code>FileFilter</code></a> providing conditional AND logic across a list of
+ file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#AndFileFilter()">AndFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new instance of <code>AndFileFilter</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#AndFileFilter(java.util.List)">AndFileFilter(List&lt;IOFileFilter&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new instance of <code>AndFileFilter</code>
+ with the specified list of filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#AndFileFilter(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">AndFileFilter(IOFileFilter, IOFileFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new file filter that ANDs the result of two other filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#andFileFilter(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">andFileFilter(IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>use <a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#and(org.apache.commons.io.filefilter.IOFileFilter...)"><code>FileFilterUtils.and(IOFileFilter...)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#append(char)">append(char)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#append(java.lang.CharSequence, int, int)">append(CharSequence, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#append(java.lang.CharSequence)">append(CharSequence)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#append(char)">append(char)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>append(char)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#append(java.lang.CharSequence, int, int)">append(CharSequence, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>append(CharSequence, int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#append(java.lang.CharSequence)">append(CharSequence)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>append(CharSequence)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#append(char)">append(char)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Append a single character to this Writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#append(java.lang.CharSequence)">append(CharSequence)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Append a character sequence to this Writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#append(java.lang.CharSequence, int, int)">append(CharSequence, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Append a portion of a character sequence to the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#asBufferedInputStream(java.io.InputStream)">asBufferedInputStream(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given InputStream if it is already a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedInputStream.html?is-external=true" title="class or interface in java.io"><code>BufferedInputStream</code></a>, otherwise creates a BufferedInputStream from the given
+ InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#asBufferedOutputStream(java.io.OutputStream)">asBufferedOutputStream(OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given OutputStream if it is already a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedOutputStream.html?is-external=true" title="class or interface in java.io"><code>BufferedOutputStream</code></a>, otherwise creates a BufferedOutputStream from the given
+ OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#asBufferedReader(java.io.Reader)">asBufferedReader(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given reader if it is already a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedReader.html?is-external=true" title="class or interface in java.io"><code>BufferedReader</code></a>, otherwise creates a BufferedReader from the given
+ reader.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#asBufferedWriter(java.io.Writer)">asBufferedWriter(Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given Writer if it is already a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedWriter.html?is-external=true" title="class or interface in java.io"><code>BufferedWriter</code></a>, otherwise creates a BufferedWriter from the given
+ Writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#asFileFilter(java.io.FileFilter)">asFileFilter(FileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns an <code>IOFileFilter</code> that wraps the
+ <code>FileFilter</code> instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#asFileFilter(java.io.FilenameFilter)">asFileFilter(FilenameFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns an <code>IOFileFilter</code> that wraps the
+ <code>FilenameFilter</code> instance.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">AutoCloseInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Proxy stream that closes and discards the underlying stream as soon as the
+ end of input has been reached or when the stream is explicitly closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/AutoCloseInputStream.html#AutoCloseInputStream(java.io.InputStream)">AutoCloseInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input">AutoCloseInputStream</a></dt>
+<dd>
+<div class="block">Creates an automatically closing proxy for the given input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Return an estimate of the number of bytes remaining in the byte stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Return the number of bytes that can be read.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#available()">available()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>available()</code> method.</div>
+</dd>
+</dl>
+<a name="_B_">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#beforeRead(int)">beforeRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invoked by the read methods before the call is proxied.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#beforeRead(int)">beforeRead(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invoked by the read methods before the call is proxied.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#beforeWrite(int)">beforeWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">Updates the count with the number of bytes that are being written.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#beforeWrite(int)">beforeWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invoked by the write methods before the call is proxied.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#beforeWrite(int)">beforeWrite(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invoked by the write methods before the call is proxied.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/DemuxInputStream.html#bindStream(java.io.InputStream)">bindStream(InputStream)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input">DemuxInputStream</a></dt>
+<dd>
+<div class="block">Bind the specified stream to the current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#bindStream(java.io.OutputStream)">bindStream(OutputStream)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>
+<div class="block">Bind the specified stream to the current thread.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">BOMInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">This class is used to wrap a stream that includes an encoded <a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io"><code>ByteOrderMark</code></a> as its first bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#BOMInputStream(java.io.InputStream)">BOMInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new BOM InputStream that excludes a <a href="./org/apache/commons/io/ByteOrderMark.html#UTF_8"><code>ByteOrderMark.UTF_8</code></a> BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#BOMInputStream(java.io.InputStream, boolean)">BOMInputStream(InputStream, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new BOM InputStream that detects a a <a href="./org/apache/commons/io/ByteOrderMark.html#UTF_8"><code>ByteOrderMark.UTF_8</code></a> and optionally includes it.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#BOMInputStream(java.io.InputStream, org.apache.commons.io.ByteOrderMark...)">BOMInputStream(InputStream, ByteOrderMark...)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new BOM InputStream that excludes the specified BOMs.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#BOMInputStream(java.io.InputStream, boolean, org.apache.commons.io.ByteOrderMark...)">BOMInputStream(InputStream, boolean, ByteOrderMark...)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new BOM InputStream that detects the specified BOMs and optionally includes them.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">BoundedInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">This is a stream that will only supply bytes up to a certain length - if its
+ position goes above that, it will stop.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#BoundedInputStream(java.io.InputStream, long)">BoundedInputStream(InputStream, long)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Creates a new <code>BoundedInputStream</code> that wraps the given input
+ stream and limits it to a certain size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#BoundedInputStream(java.io.InputStream)">BoundedInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Creates a new <code>BoundedInputStream</code> that wraps the given input
+ stream and is unlimited.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#branch">branch</a></span> - Variable in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">the second OutputStream to write to</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">BrokenInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Broken input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#BrokenInputStream(java.io.IOException)">BrokenInputStream(IOException)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Creates a new stream that always throws the given exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#BrokenInputStream()">BrokenInputStream()</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Creates a new stream that always throws an <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a></div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">BrokenOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Broken output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#BrokenOutputStream(java.io.IOException)">BrokenOutputStream(IOException)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Creates a new stream that always throws the given exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#BrokenOutputStream()">BrokenOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Creates a new stream that always throws an <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a></div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">ByteArrayOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">This class implements an output stream in which the data is
+ written into a byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#ByteArrayOutputStream()">ByteArrayOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Creates a new byte array output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#ByteArrayOutputStream(int)">ByteArrayOutputStream(int)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Creates a new byte array output stream, with a buffer capacity of
+ the specified size, in bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#byteCountToDisplaySize(java.math.BigInteger)">byteCountToDisplaySize(BigInteger)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns a human-readable version of the file size, where the input represents a specific number of bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#byteCountToDisplaySize(long)">byteCountToDisplaySize(long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns a human-readable version of the file size, where the input represents a specific number of bytes.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io"><span class="strong">ByteOrderMark</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Byte Order Mark (BOM) representation - see <a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input"><code>BOMInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#ByteOrderMark(java.lang.String, int...)">ByteOrderMark(String, int...)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Construct a new BOM.</div>
+</dd>
+</dl>
+<a name="_C_">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#CAN_READ">CAN_READ</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>readable</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html#CAN_WRITE">CAN_WRITE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter">CanWriteFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>writable</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#CANNOT_READ">CANNOT_READ</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of not <i>readable</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html#CANNOT_WRITE">CANNOT_WRITE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter">CanWriteFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of not <i>writable</i> filter</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">CanReadFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that can be read.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#CanReadFileFilter()">CanReadFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">CanWriteFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that can be written to.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html#CanWriteFileFilter()">CanWriteFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanWriteFileFilter.html" title="class in org.apache.commons.io.filefilter">CanWriteFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">CharSequenceInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> implementation that can read from String, StringBuffer,
+ StringBuilder or CharBuffer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.nio.charset.Charset, int)">CharSequenceInputStream(CharSequence, Charset, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.lang.String, int)">CharSequenceInputStream(CharSequence, String, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Constructor, calls <a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.nio.charset.Charset, int)"><code>CharSequenceInputStream.CharSequenceInputStream(CharSequence, Charset, int)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.nio.charset.Charset)">CharSequenceInputStream(CharSequence, Charset)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Constructor, calls <a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.nio.charset.Charset, int)"><code>CharSequenceInputStream.CharSequenceInputStream(CharSequence, Charset, int)</code></a>
+ with a buffer size of 2048.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.lang.String)">CharSequenceInputStream(CharSequence, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>
+<div class="block">Constructor, calls <a href="./org/apache/commons/io/input/CharSequenceInputStream.html#CharSequenceInputStream(java.lang.CharSequence, java.lang.String, int)"><code>CharSequenceInputStream.CharSequenceInputStream(CharSequence, String, int)</code></a>
+ with a buffer size of 2048.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input"><span class="strong">CharSequenceReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> implementation that can read from String, StringBuffer,
+ StringBuilder or CharBuffer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#CharSequenceReader(java.lang.CharSequence)">CharSequenceReader(CharSequence)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Construct a new instance with the specified character sequence.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io"><span class="strong">Charsets</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Charsets required of every implementation of the Java platform.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#Charsets()">Charsets()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#checkAndNotify()">checkAndNotify()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Check whether the file and its chlidren have been created, modified or deleted.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkCompareTo(java.lang.String, java.lang.String)">checkCompareTo(String, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Compares two strings using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkEndsWith(java.lang.String, java.lang.String)">checkEndsWith(String, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Checks if one string ends with another using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkEquals(java.lang.String, java.lang.String)">checkEquals(String, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Compares two strings using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#checkIfCancelled(java.io.File, int, java.util.Collection)">checkIfCancelled(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Checks whether the walk has been cancelled by calling <a href="./org/apache/commons/io/DirectoryWalker.html#handleIsCancelled(java.io.File, int, java.util.Collection)"><code>DirectoryWalker.handleIsCancelled(java.io.File, int, java.util.Collection&lt;T&gt;)</code></a>,
+ throwing a <code>CancelException</code> if it has.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkIndexOf(java.lang.String, int, java.lang.String)">checkIndexOf(String, int, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Checks if one string contains another starting at a specific index using the
+ case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkRegionMatches(java.lang.String, int, java.lang.String)">checkRegionMatches(String, int, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Checks if one string contains another at a specific index using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#checkStartsWith(java.lang.String, java.lang.String)">checkStartsWith(String, String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Checks if one string starts with another using the case-sensitivity rule.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#checksum(java.io.File, java.util.zip.Checksum)">checksum(File, Checksum)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Computes the checksum of a file using the specified checksum object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#checksumCRC32(java.io.File)">checksumCRC32(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Computes the checksum of a file using the CRC32 checksum routine.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#checkThreshold(int)">checkThreshold(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Checks to see if writing the specified number of bytes would cause the
+ configured threshold to be exceeded.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">ClassLoaderObjectInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A special ObjectInputStream that loads a class based on a specified
+ <code>ClassLoader</code> rather than the system default.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html#ClassLoaderObjectInputStream(java.lang.ClassLoader, java.io.InputStream)">ClassLoaderObjectInputStream(ClassLoader, InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html" title="class in org.apache.commons.io.input">ClassLoaderObjectInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new ClassLoaderObjectInputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#cleanDirectory(java.io.File)">cleanDirectory(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Cleans a directory without deleting it.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/AutoCloseInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input">AutoCloseInputStream</a></dt>
+<dd>
+<div class="block">Closes the underlying input stream and replaces the reference to it
+ with a <a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input"><code>ClosedInputStream</code></a> instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method
+ if <a href="./org/apache/commons/io/input/BoundedInputStream.html#isPropagateClose()"><code>BoundedInputStream.isPropagateClose()</code></a> is <code>true</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Close resets the file back to the start and removes any marked position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CloseShieldInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CloseShieldInputStream.html" title="class in org.apache.commons.io.input">CloseShieldInputStream</a></dt>
+<dd>
+<div class="block">Replaces the underlying input stream with a <a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input"><code>ClosedInputStream</code></a>
+ sentinel.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/DemuxInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input">DemuxInputStream</a></dt>
+<dd>
+<div class="block">Closes stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Close this input stream - resets the internal state to
+ the initial values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Close this Reader - resets the internal state to
+ the initial values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Close the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Closes underlying resources.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Closes the proxied input stream and, if so configured, the associated
+ output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#close()">close()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Closes the XmlStreamReader stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#close(java.net.URLConnection)">close(URLConnection)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a URLConnection.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#close()">close()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Closes the underlying <code>Reader</code> quietly.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Closing a <tt>ByteArrayOutputStream</tt> has no effect.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CloseShieldOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CloseShieldOutputStream.html" title="class in org.apache.commons.io.output">CloseShieldOutputStream</a></dt>
+<dd>
+<div class="block">Replaces the underlying output stream with a <a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output"><code>ClosedOutputStream</code></a>
+ sentinel.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Closes underlying output stream, and mark this as closed</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>
+<div class="block">Closes stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Close the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Closes the file writer and deletes the lockfile (if possible).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>close()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Closing this writer has no effect.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Closes both output streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Closes this output stream and releases any system resources associated
+ with this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Close the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#close()">close()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Close the underlying writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClosedInputStream.html#CLOSED_INPUT_STREAM">CLOSED_INPUT_STREAM</a></span> - Static variable in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input">ClosedInputStream</a></dt>
+<dd>
+<div class="block">A singleton.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ClosedOutputStream.html#CLOSED_OUTPUT_STREAM">CLOSED_OUTPUT_STREAM</a></span> - Static variable in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output">ClosedOutputStream</a></dt>
+<dd>
+<div class="block">A singleton.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">ClosedInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Closed input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClosedInputStream.html#ClosedInputStream()">ClosedInputStream()</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input">ClosedInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">ClosedOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Closed output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ClosedOutputStream.html#ClosedOutputStream()">ClosedOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output">ClosedOutputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.Reader)">closeQuietly(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes an <code>Reader</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.Writer)">closeQuietly(Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes an <code>Writer</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.InputStream)">closeQuietly(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes an <code>InputStream</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.OutputStream)">closeQuietly(OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes an <code>OutputStream</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.io.Closeable)">closeQuietly(Closeable)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a <code>Closeable</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.net.Socket)">closeQuietly(Socket)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a <code>Socket</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.nio.channels.Selector)">closeQuietly(Selector)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a <code>Selector</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#closeQuietly(java.net.ServerSocket)">closeQuietly(ServerSocket)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Closes a <code>ServerSocket</code> unconditionally.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#closeQuietly(org.apache.commons.io.LineIterator)">closeQuietly(LineIterator)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Closes the iterator, handling null and ignoring exceptions.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/CloseShieldInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">CloseShieldInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Proxy stream that prevents the underlying input stream from being closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CloseShieldInputStream.html#CloseShieldInputStream(java.io.InputStream)">CloseShieldInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CloseShieldInputStream.html" title="class in org.apache.commons.io.input">CloseShieldInputStream</a></dt>
+<dd>
+<div class="block">Creates a proxy that shields the given input stream from being
+ closed.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/CloseShieldOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">CloseShieldOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Proxy stream that prevents the underlying output stream from being closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CloseShieldOutputStream.html#CloseShieldOutputStream(java.io.OutputStream)">CloseShieldOutputStream(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CloseShieldOutputStream.html" title="class in org.apache.commons.io.output">CloseShieldOutputStream</a></dt>
+<dd>
+<div class="block">Creates a proxy that shields the given output stream from being
+ closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator">CompositeFileComparator</a></dt>
+<dd>
+<div class="block">Compare the two files using delegate comparators.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator">DefaultFileComparator</a></dt>
+<dd>
+<div class="block">Compare the two files using the <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#compareTo(java.io.File)" title="class or interface in java.io"><code>File.compareTo(File)</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator">DirectoryFileComparator</a></dt>
+<dd>
+<div class="block">Compare the two files using the <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#isDirectory()" title="class or interface in java.io"><code>File.isDirectory()</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Compare the extensions of two files the specified case sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator">LastModifiedFileComparator</a></dt>
+<dd>
+<div class="block">Compare the last the last modified date/time of two files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Compare the names of two files with the specified case sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Compare the paths of two files the specified case sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#compare(java.io.File, java.io.File)">compare(File, File)</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Compare the length of two files.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">CompositeFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare two files using a set of delegate file <a href="http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util"><code>Comparator</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html#CompositeFileComparator(java.util.Comparator...)">CompositeFileComparator(Comparator&lt;File&gt;...)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator">CompositeFileComparator</a></dt>
+<dd>
+<div class="block">Create a composite comparator for the set of delegate comparators.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html#CompositeFileComparator(java.lang.Iterable)">CompositeFileComparator(Iterable&lt;Comparator&lt;File&gt;&gt;)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator">CompositeFileComparator</a></dt>
+<dd>
+<div class="block">Create a composite comparator for the set of delegate comparators.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#concat(java.lang.String, java.lang.String)">concat(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Concatenates a filename to a base path using normal command line style rules.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter"><span class="strong">ConditionalFileFilter</span></a> - Interface in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Defines operations for conditional file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#contentEquals(java.io.File, java.io.File)">contentEquals(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two files to determine if they are equal or not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#contentEquals(java.io.InputStream, java.io.InputStream)">contentEquals(InputStream, InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two Streams to determine if they are equal or
+ not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#contentEquals(java.io.Reader, java.io.Reader)">contentEquals(Reader, Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two Readers to determine if they are equal or
+ not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#contentEqualsIgnoreEOL(java.io.File, java.io.File, java.lang.String)">contentEqualsIgnoreEOL(File, File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two files to determine if they are equal or not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#contentEqualsIgnoreEOL(java.io.Reader, java.io.Reader)">contentEqualsIgnoreEOL(Reader, Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Compares the contents of two Readers to determine if they are equal or
+ not, ignoring EOL characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#convertFileCollectionToFileArray(java.util.Collection)">convertFileCollectionToFileArray(Collection&lt;File&gt;)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Converts a Collection containing java.io.File instanced into array
+ representation.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(byte[], java.io.OutputStream)">copy(byte[], OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy bytes from a <code>byte[]</code> to an <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(byte[], java.io.Writer)">copy(byte[], Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/CopyUtils.html#copy(byte[], java.io.Writer, java.lang.String)"><code>CopyUtils.copy(byte[], Writer, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(byte[], java.io.Writer, java.lang.String)">copy(byte[], Writer, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy and convert bytes from a <code>byte[]</code> to chars on a
+ <code>Writer</code>, using the specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.InputStream, java.io.OutputStream)">copy(InputStream, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy bytes from an <code>InputStream</code> to an
+ <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.Reader, java.io.Writer)">copy(Reader, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy chars from a <code>Reader</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.InputStream, java.io.Writer)">copy(InputStream, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.InputStream, java.io.Writer, java.lang.String)"><code>CopyUtils.copy(InputStream, Writer, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.InputStream, java.io.Writer, java.lang.String)">copy(InputStream, Writer, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy and convert bytes from an <code>InputStream</code> to chars on a
+ <code>Writer</code>, using the specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.Reader, java.io.OutputStream)">copy(Reader, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.Reader, java.io.OutputStream, java.lang.String)"><code>CopyUtils.copy(Reader, OutputStream, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.io.Reader, java.io.OutputStream, java.lang.String)">copy(Reader, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Serialize chars from a <code>Reader</code> to bytes on an
+ <code>OutputStream</code>, and flush the <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.lang.String, java.io.OutputStream)">copy(String, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/CopyUtils.html#copy(java.lang.String, java.io.OutputStream, java.lang.String)"><code>CopyUtils.copy(String, OutputStream, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.lang.String, java.io.OutputStream, java.lang.String)">copy(String, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Serialize chars from a <code>String</code> to bytes on an
+ <code>OutputStream</code>, and
+ flush the <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#copy(java.lang.String, java.io.Writer)">copy(String, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Copy chars from a <code>String</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.OutputStream)">copy(InputStream, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <code>InputStream</code> to an
+ <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.OutputStream, int)">copy(InputStream, OutputStream, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <code>InputStream</code> to an <code>OutputStream</code> using an internal buffer of the
+ given size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.Writer)">copy(InputStream, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.Writer, java.nio.charset.Charset)"><code>IOUtils.copy(InputStream, Writer, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.Writer, java.nio.charset.Charset)">copy(InputStream, Writer, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <code>InputStream</code> to chars on a
+ <code>Writer</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.InputStream, java.io.Writer, java.lang.String)">copy(InputStream, Writer, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <code>InputStream</code> to chars on a
+ <code>Writer</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.Writer)">copy(Reader, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a <code>Reader</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.OutputStream)">copy(Reader, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.copy(Reader, OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.OutputStream, java.nio.charset.Charset)">copy(Reader, OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a <code>Reader</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding, and
+ calling flush.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copy(java.io.Reader, java.io.OutputStream, java.lang.String)">copy(Reader, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a <code>Reader</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding, and
+ calling flush.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectory(java.io.File, java.io.File)">copyDirectory(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a whole directory to a new location preserving the file dates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectory(java.io.File, java.io.File, boolean)">copyDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a whole directory to a new location.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectory(java.io.File, java.io.File, java.io.FileFilter)">copyDirectory(File, File, FileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a filtered directory to a new location preserving the file dates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectory(java.io.File, java.io.File, java.io.FileFilter, boolean)">copyDirectory(File, File, FileFilter, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a filtered directory to a new location.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyDirectoryToDirectory(java.io.File, java.io.File)">copyDirectoryToDirectory(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a directory to within another directory preserving the file dates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFile(java.io.File, java.io.File)">copyFile(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a file to a new location preserving the file date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFile(java.io.File, java.io.File, boolean)">copyFile(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a file to a new location.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFile(java.io.File, java.io.OutputStream)">copyFile(File, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copy bytes from a <code>File</code> to an <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFileToDirectory(java.io.File, java.io.File)">copyFileToDirectory(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a file to a directory preserving the file date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyFileToDirectory(java.io.File, java.io.File, boolean)">copyFileToDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies a file to a directory optionally preserving the file date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyInputStreamToFile(java.io.InputStream, java.io.File)">copyInputStreamToFile(InputStream, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> <code>source</code> to a file
+ <code>destination</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.InputStream, java.io.OutputStream)">copyLarge(InputStream, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.InputStream, java.io.OutputStream, byte[])">copyLarge(InputStream, OutputStream, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.InputStream, java.io.OutputStream, long, long)">copyLarge(InputStream, OutputStream, long, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies some or all bytes from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>, optionally skipping input bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.InputStream, java.io.OutputStream, long, long, byte[])">copyLarge(InputStream, OutputStream, long, long, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies some or all bytes from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>, optionally skipping input bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.Reader, java.io.Writer)">copyLarge(Reader, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a large (over 2GB) <code>Reader</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.Reader, java.io.Writer, char[])">copyLarge(Reader, Writer, char[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies chars from a large (over 2GB) <code>Reader</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.Reader, java.io.Writer, long, long)">copyLarge(Reader, Writer, long, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies some or all chars from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>, optionally skipping input chars.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#copyLarge(java.io.Reader, java.io.Writer, long, long, char[])">copyLarge(Reader, Writer, long, long, char[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Copies some or all chars from a large (over 2GB) <code>InputStream</code> to an
+ <code>OutputStream</code>, optionally skipping input chars.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyToFile(java.io.InputStream, java.io.File)">copyToFile(InputStream, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from an <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> <code>source</code> to a file
+ <code>destination</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyURLToFile(java.net.URL, java.io.File)">copyURLToFile(URL, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from the URL <code>source</code> to a file
+ <code>destination</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#copyURLToFile(java.net.URL, java.io.File, int, int)">copyURLToFile(URL, File, int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Copies bytes from the URL <code>source</code> to a file
+ <code>destination</code>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io"><span class="strong">CopyUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use IOUtils. Will be removed in 2.0.
+  Methods renamed to IOUtils.write() or IOUtils.copy().
+  Null handling behaviour changed in IOUtils (null data does not
+  throw NullPointerException).</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/CopyUtils.html#CopyUtils()">CopyUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/CopyUtils.html" title="class in org.apache.commons.io">CopyUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">CountingInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A decorating input stream that counts the number of bytes that have passed
+ through the stream so far.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#CountingInputStream(java.io.InputStream)">CountingInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new CountingInputStream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">CountingOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">A decorating output stream that counts the number of bytes that have passed
+ through the stream so far.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#CountingOutputStream(java.io.OutputStream)">CountingOutputStream(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new CountingOutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, int)">create(File, TailerListener, long, boolean, int)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, boolean, int)">create(File, TailerListener, long, boolean, boolean, int)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean)">create(File, TailerListener, long, boolean)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file with default buffer size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, boolean)">create(File, TailerListener, long, boolean, boolean)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file with default buffer size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener, long)">create(File, TailerListener, long)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file, starting at the beginning of the file</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#create(java.io.File, org.apache.commons.io.input.TailerListener)">create(File, TailerListener)</a></span> - Static method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates and starts a Tailer for the given file, starting at the beginning of the file
+ with the default delay of 1.0s</div>
+</dd>
+</dl>
+<a name="_D_">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html#DEFAULT_COMPARATOR">DEFAULT_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator">DefaultFileComparator</a></dt>
+<dd>
+<div class="block">Singleton default comparator instance</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html#DEFAULT_REVERSE">DEFAULT_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator">DefaultFileComparator</a></dt>
+<dd>
+<div class="block">Singleton reverse default comparator instance</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">DefaultFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare two files using the <b>default</b> <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#compareTo(java.io.File)" title="class or interface in java.io"><code>File.compareTo(File)</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DefaultFileComparator.html#DefaultFileComparator()">DefaultFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DefaultFileComparator.html" title="class in org.apache.commons.io.comparator">DefaultFileComparator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">DeferredFileOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">An output stream which will retain data in memory until a specified
+ threshold is reached, and only then commit it to disk.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#DeferredFileOutputStream(int, java.io.File)">DeferredFileOutputStream(int, File)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Constructs an instance of this class which will trigger an event at the
+ specified threshold, and save data to a file beyond that point.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#DeferredFileOutputStream(int, java.lang.String, java.lang.String, java.io.File)">DeferredFileOutputStream(int, String, String, File)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Constructs an instance of this class which will trigger an event at the
+ specified threshold, and save data to a temporary file beyond that point.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">DelegateFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This class turns a Java FileFilter or FilenameFilter into an IO FileFilter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#DelegateFileFilter(java.io.FilenameFilter)">DelegateFileFilter(FilenameFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a delegate file filter around an existing FilenameFilter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#DelegateFileFilter(java.io.FileFilter)">DelegateFileFilter(FileFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a delegate file filter around an existing FileFilter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#delete(java.io.File)">delete(File)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Deletes the file object, which may be a file or a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#deleteDirectory(java.io.File)">deleteDirectory(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Deletes a directory recursively.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#deleteQuietly(java.io.File)">deleteQuietly(File)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Deletes the file object, which may be a file or a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#deleteQuietly(java.io.File)">deleteQuietly(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Deletes a file, never throwing an exception.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">DemuxInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Data written to this stream is forwarded to a stream that has been associated
+ with this thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/DemuxInputStream.html#DemuxInputStream()">DemuxInputStream()</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input">DemuxInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">DemuxOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Data written to this stream is forwarded to a stream that has been associated
+ with this thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#DemuxOutputStream()">DemuxOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#destroy()">destroy()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Final processing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#DIR_SEPARATOR">DIR_SEPARATOR</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The system directory separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#DIR_SEPARATOR_UNIX">DIR_SEPARATOR_UNIX</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The Unix directory separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#DIR_SEPARATOR_WINDOWS">DIR_SEPARATOR_WINDOWS</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The Windows directory separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html#DIRECTORY">DIRECTORY</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter">DirectoryFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of directory filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html#DIRECTORY_COMPARATOR">DIRECTORY_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator">DirectoryFileComparator</a></dt>
+<dd>
+<div class="block">Singleton default comparator instance</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html#DIRECTORY_REVERSE">DIRECTORY_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator">DirectoryFileComparator</a></dt>
+<dd>
+<div class="block">Singleton reverse default comparator instance</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#directoryContains(java.lang.String, java.lang.String)">directoryContains(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Determines whether the <code>parent</code> directory contains the <code>child</code> element (a file or directory).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#directoryContains(java.io.File, java.io.File)">directoryContains(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Determines whether the <code>parent</code> directory contains the <code>child</code> element (a file or directory).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">DirectoryFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare two files using the <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#isDirectory()" title="class or interface in java.io"><code>File.isDirectory()</code></a> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html#DirectoryFileComparator()">DirectoryFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/DirectoryFileComparator.html" title="class in org.apache.commons.io.comparator">DirectoryFileComparator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">DirectoryFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that are directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html#DirectoryFileFilter()">DirectoryFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter">DirectoryFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#directoryFileFilter()">directoryFileFilter()</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that checks if the file is a directory.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io"><span class="strong">DirectoryWalker</span></a>&lt;<a href="./org/apache/commons/io/DirectoryWalker.html" title="type parameter in DirectoryWalker">T</a>&gt; - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Abstract class that walks through a directory hierarchy and provides
+ subclasses with convenient hooks to add specific behaviour.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#DirectoryWalker()">DirectoryWalker()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Construct an instance with no filtering and unlimited <i>depth</i>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#DirectoryWalker(java.io.FileFilter, int)">DirectoryWalker(FileFilter, int)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Construct an instance with a filter and limit the <i>depth</i> navigated to.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#DirectoryWalker(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter, int)">DirectoryWalker(IOFileFilter, IOFileFilter, int)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Construct an instance with a directory and a file filter and an optional
+ limit on the <i>depth</i> navigated to.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io"><span class="strong">DirectoryWalker.CancelException</span></a> - Exception in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">CancelException is thrown in DirectoryWalker to cancel the current
+ processing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html#DirectoryWalker.CancelException(java.io.File, int)">DirectoryWalker.CancelException(File, int)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io">DirectoryWalker.CancelException</a></dt>
+<dd>
+<div class="block">Constructs a <code>CancelException</code> with
+ the file and depth when cancellation occurred.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html#DirectoryWalker.CancelException(java.lang.String, java.io.File, int)">DirectoryWalker.CancelException(String, File, int)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io">DirectoryWalker.CancelException</a></dt>
+<dd>
+<div class="block">Constructs a <code>CancelException</code> with
+ an appropriate message and the file and depth when
+ cancellation occurred.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#doDelete(java.io.File)">doDelete(File)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Actually deletes the file object, which may be a file or a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/HexDump.html#dump(byte[], long, java.io.OutputStream, int)">dump(byte[], long, OutputStream, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/HexDump.html" title="class in org.apache.commons.io">HexDump</a></dt>
+<dd>
+<div class="block">Dump an array of bytes to an OutputStream.</div>
+</dd>
+</dl>
+<a name="_E_">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html#EMPTY">EMPTY</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter">EmptyFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>empty</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#EMPTY_FILE_ARRAY">EMPTY_FILE_ARRAY</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">An empty array of type <code>File</code>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">EmptyFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts files or directories that are empty.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html#EmptyFileFilter()">EmptyFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter">EmptyFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#ENCODING_PATTERN">ENCODING_PATTERN</a></span> - Static variable in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io"><span class="strong">EndianUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Utility code for dealing with different endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#EndianUtils()">EndianUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/HexDump.html#EOL">EOL</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/HexDump.html" title="class in org.apache.commons.io">HexDump</a></dt>
+<dd>
+<div class="block">The line-separator (initializes to "line.separator" system property.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Indicates if this BOM's bytes equals another.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equals(java.lang.String, java.lang.String)">equals(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal exactly.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equals(java.lang.String, java.lang.String, boolean, org.apache.commons.io.IOCase)">equals(String, String, boolean, IOCase)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal, optionally normalizing and providing
+ control over the case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equalsNormalized(java.lang.String, java.lang.String)">equalsNormalized(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal after both have been normalized.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equalsNormalizedOnSystem(java.lang.String, java.lang.String)">equalsNormalizedOnSystem(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal after both have been normalized
+ and using the case rules of the system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#equalsOnSystem(java.lang.String, java.lang.String)">equalsOnSystem(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether two filenames are equal using the case rules of the system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#exitWhenFinished()">exitWhenFinished()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#exitWhenFinished()"><code>FileCleaningTracker.exitWhenFinished()</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#exitWhenFinished()">exitWhenFinished()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Call this method to cause the file cleaner thread to terminate when
+ there are no more objects being tracked for deletion.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_COMPARATOR">EXTENSION_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Case-sensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_INSENSITIVE_COMPARATOR">EXTENSION_INSENSITIVE_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Case-insensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_INSENSITIVE_REVERSE">EXTENSION_INSENSITIVE_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-insensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_REVERSE">EXTENSION_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-sensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#EXTENSION_SEPARATOR">EXTENSION_SEPARATOR</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">The extension separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#EXTENSION_SEPARATOR_STR">EXTENSION_SEPARATOR_STR</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">The extension separator String.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_SYSTEM_COMPARATOR">EXTENSION_SYSTEM_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">System sensitive extension comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#EXTENSION_SYSTEM_REVERSE">EXTENSION_SYSTEM_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Reverse system sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">ExtensionFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the file name <b>extensions</b> for order
+ (see <a href="./org/apache/commons/io/FilenameUtils.html#getExtension(java.lang.String)"><code>FilenameUtils.getExtension(String)</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#ExtensionFileComparator()">ExtensionFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Construct a case sensitive file extension comparator instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#ExtensionFileComparator(org.apache.commons.io.IOCase)">ExtensionFileComparator(IOCase)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file extension comparator instance with the specified case-sensitivity.</div>
+</dd>
+</dl>
+<a name="_F_">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#FALSE">FALSE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of false filter.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">FalseFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">A file filter that always returns false.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#FalseFileFilter()">FalseFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#falseFileFilter()">falseFileFilter()</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that always returns false.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFileFilter.html#FILE">FILE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFileFilter.html" title="class in org.apache.commons.io.filefilter">FileFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of file filter</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor"><span class="strong">FileAlterationListener</span></a> - Interface in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block">A listener that receives events of file system modifications.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor"><span class="strong">FileAlterationListenerAdaptor</span></a> - Class in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block">Convenience <a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor"><code>FileAlterationListener</code></a> implementation that does nothing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#FileAlterationListenerAdaptor()">FileAlterationListenerAdaptor()</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor"><span class="strong">FileAlterationMonitor</span></a> - Class in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block">A runnable that spawns a monitoring thread triggering any
+ registered <a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor"><code>FileAlterationObserver</code></a> at a specified interval.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#FileAlterationMonitor()">FileAlterationMonitor()</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Construct a monitor with a default interval of 10 seconds.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#FileAlterationMonitor(long)">FileAlterationMonitor(long)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Construct a monitor with the specified interval.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#FileAlterationMonitor(long, org.apache.commons.io.monitor.FileAlterationObserver...)">FileAlterationMonitor(long, FileAlterationObserver...)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Construct a monitor with the specified interval and set of observers.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor"><span class="strong">FileAlterationObserver</span></a> - Class in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block">FileAlterationObserver represents the state of files below a root directory,
+ checking the filesystem and notifying listeners of create, change or
+ delete events.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.lang.String)">FileAlterationObserver(String)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.lang.String, java.io.FileFilter)">FileAlterationObserver(String, FileFilter)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory and file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.lang.String, java.io.FileFilter, org.apache.commons.io.IOCase)">FileAlterationObserver(String, FileFilter, IOCase)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory, file filter and
+ file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.io.File)">FileAlterationObserver(File)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.io.File, java.io.FileFilter)">FileAlterationObserver(File, FileFilter)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory and file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(java.io.File, java.io.FileFilter, org.apache.commons.io.IOCase)">FileAlterationObserver(File, FileFilter, IOCase)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory, file filter and
+ file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#FileAlterationObserver(org.apache.commons.io.monitor.FileEntry, java.io.FileFilter, org.apache.commons.io.IOCase)">FileAlterationObserver(FileEntry, FileFilter, IOCase)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Construct an observer for the specified directory, file filter and
+ file comparator.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io"><span class="strong">FileCleaner</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io"><code>FileCleaningTracker</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#FileCleaner()">FileCleaner()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io"><span class="strong">FileCleaningTracker</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Keeps track of files awaiting deletion, and deletes them when an associated
+ marker object is reclaimed by the garbage collector.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#FileCleaningTracker()">FileCleaningTracker()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io"><span class="strong">FileDeleteStrategy</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Strategy for deleting files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#FileDeleteStrategy(java.lang.String)">FileDeleteStrategy(String)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Restricted constructor.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor"><span class="strong">FileEntry</span></a> - Class in <a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a></dt>
+<dd>
+<div class="block"><a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor"><code>FileEntry</code></a> represents the state of a file or directory, capturing
+ the following <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a> attributes at a point in time.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#FileEntry(java.io.File)">FileEntry(File)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Construct a new monitor for a specified <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#FileEntry(org.apache.commons.io.monitor.FileEntry, java.io.File)">FileEntry(FileEntry, File)</a></span> - Constructor for class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Construct a new monitor for a specified <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io"><span class="strong">FileExistsException</span></a> - Exception in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Indicates that a file already exists.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileExistsException.html#FileExistsException()">FileExistsException()</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io">FileExistsException</a></dt>
+<dd>
+<div class="block">Default Constructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileExistsException.html#FileExistsException(java.lang.String)">FileExistsException(String)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io">FileExistsException</a></dt>
+<dd>
+<div class="block">Construct an instance with the specified message.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileExistsException.html#FileExistsException(java.io.File)">FileExistsException(File)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io">FileExistsException</a></dt>
+<dd>
+<div class="block">Construct an instance with the specified file.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/FileFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">FileFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that are files (not directories).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFileFilter.html#FileFileFilter()">FileFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFileFilter.html" title="class in org.apache.commons.io.filefilter">FileFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#fileFileFilter()">fileFileFilter()</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that checks if the file is a file (and not a directory).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter"><span class="strong">FileFilterUtils</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Useful utilities for working with file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#FileFilterUtils()">FileFilterUtils()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">FileFilterUtils is not normally instantiated.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io"><span class="strong">FilenameUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">General filename and filepath manipulation utilities.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#FilenameUtils()">FilenameUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#fileNotFound()">fileNotFound()</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">This method is called if the tailed file is not found.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#fileNotFound()">fileNotFound()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">This method is called if the tailed file is not found.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#fileRotated()">fileRotated()</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">Called if a file rotation is detected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#fileRotated()">fileRotated()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">Called if a file rotation is detected.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io"><span class="strong">FileSystemUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">General File System utilities.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#FileSystemUtils()">FileSystemUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io"><span class="strong">FileUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">General file manipulation utilities.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#FileUtils()">FileUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output"><span class="strong">FileWriterWithEncoding</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Writer of files that allows the encoding to be set.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.lang.String)">FileWriterWithEncoding(String, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.lang.String, boolean)">FileWriterWithEncoding(String, String, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.nio.charset.Charset)">FileWriterWithEncoding(String, Charset)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.nio.charset.Charset, boolean)">FileWriterWithEncoding(String, Charset, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.nio.charset.CharsetEncoder)">FileWriterWithEncoding(String, CharsetEncoder)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.lang.String, java.nio.charset.CharsetEncoder, boolean)">FileWriterWithEncoding(String, CharsetEncoder, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.lang.String)">FileWriterWithEncoding(File, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.lang.String, boolean)">FileWriterWithEncoding(File, String, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.nio.charset.Charset)">FileWriterWithEncoding(File, Charset)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.nio.charset.Charset, boolean)">FileWriterWithEncoding(File, Charset, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.nio.charset.CharsetEncoder)">FileWriterWithEncoding(File, CharsetEncoder)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#FileWriterWithEncoding(java.io.File, java.nio.charset.CharsetEncoder, boolean)">FileWriterWithEncoding(File, CharsetEncoder, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Constructs a FileWriterWithEncoding with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filter(org.apache.commons.io.filefilter.IOFileFilter, java.io.File...)">filter(IOFileFilter, File...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filter(org.apache.commons.io.filefilter.IOFileFilter, java.lang.Iterable)">filter(IOFileFilter, Iterable&lt;File&gt;)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#filterDirectoryContents(java.io.File, int, java.io.File[])">filterDirectoryContents(File, int, File[])</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked with the contents of each directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filterList(org.apache.commons.io.filefilter.IOFileFilter, java.lang.Iterable)">filterList(IOFileFilter, Iterable&lt;File&gt;)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filterList(org.apache.commons.io.filefilter.IOFileFilter, java.io.File...)">filterList(IOFileFilter, File...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filterSet(org.apache.commons.io.filefilter.IOFileFilter, java.io.File...)">filterSet(IOFileFilter, File...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#filterSet(org.apache.commons.io.filefilter.IOFileFilter, java.lang.Iterable)">filterSet(IOFileFilter, Iterable&lt;File&gt;)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">
+ Applies an <a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><code>IOFileFilter</code></a> to the provided <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>
+ objects.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/AutoCloseInputStream.html#finalize()">finalize()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/AutoCloseInputStream.html" title="class in org.apache.commons.io.input">AutoCloseInputStream</a></dt>
+<dd>
+<div class="block">Ensures that the stream is closed before it gets garbage-collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>
+<div class="block">Flushes stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Flush the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Flush the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>flush()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>flush()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Flushing this writer has no effect.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Flushes both streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Flushes this output stream and forces any buffered output bytes to be
+ written out.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Flush the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#flush()">flush()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Flush the underlying writer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#FORCE">FORCE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">The singleton instance for forced file deletion, which always deletes,
+ even if the file represents a non-empty directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#forceDelete(java.io.File)">forceDelete(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Deletes a file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#forceDeleteOnExit(java.io.File)">forceDeleteOnExit(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Schedules a file to be deleted when JVM exits.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#forceMkdir(java.io.File)">forceMkdir(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Makes a directory, including any necessary but nonexistent parent
+ directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#forceMkdirParent(java.io.File)">forceMkdirParent(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Makes any necessary but nonexistent parent directories for a given File.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#forName(java.lang.String)">forName(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Factory method to create an IOCase from a name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpace(java.lang.String)">freeSpace(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use freeSpaceKb(String)
+  Deprecated from 1.3, may be removed in 2.0</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpaceKb(java.lang.String)">freeSpaceKb(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Returns the free space on a drive or volume in kilobytes by invoking
+ the command line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpaceKb(java.lang.String, long)">freeSpaceKb(String, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Returns the free space on a drive or volume in kilobytes by invoking
+ the command line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpaceKb()">freeSpaceKb()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Returns the disk size of the volume which holds the working directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileSystemUtils.html#freeSpaceKb(long)">freeSpaceKb(long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io">FileSystemUtils</a></dt>
+<dd>
+<div class="block">Returns the disk size of the volume which holds the working directory.</div>
+</dd>
+</dl>
+<a name="_G_">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#get(int)">get(int)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">The byte at the specified position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getBaseName(java.lang.String)">getBaseName(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the base name, minus the full path and extension, from a full filename.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#getBOM()">getBOM()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Return the BOM (Byte Order Mark).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#getBOMCharsetName()">getBOMCharsetName()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Return the BOM charset Name - <a href="./org/apache/commons/io/ByteOrderMark.html#getCharsetName()"><code>ByteOrderMark.getCharsetName()</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getBomEncoding()">getBomEncoding()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the BOM encoding found in the InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#getBuilder()">getBuilder()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Return the underlying builder.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#getByteCount()">getByteCount()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">The number of bytes that have passed through this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#getByteCount()">getByteCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">The number of bytes that have passed through this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#getByteCount()">getByteCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Returns the number of bytes that have been written to this output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#getBytes()">getBytes()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Return a copy of the BOM's bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#getCause()">getCause()</a></span> - Method in exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Returns the wrapped exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#getCharsetName()">getCharsetName()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Return the name of the <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html?is-external=true" title="class or interface in java.nio.charset"><code>Charset</code></a> the BOM represents.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getChildren()">getChildren()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the directory's files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getContentTypeEncoding()">getContentTypeEncoding()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the encoding in the content-type used to attempt determining the
+ encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getContentTypeMime()">getContentTypeMime()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the MIME type in the content-type used to attempt determining the
+ encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#getCount()">getCount()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">The number of bytes that have passed through this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#getCount()">getCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">The number of bytes that have passed through this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#getData()">getData()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Returns the data for this output stream as an array of bytes, assuming
+ that the data has been retained in memory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#getDefaultEncoding()">getDefaultEncoding()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Returns the default encoding to use if none is set in HTTP content-type,
+ XML prolog and the rules based on content-type are not adequate.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#getDefaultEncoding()">getDefaultEncoding()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Return the default encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#getDelay()">getDelay()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Return the delay in milliseconds.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#getDeleteFailures()">getDeleteFailures()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Return the file paths that failed to delete.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html#getDepth()">getDepth()</a></span> - Method in exception org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io">DirectoryWalker.CancelException</a></dt>
+<dd>
+<div class="block">Return the depth when the operation was cancelled.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#getDirectory()">getDirectory()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Return the directory being observed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#getEncoding()">getEncoding()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Returns the charset encoding of the XmlStreamReader.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#getEncoding()">getEncoding()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Return the detected encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getExtension(java.lang.String)">getExtension(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the extension of a filename.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.CancelException.html#getFile()">getFile()</a></span> - Method in exception org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.CancelException.html" title="class in org.apache.commons.io">DirectoryWalker.CancelException</a></dt>
+<dd>
+<div class="block">Return the file when the operation was cancelled.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getFile(java.io.File, java.lang.String...)">getFile(File, String...)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Construct a file from the set of name elements.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getFile(java.lang.String...)">getFile(String...)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Construct a file from the set of name elements.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#getFile()">getFile()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Return the file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getFile()">getFile()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the file being monitored.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#getFile()">getFile()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Returns either the output file specified in the constructor or
+ the temporary file created or null.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#getFileFilter()">getFileFilter()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Return the fileFilter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#getFileFilters()">getFileFilters()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Returns this conditional file filter's list of file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html#getFileFilters()">getFileFilters()</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter">ConditionalFileFilter</a></dt>
+<dd>
+<div class="block">Returns this conditional file filter's list of file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#getFileFilters()">getFileFilters()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Returns this conditional file filter's list of file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getFullPath(java.lang.String)">getFullPath(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the full path from a full filename, which is the prefix + path.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getFullPathNoEndSeparator(java.lang.String)">getFullPathNoEndSeparator(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the full path from a full filename, which is the prefix + path,
+ and also excluding the final directory separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#getInstance()">getInstance()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Returns the singleton instance, which is used by the deprecated, static methods.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#getInterval()">getInterval()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Return the interval.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getLastModified()">getLastModified()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the last modified time from the last time it
+ was checked.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getLength()">getLength()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the length.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getLevel()">getLevel()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the level</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#getListeners()">getListeners()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Returns the set of registered file system listeners.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getName(java.lang.String)">getName(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the name minus the path from a full filename.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#getName()">getName()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Gets the name of the constant.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getName()">getName()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the file name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#getObservers()">getObservers()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Returns the set of <a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor"><code>FileAlterationObserver</code></a> registered with
+ this monitor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#getParent()">getParent()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the parent entry.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getPath(java.lang.String)">getPath(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the path from a full filename, which excludes the prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getPathNoEndSeparator(java.lang.String)">getPathNoEndSeparator(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the path from a full filename, which excludes the prefix, and
+ also excluding the final directory separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#getPosition()">getPosition()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Return the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#getPosition()">getPosition()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Return the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getPrefix(java.lang.String)">getPrefix(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Gets the prefix from a full filename, such as <code>C:/</code>
+ or <code>~/</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#getPrefixLength(java.lang.String)">getPrefixLength(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Returns the length of the filename prefix, such as <code>C:/</code> or <code>~/</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#getRun()">getRun()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Gets whether to keep on running.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#getSize()">getSize()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Return the size this <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> emulates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#getSize()">getSize()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Return the size this <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> emulates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#getStream()">getStream()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Returns the current output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#getStream()">getStream()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Returns the underlying output stream, to which the corresponding
+ <code>OutputStream</code> methods in this class will ultimately delegate.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#getTag()">getTag()</a></span> - Method in exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Returns the serializable tag object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getTempDirectory()">getTempDirectory()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns a <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a> representing the system temporary directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getTempDirectoryPath()">getTempDirectoryPath()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns the path to the system temporary directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#getThreshold()">getThreshold()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Returns the threshold, in bytes, at which an event will be triggered.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#getTrackCount()">getTrackCount()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#getTrackCount()"><code>FileCleaningTracker.getTrackCount()</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#getTrackCount()">getTrackCount()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Retrieve the number of files currently being tracked, and therefore
+ awaiting deletion.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getUserDirectory()">getUserDirectory()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns a <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a> representing the user's home directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#getUserDirectoryPath()">getUserDirectoryPath()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns the path to the user's home directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getXmlEncoding()">getXmlEncoding()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the encoding found in the XML prolog of the InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#getXmlGuessEncoding()">getXmlGuessEncoding()</a></span> - Method in exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Returns the encoding guess based on the first bytes of the InputStream.</div>
+</dd>
+</dl>
+<a name="_H_">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#handle(java.lang.String)">handle(String)</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">Handles a line from a Tailer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#handle(java.lang.Exception)">handle(Exception)</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">Handles an Exception .</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#handle(java.lang.String)">handle(String)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">Handles a line from a Tailer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#handle(java.lang.Exception)">handle(Exception)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">Handles an Exception .</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleCancelled(java.io.File, java.util.Collection, org.apache.commons.io.DirectoryWalker.CancelException)">handleCancelled(File, Collection&lt;T&gt;, DirectoryWalker.CancelException)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked when the operation is cancelled.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleDirectory(java.io.File, int, java.util.Collection)">handleDirectory(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked to determine if a directory should be processed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleDirectoryEnd(java.io.File, int, java.util.Collection)">handleDirectoryEnd(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked at the end of processing each directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleDirectoryStart(java.io.File, int, java.util.Collection)">handleDirectoryStart(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked at the start of processing each directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleEnd(java.util.Collection)">handleEnd(Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked at the end of processing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleFile(java.io.File, int, java.util.Collection)">handleFile(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked for each (non-directory) file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Handle any IOExceptions thrown.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Handle any IOExceptions thrown.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TaggedInputStream.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input">TaggedInputStream</a></dt>
+<dd>
+<div class="block">Tags any IOExceptions thrown, wrapping and re-throwing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Handle any IOExceptions thrown.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Handle any IOExceptions thrown.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TaggedOutputStream.html#handleIOException(java.io.IOException)">handleIOException(IOException)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output">TaggedOutputStream</a></dt>
+<dd>
+<div class="block">Tags any IOExceptions thrown, wrapping and re-throwing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleIsCancelled(java.io.File, int, java.util.Collection)">handleIsCancelled(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked to determine if the entire walk
+ operation should be immediately cancelled.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleRestricted(java.io.File, int, java.util.Collection)">handleRestricted(File, int, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked for each restricted directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#handleStart(java.io.File, java.util.Collection)">handleStart(File, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Overridable callback method invoked at the start of processing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#hasBOM()">hasBOM()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Indicates whether the stream contains one of the specified BOMs.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#hasBOM(org.apache.commons.io.ByteOrderMark)">hasBOM(ByteOrderMark)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Indicates whether the stream contains the specified BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#hashCode()">hashCode()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Return the hashcode for this BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#hasNext()">hasNext()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Indicates whether the <code>Reader</code> has more lines.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/HexDump.html" title="class in org.apache.commons.io"><span class="strong">HexDump</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Dumps data in hexadecimal format.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/HexDump.html#HexDump()">HexDump()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/HexDump.html" title="class in org.apache.commons.io">HexDump</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html#HIDDEN">HIDDEN</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter">HiddenFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>hidden</i> filter</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">HiddenFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter accepts <code>File</code>s that are hidden.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html#HiddenFileFilter()">HiddenFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter">HiddenFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive consructor.</div>
+</dd>
+</dl>
+<a name="_I_">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#indexOfExtension(java.lang.String)">indexOfExtension(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Returns the index of the last extension separator character, which is a dot.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#indexOfLastSeparator(java.lang.String)">indexOfLastSeparator(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Returns the index of the last directory separator character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListener.html#init(org.apache.commons.io.input.Tailer)">init(Tailer)</a></span> - Method in interface org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input">TailerListener</a></dt>
+<dd>
+<div class="block">The tailer will call this method during construction,
+ giving the listener a method of stopping the tailer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#init(org.apache.commons.io.input.Tailer)">init(Tailer)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>
+<div class="block">The tailer will call this method during construction,
+ giving the listener a method of stopping the tailer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#initialize()">initialize()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Initialize the observer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#INSENSITIVE">INSENSITIVE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">The constant for case insensitive regardless of operating system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html#INSTANCE">INSTANCE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DirectoryFileFilter.html" title="class in org.apache.commons.io.filefilter">DirectoryFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of directory filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FalseFileFilter.html#INSTANCE">INSTANCE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FalseFileFilter.html" title="class in org.apache.commons.io.filefilter">FalseFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of false filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#INSTANCE">INSTANCE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of true filter.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io"><span class="strong">IOCase</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Enumeration of IO case sensitivity.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/IOExceptionWithCause.html" title="class in org.apache.commons.io"><span class="strong">IOExceptionWithCause</span></a> - Exception in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">Subclasses IOException with the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><code>Throwable</code></a> constructors missing before Java 6.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOExceptionWithCause.html#IOExceptionWithCause(java.lang.String, java.lang.Throwable)">IOExceptionWithCause(String, Throwable)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/IOExceptionWithCause.html" title="class in org.apache.commons.io">IOExceptionWithCause</a></dt>
+<dd>
+<div class="block">Constructs a new instance with the given message and cause.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOExceptionWithCause.html#IOExceptionWithCause(java.lang.Throwable)">IOExceptionWithCause(Throwable)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/IOExceptionWithCause.html" title="class in org.apache.commons.io">IOExceptionWithCause</a></dt>
+<dd>
+<div class="block">Constructs a new instance with the given cause.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/IOFileFilter.html" title="interface in org.apache.commons.io.filefilter"><span class="strong">IOFileFilter</span></a> - Interface in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">An interface which brings the FileFilter and FilenameFilter
+ interfaces together.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io"><span class="strong">IOUtils</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">General IO stream manipulation utilities.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#IOUtils()">IOUtils()</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Instances should NOT be constructed in standard programming.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#isCaseSensitive()">isCaseSensitive()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Does the object represent case sensitive comparison.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TaggedInputStream.html#isCauseOf(java.lang.Throwable)">isCauseOf(Throwable)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input">TaggedInputStream</a></dt>
+<dd>
+<div class="block">Tests if the given exception was caused by this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TaggedOutputStream.html#isCauseOf(java.lang.Exception)">isCauseOf(Exception)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output">TaggedOutputStream</a></dt>
+<dd>
+<div class="block">Tests if the given exception was caused by this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#isDirectory()">isDirectory()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Indicate whether the file is a directory or not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#isExists()">isExists()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Indicate whether the file existed the last time it
+ was checked.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#isExtension(java.lang.String, java.lang.String)">isExtension(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether the extension of the filename is that specified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#isExtension(java.lang.String, java.lang.String[])">isExtension(String, String[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether the extension of the filename is one of those specified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#isExtension(java.lang.String, java.util.Collection)">isExtension(String, Collection&lt;String&gt;)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks whether the extension of the filename is one of those specified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileNewer(java.io.File, java.io.File)">isFileNewer(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is newer than the reference
+ <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileNewer(java.io.File, java.util.Date)">isFileNewer(File, Date)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is newer than the specified
+ <code>Date</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileNewer(java.io.File, long)">isFileNewer(File, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is newer than the specified
+ time reference.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileOlder(java.io.File, java.io.File)">isFileOlder(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is older than the reference
+ <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileOlder(java.io.File, java.util.Date)">isFileOlder(File, Date)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is older than the specified
+ <code>Date</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isFileOlder(java.io.File, long)">isFileOlder(File, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Tests if the specified <code>File</code> is older than the specified
+ time reference.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#isInMemory()">isInMemory()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Determines whether or not the data for this output stream has been
+ retained in memory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#ISO_8859_1">ISO_8859_1</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">CharEncodingISO Latin Alphabet No.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#isPropagateClose()">isPropagateClose()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Indicates whether the <a href="./org/apache/commons/io/input/BoundedInputStream.html#close()"><code>BoundedInputStream.close()</code></a> method
+ should propagate to the underling <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#isSymlink(java.io.File)">isSymlink(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Determines whether the specified file is a Symbolic Link rather than an actual file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#isTaggedWith(java.lang.Throwable, java.lang.Object)">isTaggedWith(Throwable, Object)</a></span> - Static method in exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Checks whether the given throwable is tagged with the given tag.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#isThresholdExceeded()">isThresholdExceeded()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Determines whether or not the configured threshold has been exceeded for
+ this output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#isValidLine(java.lang.String)">isValidLine(String)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Overridable method to validate each line that is returned.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#iterateFiles(java.io.File, org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">iterateFiles(File, IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Allows iteration over the files in given directory (and optionally
+ its subdirectories).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#iterateFiles(java.io.File, java.lang.String[], boolean)">iterateFiles(File, String[], boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Allows iteration over the files in a given directory (and optionally
+ its subdirectories) which match an array of extensions.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#iterateFilesAndDirs(java.io.File, org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">iterateFilesAndDirs(File, IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Allows iteration over the files in given directory (and optionally
+ its subdirectories).</div>
+</dd>
+</dl>
+<a name="_L_">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html#LASTMODIFIED_COMPARATOR">LASTMODIFIED_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator">LastModifiedFileComparator</a></dt>
+<dd>
+<div class="block">Last modified comparator instance</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html#LASTMODIFIED_REVERSE">LASTMODIFIED_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator">LastModifiedFileComparator</a></dt>
+<dd>
+<div class="block">Reverse last modified comparator instance</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">LastModifiedFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the <b>last modified date/time</b> of two files for order 
+ (see <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#lastModified()" title="class or interface in java.io"><code>File.lastModified()</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html#LastModifiedFileComparator()">LastModifiedFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/LastModifiedFileComparator.html" title="class in org.apache.commons.io.comparator">LastModifiedFileComparator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#length()">length()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Return the length of the BOM's bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#LINE_SEPARATOR">LINE_SEPARATOR</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The system line separator string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#LINE_SEPARATOR_UNIX">LINE_SEPARATOR_UNIX</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The Unix line separator string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#LINE_SEPARATOR_WINDOWS">LINE_SEPARATOR_WINDOWS</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">The Windows line separator string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#lineIterator(java.io.File, java.lang.String)">lineIterator(File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in a <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#lineIterator(java.io.File)">lineIterator(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in a <code>File</code> using the default encoding for the VM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#lineIterator(java.io.Reader)">lineIterator(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in a <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#lineIterator(java.io.InputStream, java.nio.charset.Charset)">lineIterator(InputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in an <code>InputStream</code>, using
+ the character encoding specified (or default encoding if null).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#lineIterator(java.io.InputStream, java.lang.String)">lineIterator(InputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns an Iterator for the lines in an <code>InputStream</code>, using
+ the character encoding specified (or default encoding if null).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io"><span class="strong">LineIterator</span></a> - Class in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">An Iterator over the lines in a <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#LineIterator(java.io.Reader)">LineIterator(Reader)</a></span> - Constructor for class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Constructs an iterator of the lines for a <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#listFiles(java.io.File, org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">listFiles(File, IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Finds files within a given directory (and optionally its
+ subdirectories).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#listFiles(java.io.File, java.lang.String[], boolean)">listFiles(File, String[], boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Finds files within a given directory (and optionally its subdirectories)
+ which match an array of extensions.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#listFilesAndDirs(java.io.File, org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">listFilesAndDirs(File, IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Finds files within a given directory (and optionally its
+ subdirectories).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output"><span class="strong">LockableFileWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">FileWriter that will create and honor lock files to allow simple
+ cross thread file lock handling.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.lang.String)">LockableFileWriter(String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.lang.String, boolean)">LockableFileWriter(String, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.lang.String, boolean, java.lang.String)">LockableFileWriter(String, boolean, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File)">LockableFileWriter(File)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, boolean)">LockableFileWriter(File, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, boolean, java.lang.String)">LockableFileWriter(File, boolean, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.nio.charset.Charset, boolean, java.lang.String)"><code>LockableFileWriter.LockableFileWriter(File, Charset, boolean, String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.nio.charset.Charset)">LockableFileWriter(File, Charset)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.lang.String)">LockableFileWriter(File, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.nio.charset.Charset, boolean, java.lang.String)">LockableFileWriter(File, Charset, boolean, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter with a file encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#LockableFileWriter(java.io.File, java.lang.String, boolean, java.lang.String)">LockableFileWriter(File, String, boolean, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Constructs a LockableFileWriter with a file encoding.</div>
+</dd>
+</dl>
+<a name="_M_">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#magicNumberFileFilter(java.lang.String)">magicNumberFileFilter(String)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files that begin with the provided magic
+ number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#magicNumberFileFilter(java.lang.String, long)">magicNumberFileFilter(String, long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files that contains the provided magic
+ number at a specified offset within the file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#magicNumberFileFilter(byte[])">magicNumberFileFilter(byte[])</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files that begin with the provided magic
+ number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#magicNumberFileFilter(byte[], long)">magicNumberFileFilter(byte[], long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files that contains the provided magic
+ number at a specified offset within the file.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">MagicNumberFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">
+ File filter for matching files containing a "magic number".</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#MagicNumberFileFilter(byte[])">MagicNumberFileFilter(byte[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Constructs a new MagicNumberFileFilter and associates it with the magic
+ number to test for in files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#MagicNumberFileFilter(java.lang.String)">MagicNumberFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Constructs a new MagicNumberFileFilter and associates it with the magic
+ number to test for in files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#MagicNumberFileFilter(java.lang.String, long)">MagicNumberFileFilter(String, long)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Constructs a new MagicNumberFileFilter and associates it with the magic
+ number to test for in files and the byte offset location in the file to
+ to look for that magic number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#MagicNumberFileFilter(byte[], long)">MagicNumberFileFilter(byte[], long)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">
+ Constructs a new MagicNumberFileFilter and associates it with the magic
+ number to test for in files and the byte offset location in the file to
+ to look for that magic number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#makeCVSAware(org.apache.commons.io.filefilter.IOFileFilter)">makeCVSAware(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Decorates a filter to make it ignore CVS directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#makeDirectoryOnly(org.apache.commons.io.filefilter.IOFileFilter)">makeDirectoryOnly(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Decorates a filter so that it only applies to directories and not to files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#makeFileOnly(org.apache.commons.io.filefilter.IOFileFilter)">makeFileOnly(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Decorates a filter so that it only applies to files and not to directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#makeSVNAware(org.apache.commons.io.filefilter.IOFileFilter)">makeSVNAware(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Decorates a filter to make it ignore SVN directories.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>mark(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>mark(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Mark the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Mark the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Mark the current position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>mark(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#mark(int)">mark(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>mark(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>markSupported()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Mark is supported (returns true).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Indicates whether <i>mark</i> is supported.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Indicates whether <i>mark</i> is supported.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>markSupported()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#markSupported()">markSupported()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>markSupported()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveDirectory(java.io.File, java.io.File)">moveDirectory(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveDirectoryToDirectory(java.io.File, java.io.File, boolean)">moveDirectoryToDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a directory to another directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveFile(java.io.File, java.io.File)">moveFile(File, File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a file.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveFileToDirectory(java.io.File, java.io.File, boolean)">moveFileToDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a file to a directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#moveToDirectory(java.io.File, java.io.File, boolean)">moveToDirectory(File, File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Moves a file or directory to the destination directory.</div>
+</dd>
+</dl>
+<a name="_N_">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_COMPARATOR">NAME_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Case-sensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_INSENSITIVE_COMPARATOR">NAME_INSENSITIVE_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Case-insensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_INSENSITIVE_REVERSE">NAME_INSENSITIVE_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-insensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_REVERSE">NAME_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-sensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_SYSTEM_COMPARATOR">NAME_SYSTEM_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">System sensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NAME_SYSTEM_REVERSE">NAME_SYSTEM_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Reverse system sensitive name comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">NameFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the <b>names</b> of two files for order (see <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#getName()" title="class or interface in java.io"><code>File.getName()</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NameFileComparator()">NameFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Construct a case sensitive file name comparator instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#NameFileComparator(org.apache.commons.io.IOCase)">NameFileComparator(IOCase)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file name comparator instance with the specified case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#nameFileFilter(java.lang.String)">nameFileFilter(String)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename matches the specified text.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#nameFileFilter(java.lang.String, org.apache.commons.io.IOCase)">nameFileFilter(String, IOCase)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename matches the specified text.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">NameFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters filenames for a certain name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.lang.String)">NameFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new case-sensitive name file filter for a single name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.lang.String, org.apache.commons.io.IOCase)">NameFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new name file filter specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.lang.String[])">NameFileFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new case-sensitive name file filter for an array of names.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.lang.String[], org.apache.commons.io.IOCase)">NameFileFilter(String[], IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new name file filter for an array of names specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.util.List)">NameFileFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new case-sensitive name file filter for a list of names.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#NameFileFilter(java.util.List, org.apache.commons.io.IOCase)">NameFileFilter(List&lt;String&gt;, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new name file filter for a list of names specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#newChildInstance(java.io.File)">newChildInstance(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Create a new child instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#next()">next()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Returns the next line in the wrapped <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#nextLine()">nextLine()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Returns the next line in the wrapped <code>Reader</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#NORMAL">NORMAL</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">The singleton instance for normal file deletion, which does not permit
+ the deletion of directories that are not empty.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#normalize(java.lang.String)">normalize(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Normalizes a path, removing double and single dot path steps.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#normalize(java.lang.String, boolean)">normalize(String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Normalizes a path, removing double and single dot path steps.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#normalizeNoEndSeparator(java.lang.String)">normalizeNoEndSeparator(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Normalizes a path, removing double and single dot path steps,
+ and removing any final directory separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#normalizeNoEndSeparator(java.lang.String, boolean)">normalizeNoEndSeparator(String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Normalizes a path, removing double and single dot path steps,
+ and removing any final directory separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html#NOT_EMPTY">NOT_EMPTY</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/EmptyFileFilter.html" title="class in org.apache.commons.io.filefilter">EmptyFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>not-empty</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#notFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">notFileFilter(IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that NOTs the specified filter.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">NotFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">This filter produces a logical NOT of the filters specified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NotFileFilter.html#NotFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">NotFileFilter(IOFileFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter">NotFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new file filter that NOTs the result of another filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#NULL_OUTPUT_STREAM">NULL_OUTPUT_STREAM</a></span> - Static variable in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>
+<div class="block">A singleton.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#NULL_WRITER">NULL_WRITER</a></span> - Static variable in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">A singleton.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">NullInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A functional, light weight <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> that emulates
+ a stream of a specified size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#NullInputStream(long)">NullInputStream(long)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Create an <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> that emulates a specified size
+ which supports marking and does not throw EOFException.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#NullInputStream(long, boolean, boolean)">NullInputStream(long, boolean, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Create an <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> that emulates a specified
+ size with option settings.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">NullOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">This OutputStream writes all data to the famous <b>/dev/null</b>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#NullOutputStream()">NullOutputStream()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input"><span class="strong">NullReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A functional, light weight <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> that emulates
+ a reader of a specified size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#NullReader(long)">NullReader(long)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Create a <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> that emulates a specified size
+ which supports marking and does not throw EOFException.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#NullReader(long, boolean, boolean)">NullReader(long, boolean, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Create a <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> that emulates a specified
+ size with option settings.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output"><span class="strong">NullWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">This <a href="http://download.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a> writes all data to the famous <b>/dev/null</b>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#NullWriter()">NullWriter()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Constructs a new NullWriter.</div>
+</dd>
+</dl>
+<a name="_O_">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onDirectoryChange(java.io.File)">onDirectoryChange(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">Directory changed Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onDirectoryChange(java.io.File)">onDirectoryChange(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">Directory changed Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onDirectoryCreate(java.io.File)">onDirectoryCreate(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">Directory created Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onDirectoryCreate(java.io.File)">onDirectoryCreate(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">Directory created Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onDirectoryDelete(java.io.File)">onDirectoryDelete(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">Directory deleted Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onDirectoryDelete(java.io.File)">onDirectoryDelete(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">Directory deleted Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_EB">ONE_EB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in an exabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_EB_BI">ONE_EB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in an exabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_GB">ONE_GB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a gigabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_GB_BI">ONE_GB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a gigabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_KB">ONE_KB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a kilobyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_KB_BI">ONE_KB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a kilobyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_MB">ONE_MB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a megabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_MB_BI">ONE_MB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a megabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_PB">ONE_PB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a petabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_PB_BI">ONE_PB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a petabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_TB">ONE_TB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a terabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_TB_BI">ONE_TB_BI</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a terabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_YB">ONE_YB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a yottabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#ONE_ZB">ONE_ZB</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">The number of bytes in a zettabyte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onFileChange(java.io.File)">onFileChange(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File changed Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onFileChange(java.io.File)">onFileChange(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File changed Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onFileCreate(java.io.File)">onFileCreate(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File created Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onFileCreate(java.io.File)">onFileCreate(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File created Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onFileDelete(java.io.File)">onFileDelete(File)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File deleted Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onFileDelete(java.io.File)">onFileDelete(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File deleted Event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onStart(org.apache.commons.io.monitor.FileAlterationObserver)">onStart(FileAlterationObserver)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File system observer started checking event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onStart(org.apache.commons.io.monitor.FileAlterationObserver)">onStart(FileAlterationObserver)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File system observer started checking event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListener.html#onStop(org.apache.commons.io.monitor.FileAlterationObserver)">onStop(FileAlterationObserver)</a></span> - Method in interface org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListener.html" title="interface in org.apache.commons.io.monitor">FileAlterationListener</a></dt>
+<dd>
+<div class="block">File system observer finished checking event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html#onStop(org.apache.commons.io.monitor.FileAlterationObserver)">onStop(FileAlterationObserver)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html" title="class in org.apache.commons.io.monitor">FileAlterationListenerAdaptor</a></dt>
+<dd>
+<div class="block">File system observer finished checking event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#openInputStream(java.io.File)">openInputStream(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Opens a <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileInputStream.html?is-external=true" title="class or interface in java.io"><code>FileInputStream</code></a> for the specified file, providing better
+ error messages than simply calling <code>new FileInputStream(file)</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#openOutputStream(java.io.File)">openOutputStream(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Opens a <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileOutputStream.html?is-external=true" title="class or interface in java.io"><code>FileOutputStream</code></a> for the specified file, checking and
+ creating the parent directory if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#openOutputStream(java.io.File, boolean)">openOutputStream(File, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Opens a <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileOutputStream.html?is-external=true" title="class or interface in java.io"><code>FileOutputStream</code></a> for the specified file, checking and
+ creating the parent directory if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#or(org.apache.commons.io.filefilter.IOFileFilter...)">or(IOFileFilter...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that ORs the specified filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#orFileFilter(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">orFileFilter(IOFileFilter, IOFileFilter)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>use <a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#or(org.apache.commons.io.filefilter.IOFileFilter...)"><code>FileFilterUtils.or(IOFileFilter...)</code></a></i></div>
+</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">OrFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">A <a href="http://download.oracle.com/javase/6/docs/api/java/io/FileFilter.html?is-external=true" title="class or interface in java.io"><code>FileFilter</code></a> providing conditional OR logic across a list of
+ file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#OrFileFilter()">OrFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new instance of <code>OrFileFilter</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#OrFileFilter(java.util.List)">OrFileFilter(List&lt;IOFileFilter&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new instance of <code>OrFileFilter</code>
+ with the specified filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#OrFileFilter(org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)">OrFileFilter(IOFileFilter, IOFileFilter)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new file filter that ORs the result of two other filters.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a> - package org.apache.commons.io</dt>
+<dd>
+<div class="block">
+This package defines utility classes for working with streams, readers,
+writers and files.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a> - package org.apache.commons.io.comparator</dt>
+<dd>
+<div class="block">This package provides various <a href="http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util"><code>Comparator</code></a> implementations
+for <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>s.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a> - package org.apache.commons.io.filefilter</dt>
+<dd>
+<div class="block">This package defines an interface (IOFileFilter) that combines both 
+<a href="http://download.oracle.com/javase/6/docs/api/java/io/FileFilter.html?is-external=true" title="class or interface in java.io"><code>FileFilter</code></a> and <a href="http://download.oracle.com/javase/6/docs/api/java/io/FilenameFilter.html?is-external=true" title="class or interface in java.io"><code>FilenameFilter</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a> - package org.apache.commons.io.input</dt>
+<dd>
+<div class="block">
+This package provides implementations of input classes, such as
+<code>InputStream</code> and <code>Reader</code>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/monitor/package-summary.html">org.apache.commons.io.monitor</a> - package org.apache.commons.io.monitor</dt>
+<dd>
+<div class="block">
+This package provides a component for monitoring file system events
+(directory and file create, update and delete events).</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a> - package org.apache.commons.io.output</dt>
+<dd>
+<div class="block">
+This package provides implementations of output classes, such as
+<code>OutputStream</code> and <code>Writer</code>.</div>
+</dd>
+</dl>
+<a name="_P_">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_COMPARATOR">PATH_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Case-sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_INSENSITIVE_COMPARATOR">PATH_INSENSITIVE_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Case-insensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_INSENSITIVE_REVERSE">PATH_INSENSITIVE_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-insensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#INSENSITIVE"><code>IOCase.INSENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_REVERSE">PATH_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Reverse case-sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_SYSTEM_COMPARATOR">PATH_SYSTEM_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">System sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PATH_SYSTEM_REVERSE">PATH_SYSTEM_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Reverse system sensitive path comparator instance (see <a href="./org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a>)</div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">PathFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the <b>path</b> of two files for order (see <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#getPath()" title="class or interface in java.io"><code>File.getPath()</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PathFileComparator()">PathFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Construct a case sensitive file path comparator instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#PathFileComparator(org.apache.commons.io.IOCase)">PathFileComparator(IOCase)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file path comparator instance with the specified case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#prefixFileFilter(java.lang.String)">prefixFileFilter(String)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename starts with the specified text.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#prefixFileFilter(java.lang.String, org.apache.commons.io.IOCase)">prefixFileFilter(String, IOCase)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename starts with the specified text.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">PrefixFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters filenames for a certain prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.lang.String)">PrefixFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for a single prefix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.lang.String, org.apache.commons.io.IOCase)">PrefixFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for a single prefix
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.lang.String[])">PrefixFileFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for any of an array of prefixes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.lang.String[], org.apache.commons.io.IOCase)">PrefixFileFilter(String[], IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for any of an array of prefixes
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.util.List)">PrefixFileFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for a list of prefixes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#PrefixFileFilter(java.util.List, org.apache.commons.io.IOCase)">PrefixFileFilter(List&lt;String&gt;, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Prefix file filter for a list of prefixes
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#processByte()">processByte()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Return a byte value for the  <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#processBytes(byte[], int, int)">processBytes(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Process the bytes for the <code>read(byte[], offset, length)</code>
+ method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#processChar()">processChar()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Return a character value for the  <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#processChars(char[], int, int)">processChars(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Process the characters for the <code>read(char[], offset, length)</code>
+ method.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">ProxyInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A Proxy stream which acts as expected, that is it passes the method
+ calls on to the proxied stream and doesn't change which methods are
+ being called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#ProxyInputStream(java.io.InputStream)">ProxyInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Constructs a new ProxyInputStream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">ProxyOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">A Proxy stream which acts as expected, that is it passes the method 
+ calls on to the proxied stream and doesn't change which methods are 
+ being called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#ProxyOutputStream(java.io.OutputStream)">ProxyOutputStream(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new ProxyOutputStream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input"><span class="strong">ProxyReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">A Proxy stream which acts as expected, that is it passes the method 
+ calls on to the proxied stream and doesn't change which methods are 
+ being called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#ProxyReader(java.io.Reader)">ProxyReader(Reader)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Constructs a new ProxyReader.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output"><span class="strong">ProxyWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">A Proxy stream which acts as expected, that is it passes the method 
+ calls on to the proxied stream and doesn't change which methods are 
+ being called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#ProxyWriter(java.io.Writer)">ProxyWriter(Writer)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Constructs a new ProxyWriter.</div>
+</dd>
+</dl>
+<a name="_R_">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method, detecting and optionally skipping BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[], int, int)</code> method, detecting and optionally skipping BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[])</code> method, detecting and optionally skipping BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method if
+ the current position is less than the limit.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Read a single character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#read(char[], int, int)">read(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Read the sepcified number of characters into the array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClosedInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClosedInputStream.html" title="class in org.apache.commons.io.input">ClosedInputStream</a></dt>
+<dd>
+<div class="block">Returns -1 to indicate that the stream is closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/DemuxInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/DemuxInputStream.html" title="class in org.apache.commons.io.input">DemuxInputStream</a></dt>
+<dd>
+<div class="block">Read byte from stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Read a byte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Read some bytes into the specified array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Read the specified number bytes into an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Read a character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#read(char[])">read(char[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Read some characters into the specified array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#read(char[], int, int)">read(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Read the specified number characters into an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#read(char[])">read(char[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(char[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#read(char[], int, int)">read(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(char[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#read(java.nio.CharBuffer)">read(CharBuffer)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(CharBuffer)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Read the specified number of bytes into an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Read the specified number of bytes into an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Read a single byte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#read()">read()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Reads a single byte from the proxied input stream and writes it to
+ the associated output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#read(byte[], int, int)">read(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Reads bytes from the proxied input stream and writes the read bytes
+ to the associated output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#read(byte[])">read(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Reads bytes from the proxied input stream and writes the read bytes
+ to the associated output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#read(char[], int, int)">read(char[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Invokes the underlying reader's <code>read(char[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.io.Reader, char[], int, int)">read(Reader, char[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads characters from an input character stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.io.Reader, char[])">read(Reader, char[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads characters from an input character stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.io.InputStream, byte[], int, int)">read(InputStream, byte[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads bytes from an input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.io.InputStream, byte[])">read(InputStream, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads bytes from an input stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#read(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)">read(ReadableByteChannel, ByteBuffer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads bytes from a ReadableByteChannel.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html#READ_ONLY">READ_ONLY</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/CanReadFileFilter.html" title="class in org.apache.commons.io.filefilter">CanReadFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>read-only</i> filter</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readBoolean()">readBoolean()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Return <code><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readByte()"><code>SwappedDataInputStream.readByte()</code></a> != 0</code></div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readByte()">readByte()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readChar()">readChar()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Reads a character delegating to <a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readShort()"><code>SwappedDataInputStream.readShort()</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readDouble()">readDouble()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedDouble(java.io.InputStream)"><code>EndianUtils.readSwappedDouble(InputStream)</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">ReaderInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a> implementation that reads a character stream from a <a href="http://download.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>
+ and transforms it to a byte stream using a specified charset encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.CharsetEncoder)">ReaderInputStream(Reader, CharsetEncoder)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.CharsetEncoder, int)">ReaderInputStream(Reader, CharsetEncoder, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.Charset, int)">ReaderInputStream(Reader, Charset, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.Charset)">ReaderInputStream(Reader, Charset)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a> with a default input buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.lang.String, int)">ReaderInputStream(Reader, String, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.lang.String)">ReaderInputStream(Reader, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block">Construct a new <a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input"><code>ReaderInputStream</code></a> with a default input buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader)">ReaderInputStream(Reader)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReaderInputStream.html" title="class in org.apache.commons.io.input">ReaderInputStream</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/input/ReaderInputStream.html#ReaderInputStream(java.io.Reader, java.nio.charset.Charset)"><code>ReaderInputStream.ReaderInputStream(Reader, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readFileToByteArray(java.io.File)">readFileToByteArray(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file into a byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readFileToString(java.io.File, java.nio.charset.Charset)">readFileToString(File, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file into a String.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readFileToString(java.io.File, java.lang.String)">readFileToString(File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file into a String.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readFileToString(java.io.File)">readFileToString(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#readFileToString(java.io.File, java.nio.charset.Charset)"><code>FileUtils.readFileToString(File, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readFloat()">readFloat()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedFloat(java.io.InputStream)"><code>EndianUtils.readSwappedFloat(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readFully(byte[])">readFully(byte[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[] data, int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readFully(byte[], int, int)">readFully(byte[], int, int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read(byte[] data, int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.io.Reader, char[], int, int)">readFully(Reader, char[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of characters or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.io.Reader, char[])">readFully(Reader, char[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of characters or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.io.InputStream, byte[], int, int)">readFully(InputStream, byte[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.io.InputStream, byte[])">readFully(InputStream, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readFully(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)">readFully(ReadableByteChannel, ByteBuffer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Reads the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readInt()">readInt()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedInteger(java.io.InputStream)"><code>EndianUtils.readSwappedInteger(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#readLine()">readLine()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Returns the lines of the file from bottom to top.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readLine()">readLine()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Not currently supported - throws <a href="http://download.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang"><code>UnsupportedOperationException</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readLines(java.io.File, java.nio.charset.Charset)">readLines(File, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file line by line to a List of Strings.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readLines(java.io.File, java.lang.String)">readLines(File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Reads the contents of a file line by line to a List of Strings.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#readLines(java.io.File)">readLines(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#readLines(java.io.File, java.nio.charset.Charset)"><code>FileUtils.readLines(File, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.InputStream)">readLines(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.InputStream, java.nio.charset.Charset)"><code>IOUtils.readLines(InputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.InputStream, java.nio.charset.Charset)">readLines(InputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a list of Strings,
+ one entry per line, using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.InputStream, java.lang.String)">readLines(InputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a list of Strings,
+ one entry per line, using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#readLines(java.io.Reader)">readLines(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a list of Strings,
+ one entry per line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readLong()">readLong()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedLong(java.io.InputStream)"><code>EndianUtils.readSwappedLong(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readShort()">readShort()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedShort(java.io.InputStream)"><code>EndianUtils.readSwappedShort(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedDouble(byte[], int)">readSwappedDouble(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "double" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedDouble(java.io.InputStream)">readSwappedDouble(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "double" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedFloat(byte[], int)">readSwappedFloat(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "float" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedFloat(java.io.InputStream)">readSwappedFloat(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "float" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedInteger(byte[], int)">readSwappedInteger(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "int" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedInteger(java.io.InputStream)">readSwappedInteger(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "int" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedLong(byte[], int)">readSwappedLong(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "long" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedLong(java.io.InputStream)">readSwappedLong(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "long" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedShort(byte[], int)">readSwappedShort(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "short" value from a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedShort(java.io.InputStream)">readSwappedShort(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a "short" value from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedInteger(byte[], int)">readSwappedUnsignedInteger(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads an unsigned integer (32-bit) value from a byte array at a given
+ offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedInteger(java.io.InputStream)">readSwappedUnsignedInteger(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a unsigned integer (32-bit) from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedShort(byte[], int)">readSwappedUnsignedShort(byte[], int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads an unsigned short (16-bit) value from a byte array at a given
+ offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedShort(java.io.InputStream)">readSwappedUnsignedShort(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Reads a unsigned short (16-bit) from an InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readUnsignedByte()">readUnsignedByte()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>read()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readUnsignedShort()">readUnsignedShort()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Delegates to <a href="./org/apache/commons/io/EndianUtils.html#readSwappedUnsignedShort(java.io.InputStream)"><code>EndianUtils.readSwappedUnsignedShort(InputStream)</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#readUTF()">readUTF()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Not currently supported - throws <a href="http://download.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang"><code>UnsupportedOperationException</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#ready()">ready()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>ready()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#refresh(java.io.File)">refresh(File)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Refresh the attributes from the <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a>, indicating
+ whether the file has changed.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">RegexFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files using supplied regular expression(s).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#RegexFileFilter(java.lang.String)">RegexFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new regular expression filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#RegexFileFilter(java.lang.String, org.apache.commons.io.IOCase)">RegexFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new regular expression filter with the specified flags case sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#RegexFileFilter(java.lang.String, int)">RegexFileFilter(String, int)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new regular expression filter with the specified flags.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/RegexFileFilter.html#RegexFileFilter(java.util.regex.Pattern)">RegexFileFilter(Pattern)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/RegexFileFilter.html" title="class in org.apache.commons.io.filefilter">RegexFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new regular expression filter for a compiled regular expression</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/LineIterator.html#remove()">remove()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/LineIterator.html" title="class in org.apache.commons.io">LineIterator</a></dt>
+<dd>
+<div class="block">Unsupported.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#removeExtension(java.lang.String)">removeExtension(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Removes the extension from a filename.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#removeFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">removeFileFilter(IOFileFilter)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Removes the specified file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html#removeFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">removeFileFilter(IOFileFilter)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter">ConditionalFileFilter</a></dt>
+<dd>
+<div class="block">Removes the specified file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#removeFileFilter(org.apache.commons.io.filefilter.IOFileFilter)">removeFileFilter(IOFileFilter)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Removes the specified file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#removeListener(org.apache.commons.io.monitor.FileAlterationListener)">removeListener(FileAlterationListener)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Remove a file system listener.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#removeObserver(org.apache.commons.io.monitor.FileAlterationObserver)">removeObserver(FileAlterationObserver)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Remove a file system observer from this monitor.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#requiredCharsets()">requiredCharsets()</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">Constructs a sorted map from canonical charset names to charset objects required of every implementation of the
+ Java platform.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>reset()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>reset()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Reset the reader to the last marked position (or the beginning if
+ mark has not been called).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Reset the stream to the point when mark was last called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Reset the stream to the point when mark was last called.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>reset()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>reset()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#reset()">reset()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#resetByteCount()">resetByteCount()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Set the byte count back to 0.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#resetByteCount()">resetByteCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">Set the byte count back to 0.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#resetByteCount()">resetByteCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Resets the byteCount to zero.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#resetCount()">resetCount()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Set the byte count back to 0.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/CountingOutputStream.html#resetCount()">resetCount()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/CountingOutputStream.html" title="class in org.apache.commons.io.output">CountingOutputStream</a></dt>
+<dd>
+<div class="block">Set the byte count back to 0.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html#resolveClass(java.io.ObjectStreamClass)">resolveClass(ObjectStreamClass)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html" title="class in org.apache.commons.io.input">ClassLoaderObjectInputStream</a></dt>
+<dd>
+<div class="block">Resolve a class specified by the descriptor using the
+ specified ClassLoader or the super ClassLoader.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html#resolveProxyClass(java.lang.String[])">resolveProxyClass(String[])</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ClassLoaderObjectInputStream.html" title="class in org.apache.commons.io.input">ClassLoaderObjectInputStream</a></dt>
+<dd>
+<div class="block">Create a proxy class that implements the specified interfaces using
+ the specified ClassLoader or the super ClassLoader.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input"><span class="strong">ReversedLinesFileReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Reads lines in a file reversely (similar to a BufferedReader, but starting at
+ the last line).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File)">ReversedLinesFileReader(File)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File, java.nio.charset.Charset)"><code>ReversedLinesFileReader.ReversedLinesFileReader(File, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File, java.nio.charset.Charset)">ReversedLinesFileReader(File, Charset)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Creates a ReversedLinesFileReader with default block size of 4KB and the
+ specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File, int, java.nio.charset.Charset)">ReversedLinesFileReader(File, int, Charset)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Creates a ReversedLinesFileReader with the given block size and encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ReversedLinesFileReader.html#ReversedLinesFileReader(java.io.File, int, java.lang.String)">ReversedLinesFileReader(File, int, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ReversedLinesFileReader.html" title="class in org.apache.commons.io.input">ReversedLinesFileReader</a></dt>
+<dd>
+<div class="block">Creates a ReversedLinesFileReader with the given block size and encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#run()">run()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Follows changes in the file, calling the TailerListener's handle method for each new line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#run()">run()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Run.</div>
+</dd>
+</dl>
+<a name="_S_">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#SENSITIVE">SENSITIVE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">The constant for case sensitive regardless of operating system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#separatorsToSystem(java.lang.String)">separatorsToSystem(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Converts all separators to the system separator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#separatorsToUnix(java.lang.String)">separatorsToUnix(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Converts all separators to the Unix separator of forward slash.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#separatorsToWindows(java.lang.String)">separatorsToWindows(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Converts all separators to the Windows separator of backslash.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setChildren(org.apache.commons.io.monitor.FileEntry[])">setChildren(FileEntry[])</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set the directory's files.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setDirectory(boolean)">setDirectory(boolean)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set whether the file is a directory or not.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setExists(boolean)">setExists(boolean)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set whether the file existed the last time it
+ was checked.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#setFileFilters(java.util.List)">setFileFilters(List&lt;IOFileFilter&gt;)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Sets the list of file filters, replacing any previously configured
+ file filters on this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html#setFileFilters(java.util.List)">setFileFilters(List&lt;IOFileFilter&gt;)</a></span> - Method in interface org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/ConditionalFileFilter.html" title="interface in org.apache.commons.io.filefilter">ConditionalFileFilter</a></dt>
+<dd>
+<div class="block">Sets the list of file filters, replacing any previously configured
+ file filters on this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#setFileFilters(java.util.List)">setFileFilters(List&lt;IOFileFilter&gt;)</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Sets the list of file filters, replacing any previously configured
+ file filters on this filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setLastModified(long)">setLastModified(long)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Return the last modified time from the last time it
+ was checked.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setLength(long)">setLength(long)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set the length.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileEntry.html#setName(java.lang.String)">setName(String)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileEntry.html" title="class in org.apache.commons.io.monitor">FileEntry</a></dt>
+<dd>
+<div class="block">Set the file name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#setPropagateClose(boolean)">setPropagateClose(boolean)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Set whether the <a href="./org/apache/commons/io/input/BoundedInputStream.html#close()"><code>BoundedInputStream.close()</code></a> method
+ should propagate to the underling <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#setThreadFactory(java.util.concurrent.ThreadFactory)">setThreadFactory(ThreadFactory)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Set the thread factory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#size()">size()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Return the current size of the byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SIZE_COMPARATOR">SIZE_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Size comparator instance - directories are treated as zero size</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SIZE_REVERSE">SIZE_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Reverse size comparator instance - directories are treated as zero size</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SIZE_SUMDIR_COMPARATOR">SIZE_SUMDIR_COMPARATOR</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Size comparator instance which sums the size of a directory's contents
+ using <a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectory(java.io.File)"><code>FileUtils.sizeOfDirectory(File)</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SIZE_SUMDIR_REVERSE">SIZE_SUMDIR_REVERSE</a></span> - Static variable in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Reverse size comparator instance which sums the size of a directory's contents
+ using <a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectory(java.io.File)"><code>FileUtils.sizeOfDirectory(File)</code></a></div>
+</dd>
+<dt><a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator"><span class="strong">SizeFileComparator</span></a> - Class in <a href="./org/apache/commons/io/comparator/package-summary.html">org.apache.commons.io.comparator</a></dt>
+<dd>
+<div class="block">Compare the <b>length/size</b> of two files for order (see
+ <a href="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true#length()" title="class or interface in java.io"><code>File.length()</code></a> and <a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectory(java.io.File)"><code>FileUtils.sizeOfDirectory(File)</code></a>).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SizeFileComparator()">SizeFileComparator()</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file size comparator instance (directories treated as zero size).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#SizeFileComparator(boolean)">SizeFileComparator(boolean)</a></span> - Constructor for class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">Construct a file size comparator instance specifying whether the size of
+ the directory contents should be aggregated.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#sizeFileFilter(long)">sizeFileFilter(long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the file is bigger than a certain size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#sizeFileFilter(long, boolean)">sizeFileFilter(long, boolean)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that filters based on file size.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">SizeFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files based on size, can filter either smaller files or
+ files equal to or larger than a given threshold.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html#SizeFileFilter(long)">SizeFileFilter(long)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter">SizeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new size file filter for files equal to or 
+ larger than a certain size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html#SizeFileFilter(long, boolean)">SizeFileFilter(long, boolean)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter">SizeFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new size file filter for files based on a certain size
+ threshold.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#sizeOf(java.io.File)">sizeOf(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns the size of the specified file or directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#sizeOfAsBigInteger(java.io.File)">sizeOfAsBigInteger(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Returns the size of the specified file or directory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectory(java.io.File)">sizeOfDirectory(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Counts the size of a directory recursively (sum of the length of all files).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#sizeOfDirectoryAsBigInteger(java.io.File)">sizeOfDirectoryAsBigInteger(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Counts the size of a directory recursively (sum of the length of all files).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#sizeRangeFileFilter(long, long)">sizeRangeFileFilter(long, long)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that accepts files whose size is &gt;= minimum size
+ and &lt;= maximum size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BOMInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BOMInputStream.html" title="class in org.apache.commons.io.input">BOMInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(long)</code> method, detecting and optionallyskipping BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(long)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BrokenInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BrokenInputStream.html" title="class in org.apache.commons.io.input">BrokenInputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceInputStream.html" title="class in org.apache.commons.io.input">CharSequenceInputStream</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Skip the specified number of characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CountingInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CountingInputStream.html" title="class in org.apache.commons.io.input">CountingInputStream</a></dt>
+<dd>
+<div class="block">Skips the stream over the specified number of bytes, adding the skipped
+ amount to the count.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullInputStream.html" title="class in org.apache.commons.io.input">NullInputStream</a></dt>
+<dd>
+<div class="block">Skip a specified number of bytes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/NullReader.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/NullReader.html" title="class in org.apache.commons.io.input">NullReader</a></dt>
+<dd>
+<div class="block">Skip a specified number of characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyInputStream.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyInputStream.html" title="class in org.apache.commons.io.input">ProxyInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(long)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/ProxyReader.html#skip(long)">skip(long)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/ProxyReader.html" title="class in org.apache.commons.io.input">ProxyReader</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(long)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skip(java.io.InputStream, long)">skip(InputStream, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips bytes from an input byte stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skip(java.nio.channels.ReadableByteChannel, long)">skip(ReadableByteChannel, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips bytes from a ReadableByteChannel.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skip(java.io.Reader, long)">skip(Reader, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips characters from an input character stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#skipBytes(int)">skipBytes(int)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>skip(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skipFully(java.io.InputStream, long)">skipFully(InputStream, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skipFully(java.nio.channels.ReadableByteChannel, long)">skipFully(ReadableByteChannel, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips the requested number of bytes or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#skipFully(java.io.Reader, long)">skipFully(Reader, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Skips the requested number of characters or fail if there are not enough left.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#start()">start()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Start monitoring.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#stop()">stop()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Allows the tailer to complete its current loop and return.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#stop()">stop()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Stop monitoring.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html#stop(long)">stop(long)</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationMonitor.html" title="class in org.apache.commons.io.monitor">FileAlterationMonitor</a></dt>
+<dd>
+<div class="block">Stop monitoring.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output"><span class="strong">StringBuilderWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a> implementation that outputs to a <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#StringBuilderWriter()">StringBuilderWriter()</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Construct a new <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a> instance with default capacity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#StringBuilderWriter(int)">StringBuilderWriter(int)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Construct a new <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a> instance with the specified capacity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#StringBuilderWriter(java.lang.StringBuilder)">StringBuilderWriter(StringBuilder)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Construct a new instance with the specified <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#suffixFileFilter(java.lang.String)">suffixFileFilter(String)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename ends with the specified text.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#suffixFileFilter(java.lang.String, org.apache.commons.io.IOCase)">suffixFileFilter(String, IOCase)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that returns true if the filename ends with the specified text.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">SuffixFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files based on the suffix (what the filename ends with).</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.lang.String)">SuffixFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for a single extension.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.lang.String, org.apache.commons.io.IOCase)">SuffixFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for a single extension
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.lang.String[])">SuffixFileFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for an array of suffixs.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.lang.String[], org.apache.commons.io.IOCase)">SuffixFileFilter(String[], IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for an array of suffixs
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.util.List)">SuffixFileFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for a list of suffixes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#SuffixFileFilter(java.util.List, org.apache.commons.io.IOCase)">SuffixFileFilter(List&lt;String&gt;, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Constructs a new Suffix file filter for a list of suffixes
+ specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapDouble(double)">swapDouble(double)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "double" value between endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapFloat(float)">swapFloat(float)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "float" value between endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapInteger(int)">swapInteger(int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "int" value between endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapLong(long)">swapLong(long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "long" value between endian systems.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">SwappedDataInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">DataInput for systems relying on little endian data formats.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/SwappedDataInputStream.html#SwappedDataInputStream(java.io.InputStream)">SwappedDataInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/SwappedDataInputStream.html" title="class in org.apache.commons.io.input">SwappedDataInputStream</a></dt>
+<dd>
+<div class="block">Constructs a SwappedDataInputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#swapShort(short)">swapShort(short)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Converts a "short" value between endian systems.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#SYSTEM">SYSTEM</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">The constant for case sensitivity determined by the current operating system.</div>
+</dd>
+</dl>
+<a name="_T_">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">TaggedInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">An input stream decorator that tags potential exceptions so that the
+ stream that caused the exception can easily be identified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TaggedInputStream.html#TaggedInputStream(java.io.InputStream)">TaggedInputStream(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input">TaggedInputStream</a></dt>
+<dd>
+<div class="block">Creates a tagging decorator for the given input stream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io"><span class="strong">TaggedIOException</span></a> - Exception in <a href="./org/apache/commons/io/package-summary.html">org.apache.commons.io</a></dt>
+<dd>
+<div class="block">An <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a> decorator that adds a serializable tag to the
+ wrapped exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#TaggedIOException(java.io.IOException, java.io.Serializable)">TaggedIOException(IOException, Serializable)</a></span> - Constructor for exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Creates a tagged wrapper for the given exception.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">TaggedOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">An output stream decorator that tags potential exceptions so that the
+ stream that caused the exception can easily be identified.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TaggedOutputStream.html#TaggedOutputStream(java.io.OutputStream)">TaggedOutputStream(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output">TaggedOutputStream</a></dt>
+<dd>
+<div class="block">Creates a tagging decorator for the given output stream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input"><span class="strong">Tailer</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Simple implementation of the unix "tail -f" functionality.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener)">Tailer(File, TailerListener)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, starting from the beginning, with the default delay of 1.0s.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long)">Tailer(File, TailerListener, long)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, starting from the beginning.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean)">Tailer(File, TailerListener, long, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, with a delay other than the default 1.0s.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, boolean)">Tailer(File, TailerListener, long, boolean, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, with a delay other than the default 1.0s.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, int)">Tailer(File, TailerListener, long, boolean, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, with a specified buffer size.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/Tailer.html#Tailer(java.io.File, org.apache.commons.io.input.TailerListener, long, boolean, boolean, int)">Tailer(File, TailerListener, long, boolean, boolean, int)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input">Tailer</a></dt>
+<dd>
+<div class="block">Creates a Tailer for the given file, with a specified buffer size.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input"><span class="strong">TailerListener</span></a> - Interface in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Listener for events from a <a href="./org/apache/commons/io/input/Tailer.html" title="class in org.apache.commons.io.input"><code>Tailer</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input"><span class="strong">TailerListenerAdapter</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block"><a href="./org/apache/commons/io/input/TailerListener.html" title="interface in org.apache.commons.io.input"><code>TailerListener</code></a> Adapter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TailerListenerAdapter.html#TailerListenerAdapter()">TailerListenerAdapter()</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TailerListenerAdapter.html" title="class in org.apache.commons.io.input">TailerListenerAdapter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input"><span class="strong">TeeInputStream</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">InputStream proxy that transparently writes a copy of all bytes read
+ from the proxied stream to a given OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#TeeInputStream(java.io.InputStream, java.io.OutputStream)">TeeInputStream(InputStream, OutputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Creates a TeeInputStream that proxies the given <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>
+ and copies all read bytes to the given <a href="http://download.oracle.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io"><code>OutputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TeeInputStream.html#TeeInputStream(java.io.InputStream, java.io.OutputStream, boolean)">TeeInputStream(InputStream, OutputStream, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TeeInputStream.html" title="class in org.apache.commons.io.input">TeeInputStream</a></dt>
+<dd>
+<div class="block">Creates a TeeInputStream that proxies the given <a href="http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>
+ and copies all read bytes to the given <a href="http://download.oracle.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io"><code>OutputStream</code></a>.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">TeeOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Classic splitter of OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#TeeOutputStream(java.io.OutputStream, java.io.OutputStream)">TeeOutputStream(OutputStream, OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a TeeOutputStream.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">ThresholdingOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">An output stream which triggers an event when a specified number of bytes of
+ data have been written to it.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#ThresholdingOutputStream(int)">ThresholdingOutputStream(int)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Constructs an instance of this class which will trigger an event at the
+ specified threshold.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#thresholdReached()">thresholdReached()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Switches the underlying output stream from a memory based stream to one
+ that is backed by disk.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#thresholdReached()">thresholdReached()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Indicates that the configured threshold has been reached, and that a
+ subclass should take whatever action necessary on this event.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/TaggedIOException.html#throwCauseIfTaggedWith(java.lang.Throwable, java.lang.Object)">throwCauseIfTaggedWith(Throwable, Object)</a></span> - Static method in exception org.apache.commons.io.<a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io">TaggedIOException</a></dt>
+<dd>
+<div class="block">Throws the original <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a> if the given throwable is
+ a <a href="./org/apache/commons/io/TaggedIOException.html" title="class in org.apache.commons.io"><code>TaggedIOException</code></a> decorator the given tag.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/TaggedInputStream.html#throwIfCauseOf(java.lang.Throwable)">throwIfCauseOf(Throwable)</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/TaggedInputStream.html" title="class in org.apache.commons.io.input">TaggedInputStream</a></dt>
+<dd>
+<div class="block">Re-throws the original exception thrown by this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TaggedOutputStream.html#throwIfCauseOf(java.lang.Exception)">throwIfCauseOf(Exception)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TaggedOutputStream.html" title="class in org.apache.commons.io.output">TaggedOutputStream</a></dt>
+<dd>
+<div class="block">Re-throws the original exception thrown by this stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toBufferedInputStream(java.io.InputStream)">toBufferedInputStream(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Fetches entire contents of an <code>InputStream</code> and represent
+ same data as result InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toBufferedInputStream(java.io.InputStream)">toBufferedInputStream(InputStream)</a></span> - Static method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Fetches entire contents of an <code>InputStream</code> and represent
+ same data as result InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toBufferedReader(java.io.Reader)">toBufferedReader(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Returns the given reader if it is a <a href="http://download.oracle.com/javase/6/docs/api/java/io/BufferedReader.html?is-external=true" title="class or interface in java.io"><code>BufferedReader</code></a>, otherwise creates a BufferedReader from the given
+ reader.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.InputStream)">toByteArray(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.InputStream, long)">toByteArray(InputStream, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets contents of an <code>InputStream</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.InputStream, int)">toByteArray(InputStream, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.Reader)">toByteArray(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.Reader, java.nio.charset.Charset)"><code>IOUtils.toByteArray(Reader, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.Reader, java.nio.charset.Charset)">toByteArray(Reader, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a <code>byte[]</code>
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.io.Reader, java.lang.String)">toByteArray(Reader, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a <code>byte[]</code>
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.lang.String)">toByteArray(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 Use <a href="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true#getBytes()" title="class or interface in java.lang"><code>String.getBytes()</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.net.URI)">toByteArray(URI)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>URI</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.net.URL)">toByteArray(URL)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>URL</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toByteArray(java.net.URLConnection)">toByteArray(URLConnection)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>URLConnection</code> as a <code>byte[]</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toByteArray()">toByteArray()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Gets the curent contents of this byte stream as a byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.InputStream)">toCharArray(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.InputStream, java.nio.charset.Charset)"><code>IOUtils.toCharArray(InputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.InputStream, java.nio.charset.Charset)">toCharArray(InputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a character array
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.InputStream, java.lang.String)">toCharArray(InputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a character array
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toCharArray(java.io.Reader)">toCharArray(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a character array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#toCharset(java.nio.charset.Charset)">toCharset(Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">Returns the given Charset or the default Charset if the given Charset is null.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#toCharset(java.lang.String)">toCharset(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">Returns a Charset for the named charset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#toFile(java.net.URL)">toFile(URL)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Convert from a <code>URL</code> to a <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#toFiles(java.net.URL[])">toFiles(URL[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Converts each of an array of <code>URL</code> to a <code>File</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.CharSequence)">toInputStream(CharSequence)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.CharSequence, java.nio.charset.Charset)"><code>IOUtils.toInputStream(CharSequence, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.CharSequence, java.nio.charset.Charset)">toInputStream(CharSequence, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Converts the specified CharSequence to an input stream, encoded as bytes
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.CharSequence, java.lang.String)">toInputStream(CharSequence, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Converts the specified CharSequence to an input stream, encoded as bytes
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.String)">toInputStream(String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.String, java.nio.charset.Charset)"><code>IOUtils.toInputStream(String, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.String, java.nio.charset.Charset)">toInputStream(String, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Converts the specified string to an input stream, encoded as bytes
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toInputStream(java.lang.String, java.lang.String)">toInputStream(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Converts the specified string to an input stream, encoded as bytes
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toInputStream()">toInputStream()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Gets the current contents of this byte stream as a Input Stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#toList(org.apache.commons.io.filefilter.IOFileFilter...)">toList(IOFileFilter...)</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Create a List of file filters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Provide a String representation of the BOM.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/CompositeFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/CompositeFileComparator.html" title="class in org.apache.commons.io.comparator">CompositeFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/ExtensionFileComparator.html" title="class in org.apache.commons.io.comparator">ExtensionFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/NameFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/NameFileComparator.html" title="class in org.apache.commons.io.comparator">NameFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/PathFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/PathFileComparator.html" title="class in org.apache.commons.io.comparator">PathFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/comparator/SizeFileComparator.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.comparator.<a href="./org/apache/commons/io/comparator/SizeFileComparator.html" title="class in org.apache.commons.io.comparator">SizeFileComparator</a></dt>
+<dd>
+<div class="block">String representation of this file comparator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileDeleteStrategy.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a></dt>
+<dd>
+<div class="block">Gets a string describing the delete strategy.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AbstractFileFilter.html" title="class in org.apache.commons.io.filefilter">AbstractFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AgeFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AgeFileFilter.html" title="class in org.apache.commons.io.filefilter">AgeFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/AndFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/AndFileFilter.html" title="class in org.apache.commons.io.filefilter">AndFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/DelegateFileFilter.html" title="class in org.apache.commons.io.filefilter">DelegateFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/MagicNumberFileFilter.html" title="class in org.apache.commons.io.filefilter">MagicNumberFileFilter</a></dt>
+<dd>
+<div class="block">Returns a String representation of the file filter, which includes the
+ magic number bytes and byte offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NameFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NameFileFilter.html" title="class in org.apache.commons.io.filefilter">NameFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/NotFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/NotFileFilter.html" title="class in org.apache.commons.io.filefilter">NotFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/OrFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/OrFileFilter.html" title="class in org.apache.commons.io.filefilter">OrFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/PrefixFileFilter.html" title="class in org.apache.commons.io.filefilter">PrefixFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SizeFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SizeFileFilter.html" title="class in org.apache.commons.io.filefilter">SizeFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/SuffixFileFilter.html" title="class in org.apache.commons.io.filefilter">SuffixFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representaion of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Provide a String representation of this file filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/BoundedInputStream.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/BoundedInputStream.html" title="class in org.apache.commons.io.input">BoundedInputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>toString()</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/CharSequenceReader.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/CharSequenceReader.html" title="class in org.apache.commons.io.input">CharSequenceReader</a></dt>
+<dd>
+<div class="block">Return a String representation of the underlying
+ character sequence.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOCase.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOCase.html" title="class in org.apache.commons.io">IOCase</a></dt>
+<dd>
+<div class="block">Gets a string describing the sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.io.InputStream)">toString(InputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toString(java.io.InputStream, java.nio.charset.Charset)"><code>IOUtils.toString(InputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.io.InputStream, java.nio.charset.Charset)">toString(InputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a String
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.io.InputStream, java.lang.String)">toString(InputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of an <code>InputStream</code> as a String
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.io.Reader)">toString(Reader)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>Reader</code> as a String.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URI)">toString(URI)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URI, java.nio.charset.Charset)"><code>IOUtils.toString(URI, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URI, java.nio.charset.Charset)">toString(URI, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents at the given URI.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URI, java.lang.String)">toString(URI, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents at the given URI.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URL)">toString(URL)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URL, java.nio.charset.Charset)"><code>IOUtils.toString(URL, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URL, java.nio.charset.Charset)">toString(URL, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents at the given URL.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(java.net.URL, java.lang.String)">toString(URL, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents at the given URL.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(byte[])">toString(byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 Use <a href="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true#String(byte[])" title="class or interface in java.lang"><code>String.String(byte[])</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#toString(byte[], java.lang.String)">toString(byte[], String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Gets the contents of a <code>byte[]</code> as a String
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/monitor/FileAlterationObserver.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.monitor.<a href="./org/apache/commons/io/monitor/FileAlterationObserver.html" title="class in org.apache.commons.io.monitor">FileAlterationObserver</a></dt>
+<dd>
+<div class="block">Provide a String representation of this observer.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toString(java.lang.String)"><code>ByteArrayOutputStream.toString(String)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toString(java.lang.String)">toString(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Gets the curent contents of this byte stream as a string
+ using the specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#toString(java.nio.charset.Charset)">toString(Charset)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Gets the curent contents of this byte stream as a string
+ using the specified encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#toString()">toString()</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Returns <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true#toString()" title="class or interface in java.lang"><code>StringBuilder.toString()</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#touch(java.io.File)">touch(File)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Implements the same behaviour as the "touch" utility on Unix.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#toURLs(java.io.File[])">toURLs(File[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Converts each of an array of <code>File</code> to a <code>URL</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#track(java.io.File, java.lang.Object)">track(File, Object)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.io.File, java.lang.Object)"><code>FileCleaningTracker.track(File, Object)</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#track(java.io.File, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)">track(File, Object, FileDeleteStrategy)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.io.File, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)"><code>FileCleaningTracker.track(File, Object, FileDeleteStrategy)</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#track(java.lang.String, java.lang.Object)">track(String, Object)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.lang.String, java.lang.Object)"><code>FileCleaningTracker.track(String, Object)</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaner.html#track(java.lang.String, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)">track(String, Object, FileDeleteStrategy)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io">FileCleaner</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.lang.String, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)"><code>FileCleaningTracker.track(String, Object, FileDeleteStrategy)</code></a>.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.io.File, java.lang.Object)">track(File, Object)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Track the specified file, using the provided marker, deleting the file
+ when the marker instance is garbage collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.io.File, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)">track(File, Object, FileDeleteStrategy)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Track the specified file, using the provided marker, deleting the file
+ when the marker instance is garbage collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.lang.String, java.lang.Object)">track(String, Object)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Track the specified file, using the provided marker, deleting the file
+ when the marker instance is garbage collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileCleaningTracker.html#track(java.lang.String, java.lang.Object, org.apache.commons.io.FileDeleteStrategy)">track(String, Object, FileDeleteStrategy)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileCleaningTracker.html" title="class in org.apache.commons.io">FileCleaningTracker</a></dt>
+<dd>
+<div class="block">Track the specified file, using the provided marker, deleting the file
+ when the marker instance is garbage collected.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#TRUE">TRUE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of true filter.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/FileFilterUtils.html#trueFileFilter()">trueFileFilter()</a></span> - Static method in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/FileFilterUtils.html" title="class in org.apache.commons.io.filefilter">FileFilterUtils</a></dt>
+<dd>
+<div class="block">Returns a filter that always returns true.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">TrueFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">A file filter that always returns true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/TrueFileFilter.html#TrueFileFilter()">TrueFileFilter()</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/TrueFileFilter.html" title="class in org.apache.commons.io.filefilter">TrueFileFilter</a></dt>
+<dd>
+<div class="block">Restrictive constructor.</div>
+</dd>
+</dl>
+<a name="_U_">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#US_ASCII">US_ASCII</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Seven-bit ASCII, also known as ISO646-US, also known as the Basic Latin block of the Unicode character set.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#UTF_16">UTF_16</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Sixteen-bit Unicode Transformation Format, The byte order specified by a mandatory initial byte-order mark
+ (either order accepted on input, big-endian used on output)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_16BE">UTF_16BE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-16BE BOM (Big-Endian)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#UTF_16BE">UTF_16BE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Sixteen-bit Unicode Transformation Format, big-endian byte order.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_16LE">UTF_16LE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-16LE BOM (Little-Endian)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#UTF_16LE">UTF_16LE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Sixteen-bit Unicode Transformation Format, little-endian byte order.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_32BE">UTF_32BE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-32BE BOM (Big-Endian)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_32LE">UTF_32LE</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-32LE BOM (Little-Endian)</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_8">UTF_8</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">UTF-8 BOM</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/Charsets.html#UTF_8">UTF_8</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/Charsets.html" title="class in org.apache.commons.io">Charsets</a></dt>
+<dd>
+<div class="block">
+ Eight-bit Unicode Transformation Format.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/ByteOrderMark.html#UTF_BOM">UTF_BOM</a></span> - Static variable in class org.apache.commons.io.<a href="./org/apache/commons/io/ByteOrderMark.html" title="class in org.apache.commons.io">ByteOrderMark</a></dt>
+<dd>
+<div class="block">Unicode BOM character; external form depends on the encoding.</div>
+</dd>
+</dl>
+<a name="_V_">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html#VISIBLE">VISIBLE</a></span> - Static variable in class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/HiddenFileFilter.html" title="class in org.apache.commons.io.filefilter">HiddenFileFilter</a></dt>
+<dd>
+<div class="block">Singleton instance of <i>visible</i> filter</div>
+</dd>
+</dl>
+<a name="_W_">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#waitFor(java.io.File, int)">waitFor(File, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Waits for NFS to propagate a file creation, imposing a timeout.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/DirectoryWalker.html#walk(java.io.File, java.util.Collection)">walk(File, Collection&lt;T&gt;)</a></span> - Method in class org.apache.commons.io.<a href="./org/apache/commons/io/DirectoryWalker.html" title="class in org.apache.commons.io">DirectoryWalker</a></dt>
+<dd>
+<div class="block">Internal method that walks the directory hierarchy in a depth-first manner.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">WildcardFileFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block">Filters files using the supplied wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.lang.String)">WildcardFileFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new case-sensitive wildcard filter for a single wildcard.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.lang.String, org.apache.commons.io.IOCase)">WildcardFileFilter(String, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new wildcard filter for a single wildcard specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.lang.String[])">WildcardFileFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new case-sensitive wildcard filter for an array of wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.lang.String[], org.apache.commons.io.IOCase)">WildcardFileFilter(String[], IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new wildcard filter for an array of wildcards specifying case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.util.List)">WildcardFileFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new case-sensitive wildcard filter for a list of wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html#WildcardFileFilter(java.util.List, org.apache.commons.io.IOCase)">WildcardFileFilter(List&lt;String&gt;, IOCase)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFileFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFileFilter</a></dt>
+<dd>
+<div class="block">Construct a new wildcard filter for a list of wildcards specifying case-sensitivity.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter"><span class="strong">WildcardFilter</span></a> - Class in <a href="./org/apache/commons/io/filefilter/package-summary.html">org.apache.commons.io.filefilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use WilcardFileFilter. Deprecated as this class performs directory
+ filtering which it shouldn't do, but that can't be removed due to compatability.</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#WildcardFilter(java.lang.String)">WildcardFilter(String)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Construct a new case-sensitive wildcard filter for a single wildcard.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#WildcardFilter(java.lang.String[])">WildcardFilter(String[])</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Construct a new case-sensitive wildcard filter for an array of wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/filefilter/WildcardFilter.html#WildcardFilter(java.util.List)">WildcardFilter(List&lt;String&gt;)</a></span> - Constructor for class org.apache.commons.io.filefilter.<a href="./org/apache/commons/io/filefilter/WildcardFilter.html" title="class in org.apache.commons.io.filefilter">WildcardFilter</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+<div class="block">Construct a new case-sensitive wildcard filter for a list of wildcards.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#wildcardMatch(java.lang.String, java.lang.String)">wildcardMatch(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks a filename to see if it matches the specified wildcard matcher,
+ always testing case-sensitive.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#wildcardMatch(java.lang.String, java.lang.String, org.apache.commons.io.IOCase)">wildcardMatch(String, String, IOCase)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks a filename to see if it matches the specified wildcard matcher
+ allowing control over case-sensitivity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FilenameUtils.html#wildcardMatchOnSystem(java.lang.String, java.lang.String)">wildcardMatchOnSystem(String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FilenameUtils.html" title="class in org.apache.commons.io">FilenameUtils</a></dt>
+<dd>
+<div class="block">Checks a filename to see if it matches the specified wildcard matcher
+ using the case rules of the system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence)">write(File, CharSequence)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.nio.charset.Charset)"><code>FileUtils.write(File, CharSequence, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, boolean)">write(File, CharSequence, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.nio.charset.Charset, boolean)"><code>FileUtils.write(File, CharSequence, Charset, boolean)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.nio.charset.Charset)">write(File, CharSequence, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a CharSequence to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.lang.String)">write(File, CharSequence, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a CharSequence to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.nio.charset.Charset, boolean)">write(File, CharSequence, Charset, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a CharSequence to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.lang.String, boolean)">write(File, CharSequence, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a CharSequence to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.OutputStream)">write(byte[], OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes bytes from a <code>byte[]</code> to an <code>OutputStream</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.Writer)">write(byte[], Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.Writer, java.nio.charset.Charset)"><code>IOUtils.write(byte[], Writer, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.Writer, java.nio.charset.Charset)">write(byte[], Writer, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes bytes from a <code>byte[]</code> to chars on a <code>Writer</code>
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(byte[], java.io.Writer, java.lang.String)">write(byte[], Writer, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes bytes from a <code>byte[]</code> to chars on a <code>Writer</code>
+ using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.Writer)">write(char[], Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>char[]</code> to a <code>Writer</code>
+ using the default character encoding of the platform.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.OutputStream)">write(char[], OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.write(char[], OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.OutputStream, java.nio.charset.Charset)">write(char[], OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>char[]</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(char[], java.io.OutputStream, java.lang.String)">write(char[], OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>char[]</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.Writer)">write(CharSequence, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>CharSequence</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.OutputStream)">write(CharSequence, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.write(CharSequence, OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.OutputStream, java.nio.charset.Charset)">write(CharSequence, OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>CharSequence</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.CharSequence, java.io.OutputStream, java.lang.String)">write(CharSequence, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>CharSequence</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.Writer)">write(String, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>String</code> to a <code>Writer</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.OutputStream)">write(String, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.write(String, OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.OutputStream, java.nio.charset.Charset)">write(String, OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>String</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.String, java.io.OutputStream, java.lang.String)">write(String, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes chars from a <code>String</code> to bytes on an
+ <code>OutputStream</code> using the specified character encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.StringBuffer, java.io.Writer)">write(StringBuffer, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>replaced by write(CharSequence, Writer)</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.StringBuffer, java.io.OutputStream)">write(StringBuffer, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>replaced by write(CharSequence, OutputStream)</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#write(java.lang.StringBuffer, java.io.OutputStream, java.lang.String)">write(StringBuffer, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>replaced by write(CharSequence, OutputStream, String)</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/BrokenOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/BrokenOutputStream.html" title="class in org.apache.commons.io.output">BrokenOutputStream</a></dt>
+<dd>
+<div class="block">Throws the configured exception.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Write the bytes to byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Write a byte to byte array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#write(java.io.InputStream)">write(InputStream)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Writes the entire contents of the specified input stream to this
+ byte stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ClosedOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ClosedOutputStream.html" title="class in org.apache.commons.io.output">ClosedOutputStream</a></dt>
+<dd>
+<div class="block">Throws an <a href="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a> to indicate that the stream is closed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DemuxOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DemuxOutputStream.html" title="class in org.apache.commons.io.output">DemuxOutputStream</a></dt>
+<dd>
+<div class="block">Writes byte to stream associated with current thread.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write a character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(char[])">write(char[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write the characters from an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write the specified characters from an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write the characters from a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/FileWriterWithEncoding.html#write(java.lang.String, int, int)">write(String, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/FileWriterWithEncoding.html" title="class in org.apache.commons.io.output">FileWriterWithEncoding</a></dt>
+<dd>
+<div class="block">Write the specified characters from a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write a character.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(char[])">write(char[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write the characters from an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write the specified characters from an array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write the characters from a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/LockableFileWriter.html#write(java.lang.String, int, int)">write(String, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/LockableFileWriter.html" title="class in org.apache.commons.io.output">LockableFileWriter</a></dt>
+<dd>
+<div class="block">Write the specified characters from a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullOutputStream.html" title="class in org.apache.commons.io.output">NullOutputStream</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(char[])">write(char[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/NullWriter.html#write(java.lang.String, int, int)">write(String, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/NullWriter.html" title="class in org.apache.commons.io.output">NullWriter</a></dt>
+<dd>
+<div class="block">Does nothing - output to <code>/dev/null</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(byte[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyOutputStream.html" title="class in org.apache.commons.io.output">ProxyOutputStream</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(byte[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(char[])">write(char[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(char[])</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(char[], int, int)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(String)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ProxyWriter.html#write(java.lang.String, int, int)">write(String, int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ProxyWriter.html" title="class in org.apache.commons.io.output">ProxyWriter</a></dt>
+<dd>
+<div class="block">Invokes the delegate's <code>write(String)</code> method.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#write(java.lang.String)">write(String)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Write a String to the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/StringBuilderWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/StringBuilderWriter.html" title="class in org.apache.commons.io.output">StringBuilderWriter</a></dt>
+<dd>
+<div class="block">Write a portion of a character array to the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang"><code>StringBuilder</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Write the bytes to both streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Write the specified bytes to both streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/TeeOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/TeeOutputStream.html" title="class in org.apache.commons.io.output">TeeOutputStream</a></dt>
+<dd>
+<div class="block">Write a byte to both streams.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Writes the specified byte to this output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Writes <code>b.length</code> bytes from the specified byte array to this
+ output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ThresholdingOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ThresholdingOutputStream.html" title="class in org.apache.commons.io.output">ThresholdingOutputStream</a></dt>
+<dd>
+<div class="block">Writes <code>len</code> bytes from the specified byte array starting at
+ offset <code>off</code> to this output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#write(byte[], int, int)">write(byte[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Write bytes from the specified byte array to the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#write(byte[])">write(byte[])</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Write bytes from the specified byte array to the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#write(int)">write(int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Write a single byte to the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#write(char[], int, int)">write(char[], int, int)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Write the characters to the underlying writer, detecing encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeByteArrayToFile(java.io.File, byte[])">writeByteArrayToFile(File, byte[])</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a byte array to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeByteArrayToFile(java.io.File, byte[], boolean)">writeByteArrayToFile(File, byte[], boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a byte array to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeByteArrayToFile(java.io.File, byte[], int, int)">writeByteArrayToFile(File, byte[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes <code>len</code> bytes from the specified byte array starting
+ at offset <code>off</code> to a file, creating the file if it does
+ not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeByteArrayToFile(java.io.File, byte[], int, int, boolean)">writeByteArrayToFile(File, byte[], int, int, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes <code>len</code> bytes from the specified byte array starting
+ at offset <code>off</code> to a file, creating the file if it does
+ not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.lang.String, java.util.Collection)">writeLines(File, String, Collection&lt;?&gt;)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.lang.String, java.util.Collection, boolean)">writeLines(File, String, Collection&lt;?&gt;, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line, optionally appending.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.util.Collection)">writeLines(File, Collection&lt;?&gt;)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.util.Collection, boolean)">writeLines(File, Collection&lt;?&gt;, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.lang.String, java.util.Collection, java.lang.String)">writeLines(File, String, Collection&lt;?&gt;, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.lang.String, java.util.Collection, java.lang.String, boolean)">writeLines(File, String, Collection&lt;?&gt;, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.util.Collection, java.lang.String)">writeLines(File, Collection&lt;?&gt;, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeLines(java.io.File, java.util.Collection, java.lang.String, boolean)">writeLines(File, Collection&lt;?&gt;, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ the specified <code>File</code> line by line.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.OutputStream)">writeLines(Collection&lt;?&gt;, String, OutputStream)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.OutputStream, java.nio.charset.Charset)"><code>IOUtils.writeLines(Collection, String, OutputStream, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.OutputStream, java.nio.charset.Charset)">writeLines(Collection&lt;?&gt;, String, OutputStream, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ an <code>OutputStream</code> line by line, using the specified character
+ encoding and the specified line ending.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.OutputStream, java.lang.String)">writeLines(Collection&lt;?&gt;, String, OutputStream, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ an <code>OutputStream</code> line by line, using the specified character
+ encoding and the specified line ending.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/IOUtils.html#writeLines(java.util.Collection, java.lang.String, java.io.Writer)">writeLines(Collection&lt;?&gt;, String, Writer)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/IOUtils.html" title="class in org.apache.commons.io">IOUtils</a></dt>
+<dd>
+<div class="block">Writes the <code>toString()</code> value of each item in a collection to
+ a <code>Writer</code> line by line, using the specified line ending.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><span class="strong">WriterOutputStream</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block"><a href="http://download.oracle.com/javase/6/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io"><code>OutputStream</code></a> implementation that transforms a byte stream to a
+ character stream using a specified charset encoding and writes the resulting
+ stream to a <a href="http://download.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.CharsetDecoder)">WriterOutputStream(Writer, CharsetDecoder)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a> with a default output buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.CharsetDecoder, int, boolean)">WriterOutputStream(Writer, CharsetDecoder, int, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.Charset, int, boolean)">WriterOutputStream(Writer, Charset, int, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.Charset)">WriterOutputStream(Writer, Charset)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a> with a default output buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.lang.String, int, boolean)">WriterOutputStream(Writer, String, int, boolean)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.lang.String)">WriterOutputStream(Writer, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block">Constructs a new <a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output"><code>WriterOutputStream</code></a> with a default output buffer size of
+ 1024 characters.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer)">WriterOutputStream(Writer)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/WriterOutputStream.html" title="class in org.apache.commons.io.output">WriterOutputStream</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/output/WriterOutputStream.html#WriterOutputStream(java.io.Writer, java.nio.charset.Charset)"><code>WriterOutputStream.WriterOutputStream(Writer, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.nio.charset.Charset)">writeStringToFile(File, String, Charset)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a String to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.lang.String)">writeStringToFile(File, String, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a String to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.nio.charset.Charset, boolean)">writeStringToFile(File, String, Charset, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a String to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.lang.String, boolean)">writeStringToFile(File, String, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block">Writes a String to a file creating the file if it does not exist.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String)">writeStringToFile(File, String)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.nio.charset.Charset)"><code>FileUtils.writeStringToFile(File, String, Charset)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, boolean)">writeStringToFile(File, String, boolean)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/FileUtils.html" title="class in org.apache.commons.io">FileUtils</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>2.5 use <a href="./org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File, java.lang.String, java.nio.charset.Charset, boolean)"><code>FileUtils.writeStringToFile(File, String, Charset, boolean)</code></a> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedDouble(byte[], int, double)">writeSwappedDouble(byte[], int, double)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "double" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedDouble(java.io.OutputStream, double)">writeSwappedDouble(OutputStream, double)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "double" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedFloat(byte[], int, float)">writeSwappedFloat(byte[], int, float)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "float" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedFloat(java.io.OutputStream, float)">writeSwappedFloat(OutputStream, float)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "float" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedInteger(byte[], int, int)">writeSwappedInteger(byte[], int, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "int" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedInteger(java.io.OutputStream, int)">writeSwappedInteger(OutputStream, int)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "int" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedLong(byte[], int, long)">writeSwappedLong(byte[], int, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "long" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedLong(java.io.OutputStream, long)">writeSwappedLong(OutputStream, long)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "long" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedShort(byte[], int, short)">writeSwappedShort(byte[], int, short)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "short" value to a byte array at a given offset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/EndianUtils.html#writeSwappedShort(java.io.OutputStream, short)">writeSwappedShort(OutputStream, short)</a></span> - Static method in class org.apache.commons.io.<a href="./org/apache/commons/io/EndianUtils.html" title="class in org.apache.commons.io">EndianUtils</a></dt>
+<dd>
+<div class="block">Writes a "short" value to an OutputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/ByteArrayOutputStream.html#writeTo(java.io.OutputStream)">writeTo(OutputStream)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/ByteArrayOutputStream.html" title="class in org.apache.commons.io.output">ByteArrayOutputStream</a></dt>
+<dd>
+<div class="block">Writes the entire contents of this byte stream to the
+ specified output stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/DeferredFileOutputStream.html#writeTo(java.io.OutputStream)">writeTo(OutputStream)</a></span> - Method in class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/DeferredFileOutputStream.html" title="class in org.apache.commons.io.output">DeferredFileOutputStream</a></dt>
+<dd>
+<div class="block">Writes the data from this output stream to the specified output stream,
+ after it has been closed.</div>
+</dd>
+</dl>
+<a name="_X_">
+<!--   -->
+</a>
+<h2 class="title">X</h2>
+<dl>
+<dt><a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input"><span class="strong">XmlStreamReader</span></a> - Class in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">Character stream that handles all the necessary Voodo to figure out the
+ charset encoding of the XML document within the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.File)">XmlStreamReader(File)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader for a File.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream)">XmlStreamReader(InputStream)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader for a raw InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, boolean)">XmlStreamReader(InputStream, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader for a raw InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, boolean, java.lang.String)">XmlStreamReader(InputStream, boolean, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader for a raw InputStream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.net.URL)">XmlStreamReader(URL)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using the InputStream of a URL.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.net.URLConnection, java.lang.String)">XmlStreamReader(URLConnection, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using the InputStream of a URLConnection.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, java.lang.String)">XmlStreamReader(InputStream, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using an InputStream an the associated content-type
+ header.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, java.lang.String, boolean, java.lang.String)">XmlStreamReader(InputStream, String, boolean, String)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using an InputStream an the associated content-type
+ header.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReader.html#XmlStreamReader(java.io.InputStream, java.lang.String, boolean)">XmlStreamReader(InputStream, String, boolean)</a></span> - Constructor for class org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReader.html" title="class in org.apache.commons.io.input">XmlStreamReader</a></dt>
+<dd>
+<div class="block">Creates a Reader using an InputStream an the associated content-type
+ header.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input"><span class="strong">XmlStreamReaderException</span></a> - Exception in <a href="./org/apache/commons/io/input/package-summary.html">org.apache.commons.io.input</a></dt>
+<dd>
+<div class="block">The XmlStreamReaderException is thrown by the XmlStreamReader constructors if
+ the charset encoding can not be determined according to the XML 1.0
+ specification and RFC 3023.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#XmlStreamReaderException(java.lang.String, java.lang.String, java.lang.String, java.lang.String)">XmlStreamReaderException(String, String, String, String)</a></span> - Constructor for exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Creates an exception instance if the charset encoding could not be
+ determined.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/input/XmlStreamReaderException.html#XmlStreamReaderException(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)">XmlStreamReaderException(String, String, String, String, String, String)</a></span> - Constructor for exception org.apache.commons.io.input.<a href="./org/apache/commons/io/input/XmlStreamReaderException.html" title="class in org.apache.commons.io.input">XmlStreamReaderException</a></dt>
+<dd>
+<div class="block">Creates an exception instance if the charset encoding could not be
+ determined.</div>
+</dd>
+<dt><a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output"><span class="strong">XmlStreamWriter</span></a> - Class in <a href="./org/apache/commons/io/output/package-summary.html">org.apache.commons.io.output</a></dt>
+<dd>
+<div class="block">Character stream that handles all the necessary Voodo to figure out the
+ charset encoding of the XML document written to the stream.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#XmlStreamWriter(java.io.OutputStream)">XmlStreamWriter(OutputStream)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Construct an new XML stream writer for the specified output stream
+ with a default encoding of UTF-8.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#XmlStreamWriter(java.io.OutputStream, java.lang.String)">XmlStreamWriter(OutputStream, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Construct an new XML stream writer for the specified output stream
+ with the specified default encoding.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#XmlStreamWriter(java.io.File)">XmlStreamWriter(File)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Construct an new XML stream writer for the specified file
+ with a default encoding of UTF-8.</div>
+</dd>
+<dt><span class="strong"><a href="./org/apache/commons/io/output/XmlStreamWriter.html#XmlStreamWriter(java.io.File, java.lang.String)">XmlStreamWriter(File, String)</a></span> - Constructor for class org.apache.commons.io.output.<a href="./org/apache/commons/io/output/XmlStreamWriter.html" title="class in org.apache.commons.io.output">XmlStreamWriter</a></dt>
+<dd>
+<div class="block">Construct an new XML stream writer for the specified file
+ with the specified default encoding.</div>
+</dd>
+</dl>
+<a href="#_A_">A</a>&nbsp;<a href="#_B_">B</a>&nbsp;<a href="#_C_">C</a>&nbsp;<a href="#_D_">D</a>&nbsp;<a href="#_E_">E</a>&nbsp;<a href="#_F_">F</a>&nbsp;<a href="#_G_">G</a>&nbsp;<a href="#_H_">H</a>&nbsp;<a href="#_I_">I</a>&nbsp;<a href="#_L_">L</a>&nbsp;<a href="#_M_">M</a>&nbsp;<a href="#_N_">N</a>&nbsp;<a href="#_O_">O</a>&nbsp;<a href="#_P_">P</a>&nbsp;<a href="#_R_">R</a>&nbsp;<a href="#_S_">S</a>&nbsp;<a href="#_T_">T</a>&nbsp;<a href="#_U_">U</a>&nbsp;<a href="#_V_">V</a>&nbsp;<a href="#_W_">W</a>&nbsp;<a href="#_X_">X</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="./overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="./overview-tree.html">Tree</a></li>
+<li><a href="./deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="./help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="./allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2002-2013 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
+</body>
+</html>
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/test/resources/oasis/good/oasisgood1.txt b/trunk/apache-rat-core/src/test/resources/oasis/good/oasisgood1.txt
new file mode 100644
index 0000000..6deff76
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/oasis/good/oasisgood1.txt
@@ -0,0 +1,10 @@
+Copyright (c) OASIS Open 2002-2011. All Rights Reserved.
+
+All capitalized terms in the following text have the meanings assigned
+to them in the OASIS Intellectual Property Rights Policy (the "OASIS
+IPR Policy"). The full Policy may be found at the OASIS website.
+ 
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published,
+and distributed
\ No newline at end of file
diff --git a/trunk/apache-rat-core/src/test/resources/violations/FilterTest.cs b/trunk/apache-rat-core/src/test/resources/violations/FilterTest.cs
new file mode 100644
index 0000000..6d9e1d5
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/violations/FilterTest.cs
@@ -0,0 +1,90 @@
+#if NET_2_0

+using System;

+using System.Collections.Generic;

+using System.Xml;

+using log4net.Appender;

+using log4net.Config;

+using log4net.Core;

+using log4net.Filter;

+using log4net.Repository;

+using NUnit.Framework;

+

+namespace log4net.Tests.Filter

+{

+    [TestFixture]

+    public class FilterTest

+    {

+        [Test]

+        public void FilterConfigurationTest()

+        {

+            XmlDocument log4netConfig = new XmlDocument();

+            #region Load log4netConfig

+            log4netConfig.LoadXml(@"

+            <log4net>

+            <appender name=""MemoryAppender"" type=""log4net.Appender.MemoryAppender, log4net"">

+                <filter type=""log4net.Tests.Filter.MultiplePropertyFilter, log4net.Tests"">

+                    <condition>

+                        <key value=""ABC"" />

+                        <stringToMatch value=""123"" />

+                    </condition>

+                    <condition>

+                        <key value=""DEF"" />

+                        <stringToMatch value=""456"" />

+                    </condition>

+                </filter>

+            </appender>

+            <root>

+                <level value=""ALL"" />

+                <appender-ref ref=""MemoryAppender"" />

+            </root>

+            </log4net>");

+            #endregion

+

+            ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());

+            XmlConfigurator.Configure(rep, log4netConfig["log4net"]);

+

+            IAppender[] appenders = LogManager.GetRepository(rep.Name).GetAppenders();

+            Assert.IsTrue(appenders.Length == 1);

+

+            IAppender appender = Array.Find(appenders, a => a.Name == "MemoryAppender");

+            Assert.IsNotNull(appender);

+

+            MultiplePropertyFilter multiplePropertyFilter = 

+                ((AppenderSkeleton)appender).FilterHead as MultiplePropertyFilter;

+

+            var conditions = multiplePropertyFilter.GetConditions();

+            Assert.AreEqual(2, conditions.Length);

+            Assert.AreEqual("ABC", conditions[0].Key);

+            Assert.AreEqual("123", conditions[0].StringToMatch);

+            Assert.AreEqual("DEF", conditions[1].Key);

+            Assert.AreEqual("456", conditions[1].StringToMatch);

+        }

+    }

+

+    public class MultiplePropertyFilter : FilterSkeleton

+    {

+        private readonly List<Condition> _conditions = new List<Condition>();

+

+        public override FilterDecision Decide(LoggingEvent loggingEvent)

+        {

+            return FilterDecision.Accept;

+        }

+

+        public Condition[] GetConditions()

+        {

+            return _conditions.ToArray();

+        }

+

+        public void AddCondition(Condition condition)

+        {

+            _conditions.Add(condition);

+        }

+        

+        public class Condition

+        {

+            public string Key { get; set; }

+            public string StringToMatch { get; set; }

+        }

+    }

+}

+#endif

diff --git a/trunk/apache-rat-core/src/test/resources/violations/bad.txt b/trunk/apache-rat-core/src/test/resources/violations/bad.txt
new file mode 100644
index 0000000..92c55d5
--- /dev/null
+++ b/trunk/apache-rat-core/src/test/resources/violations/bad.txt
@@ -0,0 +1 @@
+This file has no license.
diff --git a/trunk/apache-rat-plugin/pom.xml b/trunk/apache-rat-plugin/pom.xml
new file mode 100644
index 0000000..2d84b02
--- /dev/null
+++ b/trunk/apache-rat-plugin/pom.xml
@@ -0,0 +1,304 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>apache-rat-project</artifactId>
+    <groupId>org.apache.rat</groupId>
+    <version>0.12-SNAPSHOT</version>
+  </parent>
+  <artifactId>apache-rat-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+  <name>Apache Creadur Rat::Plugin4Maven</name>
+  <description>A plugin for Apache Maven that runs Apache Rat
+   to audit the source to be distributed.</description>
+  <inceptionYear>2007</inceptionYear>
+  <prerequisites>
+    <maven>${mavenVersion}</maven>
+  </prerequisites>
+  <properties>
+    <currentVersion>${project.version}</currentVersion>
+    <doxiaVersion>1.6</doxiaVersion>
+    <doxiaSitetoolsVersion>1.6</doxiaSitetoolsVersion>
+  </properties>
+  <build>
+    <resources>
+      <resource>
+        <filtering>false</filtering>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <filtering>true</filtering>
+        <directory>src/main/filtered-resources</directory>
+      </resource>
+      <resource>
+        <directory>..</directory>
+        <targetPath>META-INF</targetPath>
+        <includes>
+          <include>RELEASE_NOTES.txt</include>
+        </includes>
+      </resource>
+    </resources>
+    <pluginManagement>
+      <plugins>
+         <plugin>
+           <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-plugin-plugin</artifactId>
+          <configuration>
+            <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+          </configuration>
+          <executions>
+            <execution>
+              <id>mojo-descriptor</id>
+              <goals>
+                <goal>descriptor</goal>
+              </goals>
+            </execution>
+            <!-- to generate help goal -->
+            <execution>
+              <id>help-goal</id>
+              <goals>
+                <goal>helpmojo</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <configuration>
+            <excludes>
+              <!-- These files does not have license headers because they are used to test license headers -->
+              <exclude>src/it/it1/src.apt</exclude>
+              <exclude>src/test/resources/unit/it2/src.txt</exclude>
+              <exclude>src/test/resources/unit/it3/src.apt</exclude>
+              <exclude>**/*.iml</exclude>
+              <!-- RAT-171: needs to be added since SCM ignores are only parsed in project root -->
+              <exclude>**/.bzrignore</exclude>
+            </excludes>
+          </configuration>
+        </plugin>
+        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+        <plugin>
+        	<groupId>org.eclipse.m2e</groupId>
+        	<artifactId>lifecycle-mapping</artifactId>
+        	<version>1.0.0</version>
+        	<configuration>
+        		<lifecycleMappingMetadata>
+        			<pluginExecutions>
+        				<pluginExecution>
+        					<pluginExecutionFilter>
+        						<groupId>
+        							org.apache.maven.plugins
+        						</groupId>
+        						<artifactId>
+        							maven-plugin-plugin
+        						</artifactId>
+        						<versionRange>[3.4,)</versionRange>
+        						<goals>
+        							<goal>descriptor</goal>
+        							<goal>helpmojo</goal>
+        						</goals>
+        					</pluginExecutionFilter>
+        					<action>
+        						<ignore></ignore>
+        					</action>
+        				</pluginExecution>
+        			</pluginExecutions>
+        		</lifecycleMappingMetadata>
+        	</configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-invoker-plugin</artifactId>
+        <version>1.10</version>
+        <configuration>
+          <projectsDirectory>src/it</projectsDirectory>
+          <cloneProjectsTo>${project.build.directory}/invoker</cloneProjectsTo>
+          <pomIncludes>
+            <pomInclude>*/pom.xml</pomInclude>
+          </pomIncludes>
+          <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+          <settingsFile>src/it/settings.xml</settingsFile>
+          <postBuildHookScript>verify</postBuildHookScript>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>install</goal>
+              <goal>run</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.rat</groupId>
+      <artifactId>apache-rat-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-annotations</artifactId>
+      <version>${mavenPluginPluginVersion}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact-manager</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-model</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-project</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-settings</artifactId>
+      <version>${mavenVersion}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.doxia</groupId>
+      <artifactId>doxia-core</artifactId>
+      <version>${doxiaVersion}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>xerces</groupId>
+          <artifactId>xercesImpl</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.doxia</groupId>
+      <artifactId>doxia-decoration-model</artifactId>
+      <version>${doxiaSitetoolsVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.doxia</groupId>
+      <artifactId>doxia-sink-api</artifactId>
+      <version>${doxiaVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.doxia</groupId>
+      <artifactId>doxia-site-renderer</artifactId>
+      <version>${doxiaSitetoolsVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.reporting</groupId>
+      <artifactId>maven-reporting-api</artifactId>
+      <version>3.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-plugin-testing-harness</artifactId>
+      <version>1.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>3.0.21</version>
+    </dependency>
+  </dependencies>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-plugin-plugin</artifactId>
+        <version>${mavenPluginPluginVersion}</version>
+      </plugin>
+    </plugins>
+  </reporting>
+  <developers>
+    <developer>
+      <id>jochen</id>
+      <name>Jochen Wiedmann</name>
+      <email>jochen.wiedmann@gmail.com</email>
+    </developer>
+  </developers>
+  <contributors>
+    <contributor>
+      <name>Bernd Bohmann</name>
+      <email>bommel@apache.org</email>
+    </contributor>
+    <contributor>
+      <name>Lars Trieloff</name>
+      <email>lars@trieloff.net</email>
+    </contributor>
+    <contributor>
+      <name>Jukka Zitting</name>
+      <email>jukka@apache.org</email>
+    </contributor>
+  </contributors>
+  <!--
+  <profiles>
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-docck-plugin</artifactId>
+              <executions>
+                <execution>
+                  <goals>
+                    <goal>check</goal>
+                  </goals>
+                </execution>
+              </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+-->
+</project>
diff --git a/trunk/apache-rat-plugin/src/changes/changes.xml b/trunk/apache-rat-plugin/src/changes/changes.xml
new file mode 100644
index 0000000..b0d266b
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/changes/changes.xml
@@ -0,0 +1,73 @@
+<?xml version='1.0'?>
+<!-- 
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+  
+        http://www.apache.org/licenses/LICENSE-2.0
+  
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<document>
+  <properties>
+    <title>Changes in the Rat Maven Plugin</title>
+  </properties>
+  <body>
+    <release version="0.12" date="Not yet released">
+      <action dev="jochen" type="add" issue="RAT-208">
+        Added parameters includesFile, excludesFile, includesFileCharacterset, and
+        excludesFileCharacterset, and support thereof.
+      </action>
+    </release>
+    <release version="1.0-alpha-4" date="Not yet released">
+      <action dev="jochen" type="fix" issue="MOJO-866">
+        Added @requiresDependencyResolution to the RatReportMojo, so that
+        the dependencies are guaranteed to be present, if the mojo is
+        invoked from the command line.
+      </action>
+      <action dev="jochen" type="fix" issue="RAT-35"
+          due-to="Jukka Zitting" due-to-email="jukka@apache.org">
+        Incorrect number of unapproved licenses reported by rat:check
+      </action>
+    </release>
+    <release version="1.0-alpha-3" date="2007-Aug-28">
+      <action dev="jochen" type="fix">
+        Upgraded rat-lib to 0.5.1.
+      </action>
+    </release>
+    <release version="1.0-alpha-2" date="2007-Jun-16">
+      <action dev="jochen" type="add" due-to="Bernd Bohmann"
+          due-to-email="bommel@apache.org" issue="MOJO-685">
+        Added the IDEA specific default excludes.
+      </action>
+      <action dev="jochen" type="add" due-to="Bernd Bohmann"
+          due-to-email="bommel@apache.org" issue="MOJO-685">
+        Added the possibility to exclude subprojects.
+      </action>
+      <action dev="jochen" type="fix" due-to="Lars Trieloff"
+          due-to-email="lars@trieloff.net" issue="MOJO-661">
+        Upgrade to rat-lib-0.5
+      </action>
+      <action dev="jochen" type="fix">
+        The plugin description on the project-reports page was wrong.
+      </action>
+      <action dev="jochen" type="fix" issue="MOJO-819">
+        The plugins report contains now relative paths in the
+        default configuration, in order to avoid exposing
+        unnecessary information on public sites.
+      </action>
+    </release>
+    <release version="1.0-alpha-1" date="2007-Feb-12">
+      <action dev="jochen" type="add">
+        Initial release.
+      </action>
+    </release>
+  </body>
+</document>
diff --git a/trunk/apache-rat-plugin/src/it/it1/invoker.properties b/trunk/apache-rat-plugin/src/it/it1/invoker.properties
new file mode 100644
index 0000000..6e8c347
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/it/it1/invoker.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+invoker.goals = clean apache-rat:check
diff --git a/trunk/apache-rat-plugin/src/it/it1/pom.xml b/trunk/apache-rat-plugin/src/it/it1/pom.xml
new file mode 100644
index 0000000..58eea9b
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/it/it1/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.rat.test</groupId>
+  <artifactId>it1</artifactId>
+  <version>1.0</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>@pom.version@</version>
+        <configuration>
+          <licenses>
+            <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+              <licenseFamilyCategory>YAL__</licenseFamilyCategory>
+              <licenseFamilyName>Yet Another Software License</licenseFamilyName>
+              <notes></notes>
+              <patterns>
+                <pattern>Yet Another License</pattern>
+              </patterns>
+            </license>
+          </licenses>
+          <licenseFamilies>
+            <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
+              <familyName>Yet Another Software License</familyName>
+            </licenseFamily>
+          </licenseFamilies>
+          <includes>
+            <include>src.apt</include>
+          </includes>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/trunk/apache-rat-plugin/src/it/it1/src.apt b/trunk/apache-rat-plugin/src/it/it1/src.apt
new file mode 100644
index 0000000..01ab206
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/it/it1/src.apt
@@ -0,0 +1,12 @@
+~~   Yet Another License, just for test purposes
+
+    --------------
+    Some text file
+    --------------
+
+Some text file
+
+  This is a text file, which intentionally has no Apache License Header.
+  Instead, it contains a dummy license header. The Rat plugin should
+  accept it with a proper custom license matcher.
+
diff --git a/trunk/apache-rat-plugin/src/it/it1/verify.groovy b/trunk/apache-rat-plugin/src/it/it1/verify.groovy
new file mode 100644
index 0000000..1309c96
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/it/it1/verify.groovy
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+content = new File( basedir, 'target/rat.txt' ).text;
+
+assert content.contains( 'YAL__ src.apt' );
\ No newline at end of file
diff --git a/trunk/apache-rat-plugin/src/it/it4_RAT-168/invoker.properties b/trunk/apache-rat-plugin/src/it/it4_RAT-168/invoker.properties
new file mode 100644
index 0000000..6486eb1
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/it/it4_RAT-168/invoker.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+invoker.goals = clean apache-rat:rat
diff --git a/trunk/apache-rat-plugin/src/it/it4_RAT-168/pom.xml b/trunk/apache-rat-plugin/src/it/it4_RAT-168/pom.xml
new file mode 100644
index 0000000..0a419e3
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/it/it4_RAT-168/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.rat.test</groupId>
+  <artifactId>it4rat168</artifactId>
+  <version>1.0</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>@pom.version@</version>
+        <configuration>
+          <includes>
+            <include>pom.xml</include>
+          </includes>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/trunk/apache-rat-plugin/src/it/it4_RAT-168/verify.groovy b/trunk/apache-rat-plugin/src/it/it4_RAT-168/verify.groovy
new file mode 100644
index 0000000..3786118
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/it/it4_RAT-168/verify.groovy
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+content = new File( basedir, 'build.log' ).text;
+
+assert content.contains( 'BUILD SUCCESS' );
+
+/*
+ * [WARNING] No resources included
+ */
+assert ! content.contains( '[WARNING]' );
+
+report = new File( basedir, 'target/site/rat-report.html' ).text;
+
+assert report.contains( 'AL    pom.xml' );
diff --git a/trunk/apache-rat-plugin/src/it/settings.xml b/trunk/apache-rat-plugin/src/it/settings.xml
new file mode 100644
index 0000000..c8f77f0
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/it/settings.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<settings>
+  <profiles>
+    <profile>
+      <id>it-repo</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <repositories>
+        <repository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+      <pluginRepositories>
+        <pluginRepository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </pluginRepository>
+      </pluginRepositories>
+    </profile>
+  </profiles>
+</settings>
diff --git a/trunk/apache-rat-plugin/src/main/filtered-resources/org/apache/rat/mp/rat-report.properties b/trunk/apache-rat-plugin/src/main/filtered-resources/org/apache/rat/mp/rat-report.properties
new file mode 100644
index 0000000..48a3828
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/filtered-resources/org/apache/rat/mp/rat-report.properties
@@ -0,0 +1,23 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+report.rat.name=Rat Report
+report.rat.description=Report on compliance to license related source code policies
+report.rat.title=Rat (Release Audit Tool) results
+report.rat.link=The following document contains the results of
+report.rat.fullName=Rat (Release Audit Tool)
+report.rat.url=${project.url}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
new file mode 100644
index 0000000..1a8eef2
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
@@ -0,0 +1,551 @@
+/*
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rat.mp;
+
+import static org.apache.rat.mp.util.ConfigurationHelper.newInstance;
+import static org.apache.rat.mp.util.ExclusionHelper.addEclipseDefaults;
+import static org.apache.rat.mp.util.ExclusionHelper.addIdeaDefaults;
+import static org.apache.rat.mp.util.ExclusionHelper.addMavenDefaults;
+import static org.apache.rat.mp.util.ExclusionHelper.addPlexusAndScmDefaults;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.lang.reflect.UndeclaredThrowableException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.xml.transform.TransformerConfigurationException;
+
+
+import org.apache.commons.io.IOUtils;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.apache.rat.Defaults;
+import org.apache.rat.Report;
+import org.apache.rat.ReportConfiguration;
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.util.HeaderMatcherMultiplexer;
+import org.apache.rat.api.RatException;
+import org.apache.rat.config.SourceCodeManagementSystems;
+import org.apache.rat.license.ILicenseFamily;
+import org.apache.rat.mp.util.ScmIgnoreParser;
+import org.apache.rat.report.IReportable;
+import org.apache.rat.report.claim.ClaimStatistic;
+import org.codehaus.plexus.util.DirectoryScanner;
+
+/**
+ * Abstract base class for Mojos, which are running Rat.
+ */
+public abstract class AbstractRatMojo extends AbstractMojo {
+
+    /**
+     * The base directory, in which to search for files.
+     */
+    @Parameter(property = "rat.basedir", defaultValue = "${basedir}", required = true)
+    private File basedir;
+
+    /**
+     * Specifies the licenses to accept. Deprecated, use {@link #licenses}
+     * instead.
+     *
+     * @deprecated Use {@link #licenses} instead.
+     */
+    @Deprecated
+    @Parameter
+    private HeaderMatcherSpecification[] licenseMatchers;
+
+    /**
+     * Specifies the licenses to accept. By default, these are added to the
+     * default licenses, unless you set {@link #addDefaultLicenseMatchers} to
+     * false.
+     *
+     * @since 0.8
+     */
+    @Parameter
+    private IHeaderMatcher[] licenses;
+
+    /**
+     * The set of approved license family names.
+     *
+     * @deprecated Use {@link #licenseFamilies} instead.
+     */
+    @Deprecated
+    private LicenseFamilySpecification[] licenseFamilyNames;
+
+    /**
+     * Specifies the license families to accept.
+     *
+     * @since 0.8
+     */
+    @Parameter
+    private ILicenseFamily[] licenseFamilies;
+
+    /**
+     * Whether to add the default list of license matchers.
+     */
+    @Parameter(property = "rat.addDefaultLicenseMatchers", defaultValue = "true")
+    private boolean addDefaultLicenseMatchers;
+
+    /**
+     * Specifies files, which are included in the report. By default, all files
+     * are included.
+     */
+    @Parameter
+    private String[] includes;
+
+    /**
+     * Specifies a file, from which to read includes. Basically, an alternative to
+     * specifying the includes as a list.
+     */
+    @Parameter(property="rat.includesFile")
+    private String includesFile;
+
+    /**
+     * Specifies the include files character set. Defaults to @code{${project.build.sourceEncoding}),
+     * or @code{UTF8}.
+     */
+    @Parameter(property="rat.includesFileCharset", defaultValue="${project.build.sourceEncoding}")
+    private String includesFileCharset;
+    
+    /**
+     * Specifies files, which are excluded in the report. By default, no files
+     * are excluded.
+     */
+    @Parameter
+    private String[] excludes;
+
+    /**
+     * Specifies a file, from which to read excludes. Basically, an alternative to
+     * specifying the excludes as a list.  The excludesFile is assumed to be using the
+     * UFT8 character set.
+     */
+    @Parameter(property="rat.excludesFile")
+    private String excludesFile;
+
+    /**
+     * Specifies the include files character set. Defaults to @code{${project.build.sourceEncoding}),
+     * or @code{UTF8}.
+     */
+    @Parameter(property="rat.excludesFileCharset", defaultValue="${project.build.sourceEncoding}")
+    private String excludesFileCharset;
+
+    /**
+     * Whether to use the default excludes when scanning for files. The default
+     * excludes are:
+     * <ul>
+     * <li>meta data files for source code management / revision control systems,
+     * see {@link SourceCodeManagementSystems}</li>
+     * <li>temporary files used by Maven, see <a
+     * href="#useMavenDefaultExcludes">useMavenDefaultExcludes</a></li>
+     * <li>configuration files for Eclipse, see <a
+     * href="#useEclipseDefaultExcludes">useEclipseDefaultExcludes</a></li>
+     * <li>configuration files for IDEA, see <a
+     * href="#useIdeaDefaultExcludes">useIdeaDefaultExcludes</a></li>
+     * </ul>
+     */
+    @Parameter(property = "rat.useDefaultExcludes", defaultValue = "true")
+    private boolean useDefaultExcludes;
+
+    /**
+     * Whether to use the Maven specific default excludes when scanning for
+     * files. Maven specific default excludes are given by the constant
+     * MAVEN_DEFAULT_EXCLUDES: The <code>target</code> directory, the
+     * <code>cobertura.ser</code> file, and so on.
+     */
+    @Parameter(property = "rat.useMavenDefaultExcludes", defaultValue = "true")
+    private boolean useMavenDefaultExcludes;
+
+    /**
+     * Whether to parse source code management system (SCM) ignore files and use their contents as excludes.
+     * At the moment this works for the following SCMs:
+     *
+     * @see org.apache.rat.config.SourceCodeManagementSystems
+     */
+    @Parameter(property = "rat.parseSCMIgnoresAsExcludes", defaultValue = "true")
+    private boolean parseSCMIgnoresAsExcludes;
+
+    /**
+     * Whether to use the Eclipse specific default excludes when scanning for
+     * files. Eclipse specific default excludes are given by the constant
+     * ECLIPSE_DEFAULT_EXCLUDES: The <code>.classpath</code> and
+     * <code>.project</code> files, the <code>.settings</code> directory, and so
+     * on.
+     */
+    @Parameter(property = "rat.useEclipseDefaultExcludes", defaultValue = "true")
+    private boolean useEclipseDefaultExcludes;
+
+    /**
+     * Whether to use the IDEA specific default excludes when scanning for
+     * files. IDEA specific default excludes are given by the constant
+     * IDEA_DEFAULT_EXCLUDES: The <code>*.iml</code>, <code>*.ipr</code> and
+     * <code>*.iws</code> files and the <code>.idea</code> directory.
+     */
+    @Parameter(property = "rat.useIdeaDefaultExcludes", defaultValue = "true")
+    private boolean useIdeaDefaultExcludes;
+
+    /**
+     * Whether to exclude subprojects. This is recommended, if you want a
+     * separate apache-rat-plugin report for each subproject.
+     */
+    @Parameter(property = "rat.excludeSubprojects", defaultValue = "true")
+    private boolean excludeSubProjects;
+
+    /**
+     * Will skip the plugin execution, e.g. for technical builds that do not take license compliance into account.
+     *
+     * @since 0.11
+     */
+    @Parameter(property = "rat.skip", defaultValue = "false")
+    protected boolean skip;
+
+    /**
+     * Holds the maven-internal project to allow resolution of artifact properties during mojo runs.
+     */
+    @Parameter(defaultValue = "${project}", required = true, readonly = true)
+    private MavenProject project;
+
+    /**
+     * @return Returns the Maven project.
+     */
+    protected MavenProject getProject() {
+        return project;
+    }
+
+    /**
+     * Returns the set of {@link IHeaderMatcher header matchers} to use.
+     *
+     * @return list of license matchers to use
+     * @throws MojoFailureException   An error in the plugin configuration was detected.
+     * @throws MojoExecutionException An error occurred while calculating the result.
+     */
+    private List<IHeaderMatcher> mergeLicenseMatchers()
+            throws MojoFailureException, MojoExecutionException {
+        List<IHeaderMatcher> matchers = new ArrayList<IHeaderMatcher>();
+
+        if (licenses != null) {
+            matchers.addAll(Arrays.asList(licenses));
+            getLog().info("Added " + licenses.length + " additional default licenses.");
+        }
+
+        if (licenseMatchers != null) {
+            for (final HeaderMatcherSpecification spec : licenseMatchers) {
+                matchers.add(newInstance(IHeaderMatcher.class, spec.getClassName()));
+            }
+        }
+
+        if (addDefaultLicenseMatchers) {
+            getLog().info("Enabled default license matchers.");
+            matchers.addAll(Defaults.DEFAULT_MATCHERS);
+        }
+        logLicenseMatchers(matchers);
+
+        return matchers;
+    }
+
+    private void logLicenseMatchers(List<IHeaderMatcher> matchers) {
+        if (getLog().isDebugEnabled()) {
+            getLog().debug("The following license matchers are activated:");
+            for (IHeaderMatcher matcher : matchers) {
+                getLog().debug("* " + matcher.toString());
+            }
+        }
+
+    }
+
+    /**
+     * Creates an iterator over the files to check.
+     *
+     * @return A container of files, which are being checked.
+     * @throws MojoExecutionException in case of errors. I/O errors result in UndeclaredThrowableExceptions.
+     */
+    protected IReportable getResources() throws MojoExecutionException {
+        final DirectoryScanner ds = new DirectoryScanner();
+        ds.setBasedir(basedir);
+        setExcludes(ds);
+        setIncludes(ds);
+        ds.scan();
+        whenDebuggingLogExcludedFiles(ds);
+        final String[] files = ds.getIncludedFiles();
+        logAboutIncludedFiles(files);
+        try {
+            return new FilesReportable(basedir, files);
+        } catch (final IOException e) {
+            throw new UndeclaredThrowableException(e);
+        }
+    }
+
+    private void logAboutIncludedFiles(final String[] files) {
+        if (files.length == 0) {
+            getLog().warn("No resources included.");
+        } else {
+            getLog().info(
+                    files.length
+                            + " resources included (use -debug for more details)");
+            if (getLog().isDebugEnabled()) {
+                for (final String resource : files) {
+                    getLog().debug(" - included " + resource);
+                }
+            }
+        }
+    }
+
+    private void whenDebuggingLogExcludedFiles(final DirectoryScanner ds) {
+        if (getLog().isDebugEnabled()) {
+            final String[] excludedFiles = ds.getExcludedFiles();
+            if (excludedFiles.length == 0) {
+                getLog().debug("No excluded resources.");
+            } else {
+                getLog().debug(
+                        "Excluded " + excludedFiles.length + " resources:");
+                for (final String resource : excludedFiles) {
+                    getLog().debug(" - excluded " + resource);
+                }
+            }
+        }
+    }
+
+    private void setIncludes(DirectoryScanner ds) throws MojoExecutionException {
+        if ((includes != null  &&  includes.length > 0)  ||  includesFile != null) {
+        	final List<String> includeList = new ArrayList<String>();
+        	if (includes != null) {
+        		includeList.addAll(Arrays.asList(includes));
+        	}
+        	if (includesFile != null) {
+        		final String charset = includesFileCharset == null ? "UTF8" : includesFileCharset;
+        		final File f = new File(includesFile);
+        		if (!f.isFile()) {
+        			getLog().error("IncludesFile not found: " + f.getAbsolutePath());
+        		} else {
+        			getLog().info("Includes loaded from file " + includesFile + ", using character set " + charset);
+        		}
+        		includeList.addAll(getPatternsFromFile(f, charset));
+        	}
+            ds.setIncludes(includeList.toArray(new String[includeList.size()]));
+        }
+    }
+
+    private List<String> getPatternsFromFile(File pFile, String pCharset) throws MojoExecutionException {
+    	InputStream is = null;
+    	BufferedInputStream bis = null;
+    	Reader r = null;
+    	BufferedReader br = null;
+    	Throwable th = null;
+    	final List<String> patterns = new ArrayList<String>();
+    	try {
+    		is = new FileInputStream(pFile);
+    		bis = new BufferedInputStream(is);
+    		r = new InputStreamReader(bis, pCharset);
+    		br = new BufferedReader(r);
+    		for (;;) {
+    			final String s = br.readLine();
+    			if (s == null) {
+    				break;
+    			}
+    			patterns.add(s);
+    		}
+    		br.close();
+    		br = null;
+    		r.close();
+    		r = null;
+    		bis.close();
+    		bis = null;
+    		is.close();
+    		is = null;
+    	} catch (Throwable t) {
+    		th = t;
+    	} finally {
+    		if (br != null) { try { br.close(); } catch (Throwable t) { if (th == null) { th = t; } } }
+    		if (r != null) { try { r.close(); } catch (Throwable t) { if (th == null) { th = t; } } }
+    		if (bis != null) { try { bis.close(); } catch (Throwable t) { if (th == null) { th = t; } } }
+    		if (is != null) { try { is.close(); } catch (Throwable t) { if (th == null) { th = t; } } }
+    	}
+    	if (th != null) {
+    		if (th instanceof RuntimeException) { throw (RuntimeException) th; }
+    		if (th instanceof Error) { throw (Error) th; }
+    		throw new MojoExecutionException(th.getMessage(), th);
+    	}
+    	return patterns;
+    }
+    
+    private void setExcludes(DirectoryScanner ds) throws MojoExecutionException {
+        final List<String> excludeList = mergeDefaultExclusions();
+        if (excludes == null || excludes.length == 0) {
+            getLog().info("No excludes explicitly specified.");
+        } else {
+        	for (final String exclude : excludes) {
+                getLog().info("Exclude: " + exclude);
+            }
+        }
+        if (excludes != null) {
+            Collections.addAll(excludeList, excludes);
+        }
+        if (!excludeList.isEmpty()) {
+            final String[] allExcludes = excludeList.toArray(new String[excludeList
+                    .size()]);
+            ds.setExcludes(allExcludes);
+        }
+    }
+
+    private List<String> mergeDefaultExclusions() throws MojoExecutionException {
+        final Set<String> results = new HashSet<String>();
+
+        addPlexusAndScmDefaults(getLog(), useDefaultExcludes, results);
+        addMavenDefaults(getLog(), useMavenDefaultExcludes, results);
+        addEclipseDefaults(getLog(), useEclipseDefaultExcludes, results);
+        addIdeaDefaults(getLog(), useIdeaDefaultExcludes, results);
+
+        if (parseSCMIgnoresAsExcludes) {
+            getLog().info("Will parse SCM ignores for exclusions...");
+            results.addAll(ScmIgnoreParser.getExclusionsFromSCM(getLog(), project.getBasedir()));
+            getLog().info("Finished adding exclusions from SCM ignore files.");
+        }
+
+        if (excludeSubProjects && project != null
+                && project.getModules() != null) {
+            for (final Object o : project.getModules()) {
+                final String moduleSubPath = (String) o;
+                results.add(moduleSubPath + "/**/*");
+            }
+        }
+
+        getLog().debug("Finished creating list of implicit excludes.");
+        if (results.isEmpty()) {
+            getLog().info("No excludes implicitly specified.");
+        } else {
+            getLog().info(
+                    results.size()
+                            + " implicit excludes (use -debug for more details).");
+            for (final String exclude : results) {
+                getLog().debug("Implicit exclude: " + exclude);
+            }
+        }
+        if (excludesFile != null) {
+        	final File f = new File(excludesFile);
+        	if (!f.isFile()) {
+        		getLog().error("Excludes file not found: " + f.getAbsolutePath());
+        	}
+        	if (!f.canRead()) {
+        		getLog().error("Excludes file not readable: " + f.getAbsolutePath());
+        	}
+        	final String charset = excludesFileCharset == null ? "UTF8" : excludesFileCharset;
+        	getLog().info("Loading excludes from file " + f + ", using character set " + charset);
+        	results.addAll(getPatternsFromFile(f, charset));
+        }
+
+        return new ArrayList<String>(results);
+    }
+
+    /**
+     * Creates the report as a string.
+     *
+     * @param styleSheet The style sheet to use when formatting the report
+     * @return Report contents
+     * @throws MojoFailureException   An error in the plugin configuration was detected.
+     * @throws MojoExecutionException An error occurred while creating the report.
+     */
+    protected String createReport(InputStream styleSheet)
+            throws MojoExecutionException, MojoFailureException {
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = null;
+        try {
+            pw = new PrintWriter(sw);
+            createReport(new PrintWriter(sw), styleSheet);
+            final String result = sw.toString();
+            pw.close();
+            pw = null;
+            sw.close();
+            sw = null;
+            return result;
+        } catch (IOException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        } finally {
+            IOUtils.closeQuietly(pw);
+            IOUtils.closeQuietly(sw);
+        }
+    }
+
+    /**
+     * Writes the report to the given stream.
+     *
+     * @param out   The target writer, to which the report is being written.
+     * @param style The stylesheet to use, or <code>null</code> for raw XML
+     * @return the current statistic.
+     * @throws MojoFailureException   An error in the plugin configuration was detected.
+     * @throws MojoExecutionException Another error occurred while creating the report.
+     */
+    protected ClaimStatistic createReport(Writer out, InputStream style)
+            throws MojoExecutionException, MojoFailureException {
+        final ReportConfiguration configuration = getConfiguration();
+        try {
+            if (style != null) {
+                return Report.report(out, getResources(), style, configuration);
+            } else {
+                return Report.report(getResources(), out, configuration);
+            }
+        } catch (final TransformerConfigurationException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        } catch (final IOException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        } catch (final InterruptedException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        } catch (final RatException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        }
+    }
+
+    protected ReportConfiguration getConfiguration()
+            throws MojoFailureException, MojoExecutionException {
+        final ReportConfiguration configuration = new ReportConfiguration();
+        configuration.setHeaderMatcher(new HeaderMatcherMultiplexer(
+                mergeLicenseMatchers()));
+        configuration.setApprovedLicenseNames(mergeApprovedLicenseNames());
+        configuration.setApproveDefaultLicenses(addDefaultLicenseMatchers);
+        return configuration;
+    }
+
+    private List<ILicenseFamily> mergeApprovedLicenseNames()
+            throws MojoExecutionException, MojoFailureException {
+        final List<ILicenseFamily> list = new ArrayList<ILicenseFamily>();
+        if (licenseFamilies != null) {
+            getLog().info("Added " + licenseFamilies.length + " custom approved licenses.");
+            list.addAll(Arrays.asList(licenseFamilies));
+        }
+        if (licenseFamilyNames != null) {
+            for (final LicenseFamilySpecification spec : licenseFamilyNames) {
+                list.add(newInstance(ILicenseFamily.class, spec.getClassName()));
+            }
+        }
+        return list;
+    }
+}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/FilesReportable.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/FilesReportable.java
new file mode 100644
index 0000000..ae339ed
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/FilesReportable.java
@@ -0,0 +1,110 @@
+package org.apache.rat.mp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.api.RatException;
+import org.apache.rat.document.impl.DocumentImplUtils;
+import org.apache.rat.report.IReportable;
+import org.apache.rat.report.RatReport;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+
+/**
+ * Implementation of IReportable that traverses over a set of files.
+ */
+class FilesReportable implements IReportable
+{
+    private final File basedir;
+
+    private final String[] files;
+
+    FilesReportable( File basedir, String[] files )
+            throws IOException
+    {
+        final File currentDir = new File( System.getProperty( "user.dir" ) ).getCanonicalFile();
+        final File f = basedir.getCanonicalFile();
+        if ( currentDir.equals( f ) )
+        {
+            this.basedir = null;
+        }
+        else
+        {
+            this.basedir = basedir;
+        }
+        this.files = files;
+    }
+
+    public void run( RatReport report ) throws RatException
+    {
+        FileDocument document = new FileDocument();
+        for (String file : files) {
+            document.setFile(new File(basedir, file));
+            document.getMetaData().clear();
+            report.report(document);
+        }
+    }
+
+    private class FileDocument implements Document
+    {
+        private File file;
+        private final MetaData metaData = new MetaData();
+        
+        void setFile( File file )
+        {
+            this.file = file;
+        }
+
+        public boolean isComposite() {
+            return DocumentImplUtils.isZip(file);
+        }
+
+        public Reader reader() throws IOException
+        {
+            final InputStream in = new FileInputStream( file );
+            return new InputStreamReader( in );
+        }
+
+        public String getName()
+        {
+            return DocumentImplUtils.toName( file );
+        }
+
+        public MetaData getMetaData() {
+            return metaData;
+        }
+        
+        public InputStream inputStream() throws IOException {
+            return new FileInputStream(file);
+        }
+        
+        @Override
+        public String toString() {
+            return "File:" + file.getAbsolutePath();
+        }
+    }
+}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/HeaderMatcherSpecification.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/HeaderMatcherSpecification.java
new file mode 100644
index 0000000..0c0c306
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/HeaderMatcherSpecification.java
@@ -0,0 +1,53 @@
+package org.apache.rat.mp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Used to specify additional license matchers. A license matcher is basically a class, which implements
+ * {@link org.apache.rat.analysis.IHeaderMatcher}.
+ */
+public class HeaderMatcherSpecification
+{
+    /**
+     * The license matchers class name.
+     */
+    private String className;
+
+    /**
+     * Returns the license matchers class name.
+     * 
+     * @return Class name of the license matcher.
+     */
+    public String getClassName()
+    {
+        return className;
+    }
+
+    /**
+     * Sets the license matchers class name. Required.
+     * 
+     * @param pClassName
+     *            Class name of the license matcher.
+     */
+    public void setClassName( String pClassName )
+    {
+        className = pClassName;
+    }
+}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/LicenseFamilySpecification.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/LicenseFamilySpecification.java
new file mode 100644
index 0000000..5bd4941
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/LicenseFamilySpecification.java
@@ -0,0 +1,53 @@
+package org.apache.rat.mp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Used to specify additional license families. A license family is basically a class, which implements
+ * {@link org.apache.rat.license.ILicenseFamily}.
+ */
+public class LicenseFamilySpecification
+{
+    /**
+     * The license family's class name.
+     */
+    private String className;
+
+    /**
+     * Returns the license familys class name.
+     * 
+     * @return Class name of the license family.
+     */
+    public String getClassName()
+    {
+        return className;
+    }
+
+    /**
+     * Sets the license family's class name. Required.
+     * 
+     * @param pClassName
+     *            Class name of the license family.
+     */
+    public void setClassName( String pClassName )
+    {
+        className = pClassName;
+    }
+}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckException.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckException.java
new file mode 100644
index 0000000..0016953
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckException.java
@@ -0,0 +1,32 @@
+package org.apache.rat.mp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.plugin.MojoFailureException;
+
+public class RatCheckException extends MojoFailureException
+{
+    private static final long serialVersionUID = -1720861476741779140L;
+
+    public RatCheckException( String message )
+    {
+        super( message );
+    }
+}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java
new file mode 100644
index 0000000..fef94fa
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java
@@ -0,0 +1,210 @@
+package org.apache.rat.mp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.io.IOUtils;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.rat.Defaults;
+import org.apache.rat.ReportConfiguration;
+import org.apache.rat.config.AddLicenseHeaders;
+import org.apache.rat.config.ReportFormat;
+import org.apache.rat.report.claim.ClaimStatistic;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Run Rat to perform a violation check.
+ */
+@Mojo(name = "check", defaultPhase = LifecyclePhase.VALIDATE)
+public class RatCheckMojo extends AbstractRatMojo {
+    /**
+     * Where to store the report.
+     */
+    @Parameter(property = "rat.outputFile", defaultValue = "${project.build.directory}/rat.txt")
+    private File reportFile;
+
+    /**
+     * Output style of the report. Use "plain" (the default) for a plain text
+     * report or "xml" for the raw XML report. Alternatively you can give the
+     * path of an XSL transformation that will be applied on the raw XML to
+     * produce the report written to the output file.
+     */
+    @Parameter(property = "rat.outputStyle", defaultValue = "plain")
+    private String reportStyle;
+
+    /**
+     * Maximum number of files with unapproved licenses.
+     */
+    @Parameter(property = "rat.numUnapprovedLicenses", defaultValue = "0")
+    private int numUnapprovedLicenses;
+
+    /**
+     * Whether to add license headers; possible values are
+     * {@code forced}, {@code true}, and {@code false} (default).
+     */
+    @Parameter(property = "rat.addLicenseHeaders", defaultValue = "false")
+    private String addLicenseHeaders;
+
+    /**
+     * Copyright message to add to license headers. This option is
+     * ignored, unless {@code addLicenseHeaders} is set to {@code true},
+     * or {@code forced}.
+     */
+    @Parameter(property = "rat.copyrightMessage")
+    private String copyrightMessage;
+
+    /**
+     * Will ignore rat errors and display a log message if any.
+     * Its use is NOT RECOMMENDED, but quite convenient on occasion.
+     *
+     * @since 0.9
+     */
+    @Parameter(property = "rat.ignoreErrors", defaultValue = "false")
+    private boolean ignoreErrors;
+
+    /**
+     * Whether to output the names of files that have unapproved licenses to the
+     * console.
+     *
+     * @since 0.12
+     */
+    @Parameter(property = "rat.consoleOutput", defaultValue = "false")
+    private boolean consoleOutput;
+
+    private ClaimStatistic getRawReport()
+            throws MojoExecutionException, MojoFailureException {
+        FileWriter fw = null;
+        try {
+            fw = new FileWriter(reportFile);
+            final ClaimStatistic statistic = createReport(fw, getStyleSheet());
+            fw.close();
+            fw = null;
+            return statistic;
+        } catch (IOException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        } finally {
+            IOUtils.closeQuietly(fw);
+        }
+    }
+
+    /**
+     * Returns the XSL stylesheet to be used for formatting the report.
+     *
+     * @return report stylesheet, or <code>null</code> for raw XML
+     * @throws MojoExecutionException if the stylesheet can not be found
+     * @see #reportStyle
+     */
+    private InputStream getStyleSheet() throws MojoExecutionException {
+        if (reportStyle == null || ReportFormat.PLAIN.is(reportStyle)) {
+            return Defaults.getPlainStyleSheet();
+        } else if (ReportFormat.XML.is(reportStyle)) {
+            return null;
+        } else {
+            try {
+                return new FileInputStream(reportStyle);
+            } catch (FileNotFoundException e) {
+                throw new MojoExecutionException(
+                        "Unable to find report stylesheet: " + reportStyle, e);
+            }
+        }
+    }
+
+    /**
+     * Invoked by Maven to execute the Mojo.
+     *
+     * @throws MojoFailureException   An error in the plugin configuration was detected.
+     * @throws MojoExecutionException Another error occurred while executing the plugin.
+     */
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        if (skip) {
+            getLog().info("RAT will not execute since it is configured to be skipped via system property 'rat.skip'.");
+            return;
+        }
+
+        final File parent = reportFile.getParentFile();
+        if (!parent.mkdirs() && !parent.isDirectory()) {
+            throw new MojoExecutionException("Could not create report parent directory " + parent);
+        }
+
+        final ClaimStatistic report = getRawReport();
+        check(report);
+    }
+
+    protected void check(ClaimStatistic statistics)
+            throws MojoFailureException {
+        if (numUnapprovedLicenses > 0) {
+            getLog().info("You requested to accept " + numUnapprovedLicenses + " files with unapproved licenses.");
+        }
+
+        int numApproved = statistics.getNumApproved();
+        getLog().info("Rat check: Summary over all files. Unapproved: " + statistics.getNumUnApproved() + //
+                ", unknown: " + statistics.getNumUnknown() + //
+                ", generated: " + statistics.getNumGenerated() + //
+                ", approved: " + numApproved + //
+                (numApproved > 0 ? " licenses." : " license."));
+
+        if (numUnapprovedLicenses < statistics.getNumUnApproved()) {
+            if (consoleOutput) {
+                try {
+                    getLog().warn(createReport(Defaults.getUnapprovedLicensesStyleSheet()).trim());
+                } catch (MojoExecutionException e) {
+                    getLog().warn("Unable to print the files with unapproved licenses to the console.");
+                }
+            }
+
+            final String seeReport = " See RAT report in: " + reportFile;
+            if (!ignoreErrors) {
+                throw new RatCheckException("Too many files with unapproved license: " + statistics.getNumUnApproved() + seeReport);
+            } else {
+                getLog().warn("Rat check: " + statistics.getNumUnApproved() + " files with unapproved licenses." + seeReport);
+            }
+        }
+    }
+
+    @Override
+    protected ReportConfiguration getConfiguration()
+            throws MojoFailureException, MojoExecutionException {
+        final ReportConfiguration configuration = super.getConfiguration();
+
+        if (AddLicenseHeaders.FORCED.name().equalsIgnoreCase(addLicenseHeaders)) {
+            configuration.setAddingLicenses(true);
+            configuration.setAddingLicensesForced(true);
+            configuration.setCopyrightMessage(copyrightMessage);
+        } else if (AddLicenseHeaders.TRUE.name().equalsIgnoreCase(addLicenseHeaders)) {
+            configuration.setAddingLicenses(true);
+            configuration.setCopyrightMessage(copyrightMessage);
+        } else if (AddLicenseHeaders.FALSE.name().equalsIgnoreCase(addLicenseHeaders)) {
+            // Nothing to do
+        } else {
+            throw new MojoFailureException("Invalid value for addLicenseHeaders: Expected " + AddLicenseHeaders.getValuesForHelp() + ", got "
+                    + addLicenseHeaders);
+        }
+        return configuration;
+    }
+}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java
new file mode 100644
index 0000000..8d1eae6
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java
@@ -0,0 +1,313 @@
+package org.apache.rat.mp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.doxia.site.decoration.Body;
+import org.apache.maven.doxia.site.decoration.DecorationModel;
+import org.apache.maven.doxia.site.decoration.Skin;
+import org.apache.maven.doxia.siterenderer.Renderer;
+import org.apache.maven.doxia.siterenderer.RendererException;
+import org.apache.maven.doxia.siterenderer.RenderingContext;
+import org.apache.maven.doxia.siterenderer.SiteRenderingContext;
+import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.reporting.MavenReport;
+import org.apache.maven.reporting.MavenReportException;
+import org.apache.rat.Defaults;
+import org.codehaus.doxia.sink.Sink;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+
+/**
+ * Generates a report with Rat's output.
+ */
+@SuppressWarnings("deprecation") // MavenReport invokes the deprecated Sink implementation
+@Mojo(name = "rat", requiresDependencyResolution = ResolutionScope.TEST)
+public class RatReportMojo extends AbstractRatMojo implements MavenReport {
+    public static final String DOT_HTML = ".html";
+    @Component
+    private Renderer siteRenderer;
+
+    @Component
+    private ArtifactFactory factory;
+
+    @Component
+    private ArtifactResolver resolver;
+
+    /**
+     * Specifies the directory where the report will be generated
+     */
+    @Parameter(defaultValue = "${project.reporting.outputDirectory}", required = true)
+    private File outputDirectory;
+
+    @Parameter(defaultValue = "${localRepository}", required = true, readonly = true)
+    private ArtifactRepository localRepository;
+
+    /**
+     * Returns the skins artifact file.
+     *
+     * @return Artifact file
+     * @throws MojoFailureException   An error in the plugin configuration was detected.
+     * @throws MojoExecutionException An error occurred while searching for the artifact file.
+     */
+    private File getSkinArtifactFile() throws MojoFailureException, MojoExecutionException {
+        final Skin skin = Skin.getDefaultSkin();
+
+        String version = skin.getVersion();
+        final Artifact artifact;
+        try {
+            if (version == null) {
+                version = Artifact.RELEASE_VERSION;
+            }
+            VersionRange versionSpec = VersionRange.createFromVersionSpec(version);
+            artifact =
+                    factory.createDependencyArtifact(skin.getGroupId(), skin.getArtifactId(), versionSpec, "jar", null,
+                            null);
+
+            resolver.resolve(artifact, getProject().getRemoteArtifactRepositories(), localRepository);
+        } catch (InvalidVersionSpecificationException e) {
+            throw new MojoFailureException("The skin version '" + version + "' is not valid: " + e.getMessage());
+        } catch (ArtifactResolutionException e) {
+            throw new MojoExecutionException("Unable to find skin", e);
+        } catch (ArtifactNotFoundException e) {
+            throw new MojoFailureException("The skin does not exist: " + e.getMessage());
+        }
+
+        return artifact.getFile();
+    }
+
+    /**
+     * Called from Maven to invoke the plugin.
+     *
+     * @throws MojoFailureException   An error in the plugin configuration was detected.
+     * @throws MojoExecutionException An error occurred while creating the report.
+     */
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        if (skip) {
+            getLog().info("RAT will not execute since it is configured to be skipped via system property 'rat.skip'.");
+            return;
+        }
+
+        final DecorationModel model = new DecorationModel();
+        model.setBody(new Body());
+        final Map<String, String> attributes = new HashMap<String, String>();
+        attributes.put("outputEncoding", "UTF-8");
+        final Locale locale = Locale.getDefault();
+        try {
+            final SiteRenderingContext siteContext =
+                    siteRenderer.createContextForSkin(getSkinArtifactFile(), attributes, model, getName(locale),
+                            locale);
+            final RenderingContext context = new RenderingContext(outputDirectory, getOutputName() + DOT_HTML);
+
+            final SiteRendererSink sink = new SiteRendererSink(context);
+            generate(sink, locale);
+
+            if (!outputDirectory.mkdirs() && !outputDirectory.isDirectory()) {
+                throw new IOException("Could not create output directory " + outputDirectory);
+            }
+
+
+            final Writer writer = new FileWriter(new File(outputDirectory, getOutputName() + DOT_HTML));
+
+            siteRenderer.generateDocument(writer, sink, siteContext);
+
+            siteRenderer.copyResources(siteContext, new File(getProject().getBasedir(), "src/site/resources"),
+                    outputDirectory);
+        } catch (IOException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        } catch (MavenReportException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        } catch (RendererException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        }
+    }
+
+    /**
+     * Returns, whether the report may be generated.
+     *
+     * @return Always true.
+     */
+    public boolean canGenerateReport() {
+        return true;
+    }
+
+    /**
+     * Searches for a Rat artifact in the dependency list and returns its version.
+     *
+     * @return Version number, if found, or null.
+     */
+    private String getRatVersion() {
+        for (@SuppressWarnings("unchecked") // library is not yet generified
+             Iterator<Artifact> iter = getProject().getDependencyArtifacts().iterator(); iter.hasNext(); ) {
+            Artifact a = iter.next();
+            if ("rat-lib".equals(a.getArtifactId())) {
+                return a.getVersion();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Writes the report to the Doxia sink.
+     *
+     * @param sink   The doxia sink, kind of a SAX handler.
+     * @param locale The locale to use for writing the report.
+     * @throws MavenReportException Writing the report failed.
+     */
+    public void generate(Sink sink, Locale locale) throws MavenReportException {
+        ResourceBundle bundle = getBundle(locale);
+        final String title = bundle.getString("report.rat.title");
+        sink.head();
+        sink.title();
+        sink.text(title);
+        sink.title_();
+        sink.head_();
+
+        sink.body();
+
+        sink.section1();
+        sink.sectionTitle1();
+        sink.text(title);
+        sink.sectionTitle1_();
+
+        sink.paragraph();
+        sink.text(bundle.getString("report.rat.link") + " ");
+        sink.link(bundle.getString("report.rat.url"));
+        sink.text(bundle.getString("report.rat.fullName"));
+        sink.link_();
+        final String ratVersion = getRatVersion();
+        if (ratVersion != null) {
+            sink.text(" " + ratVersion);
+        }
+        sink.text(".");
+        sink.paragraph_();
+
+        sink.paragraph();
+        sink.verbatim(true);
+        try {
+            sink.text(createReport(Defaults.getDefaultStyleSheet()));
+        } catch (MojoExecutionException e) {
+            throw new MavenReportException(e.getMessage(), e);
+        } catch (MojoFailureException e) {
+            throw new MavenReportException(e.getMessage(), e);
+        }
+        sink.verbatim_();
+        sink.paragraph_();
+        sink.section1_();
+        sink.body_();
+    }
+
+    /**
+     * Returns the reports category name.
+     *
+     * @return {@link MavenReport#CATEGORY_PROJECT_REPORTS}
+     */
+    public String getCategoryName() {
+        return MavenReport.CATEGORY_PROJECT_REPORTS;
+    }
+
+    /**
+     * Returns the reports bundle
+     *
+     * @param locale Requested locale of the bundle
+     * @return The bundle, which is used to read localized strings.
+     */
+    private ResourceBundle getBundle(Locale locale) {
+        return ResourceBundle.getBundle("org/apache/rat/mp/rat-report", locale, getClass().getClassLoader());
+    }
+
+    /**
+     * Returns the reports description.
+     *
+     * @param locale Requested locale of the bundle
+     * @return Report description, as given by the key "report.rat.description" in the bundle.
+     */
+    public String getDescription(Locale locale) {
+        return getBundle(locale).getString("report.rat.description");
+    }
+
+    /**
+     * Returns the reports name.
+     *
+     * @param locale Requested locale of the bundle
+     * @return Report name, as given by the key "report.rat.name" in the bundle.
+     */
+    public String getName(Locale locale) {
+        return getBundle(locale).getString("report.rat.name");
+    }
+
+    /**
+     * Returns the reports file name.
+     *
+     * @return "rat-report"
+     */
+    public String getOutputName() {
+        return "rat-report";
+    }
+
+    /**
+     * Returns the reports output directory.
+     *
+     * @return Value of the "outputDirectory" parameter.
+     */
+    public File getReportOutputDirectory() {
+        return outputDirectory;
+    }
+
+    /**
+     * Returns, whether this is an external report.
+     *
+     * @return Always false.
+     */
+    public boolean isExternalReport() {
+        return false;
+    }
+
+    /**
+     * Sets the reports output directory.
+     *
+     * @param pOutputDirectory Reports target directory.
+     */
+    public void setReportOutputDirectory(File pOutputDirectory) {
+        outputDirectory = pOutputDirectory;
+    }
+}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/util/ConfigurationHelper.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/util/ConfigurationHelper.java
new file mode 100644
index 0000000..b1bb664
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/util/ConfigurationHelper.java
@@ -0,0 +1,61 @@
+package org.apache.rat.mp.util;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+
+public final class ConfigurationHelper {
+
+    private ConfigurationHelper() {
+        // prevent instantiation
+    }
+
+    public static <T> T newInstance(final Class<T> clazz, final String className)
+            throws MojoExecutionException, MojoFailureException {
+        try {
+            final ClassLoader cl = Thread.currentThread()
+                    .getContextClassLoader();
+            @SuppressWarnings("unchecked") // incorrect cast will be caught below
+            final T o = (T) cl.loadClass(className).newInstance();
+
+            if (!clazz.isAssignableFrom(o.getClass())) {
+                throw new MojoFailureException("The class "
+                        + o.getClass().getName() + " does not implement "
+                        + clazz.getName());
+            }
+            return o;
+        } catch (final InstantiationException e) {
+            throw new MojoExecutionException("Failed to instantiate class "
+                    + className + ": " + e.getMessage(), e);
+        } catch (final ClassCastException e) {
+            throw new MojoExecutionException("The class " + className
+                    + " is not implementing " + clazz.getName() + ": "
+                    + e.getMessage(), e);
+        } catch (final IllegalAccessException e) {
+            throw new MojoExecutionException("Illegal access to class "
+                    + className + ": " + e.getMessage(), e);
+        } catch (final ClassNotFoundException e) {
+            throw new MojoExecutionException("Class " + className
+                    + " not found: " + e.getMessage(), e);
+        }
+    }
+
+}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/util/ExclusionHelper.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/util/ExclusionHelper.java
new file mode 100644
index 0000000..a1f7b6b
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/util/ExclusionHelper.java
@@ -0,0 +1,118 @@
+package org.apache.rat.mp.util;
+
+import org.apache.maven.plugin.logging.Log;
+import org.apache.rat.config.SourceCodeManagementSystems;
+import org.codehaus.plexus.util.DirectoryScanner;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * This class encapsulates the file/directory exclusion handling of RAT.
+ * Visibility is to allow testing and usage in the maven plugin itself.
+ */
+public final class ExclusionHelper {
+    /**
+     * The Maven specific default excludes.
+     */
+    static final List<String> MAVEN_DEFAULT_EXCLUDES = Collections
+            .unmodifiableList(Arrays.asList(//
+                    "target/**/*", //
+                    "cobertura.ser", //
+                    "release.properties", //
+                    ".repository", // Used by Jenkins when a Maven job uses a private repository that is "Local to the workspace"
+                    "build.log", // RAT-160: until now maven-invoker-plugin runs create a build.log that is not part of a release
+                    ".mvn", // Project configuration since Maven 3.3.1 which contains maven.config, jvm.config, extensions.xml
+                    "pom.xml.releaseBackup"));
+
+    /**
+     * The Eclipse specific default excludes.
+     */
+    static final List<String> ECLIPSE_DEFAULT_EXCLUDES = Collections
+            .unmodifiableList(Arrays.asList(".classpath",//
+                    ".project", //
+                    ".settings/**/*"));
+
+    /**
+     * The IDEA specific default excludes.
+     */
+    static final List<String> IDEA_DEFAULT_EXCLUDES = Collections
+            .unmodifiableList(Arrays.asList(//
+                    "*.iml", //
+                    "*.ipr", //
+                    "*.iws", //
+                    ".idea/**/*"));
+
+    public static void addPlexusAndScmDefaults(Log log, final boolean useDefaultExcludes,
+                                               final Set<String> excludeList1) {
+        if (useDefaultExcludes) {
+            log.debug("Adding plexus default exclusions...");
+            Collections.addAll(excludeList1, DirectoryScanner.DEFAULTEXCLUDES);
+            log.debug("Adding SCM default exclusions...");
+            excludeList1.addAll(//
+                    SourceCodeManagementSystems.getPluginExclusions());
+        } else {
+            log.debug("rat.useDefaultExcludes set to false. "
+                    + "Plexus and SCM default exclusions will not be added");
+        }
+    }
+
+    public static void addMavenDefaults(Log log, boolean useMavenDefaultExcludes,
+                                        final Set<String> excludeList) {
+        if (useMavenDefaultExcludes) {
+            log.debug("Adding exclusions often needed by Maven projects...");
+            excludeList.addAll(MAVEN_DEFAULT_EXCLUDES);
+        } else {
+            log.debug("rat.useMavenDefaultExcludes set to false. "
+                    + "Exclusions often needed by Maven projects will not be added.");
+        }
+    }
+
+    public static void addEclipseDefaults(Log log, boolean useEclipseDefaultExcludes,
+                                          final Set<String> excludeList) {
+        if (useEclipseDefaultExcludes) {
+            log.debug("Adding exclusions often needed by projects "
+                    + "developed in Eclipse...");
+            excludeList.addAll(ECLIPSE_DEFAULT_EXCLUDES);
+        } else {
+            log.debug("rat.useEclipseDefaultExcludes set to false. "
+                    + "Exclusions often needed by projects developed in "
+                    + "Eclipse will not be added.");
+        }
+    }
+
+    public static void addIdeaDefaults(Log log, boolean useIdeaDefaultExcludes,
+                                       final Set<String> excludeList) {
+        if (useIdeaDefaultExcludes) {
+            log.debug("Adding exclusions often needed by projects "
+                    + "developed in IDEA...");
+            excludeList.addAll(IDEA_DEFAULT_EXCLUDES);
+        } else {
+            log.debug("rat.useIdeaDefaultExcludes set to false. "
+                    + "Exclusions often needed by projects developed in "
+                    + "IDEA will not be added.");
+        }
+    }
+
+}
diff --git a/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/util/ScmIgnoreParser.java b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/util/ScmIgnoreParser.java
new file mode 100644
index 0000000..27627a1
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/util/ScmIgnoreParser.java
@@ -0,0 +1,118 @@
+package org.apache.rat.mp.util;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+import org.apache.commons.io.IOUtils;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.rat.config.SourceCodeManagementSystems;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Helper to parse SCM ignore files to add entries as excludes during RAT runs.
+ * Since we log errors it needs to reside inside of the maven plugin.
+ */
+public final class ScmIgnoreParser {
+    private ScmIgnoreParser() {
+        // prevent instantiation of utility class
+    }
+
+    private static List<String> COMMENT_PREFIXES = Arrays.asList("#", "##", "//", "/**", "/*");
+
+    /**
+     * Parses excludes from the given SCM ignore file.
+     *
+     * @param log       Maven log to show output during RAT runs.
+     * @param scmIgnore if <code>null</code> or invalid an empty list of exclusions is returned.
+     * @return all exclusions (=non-comment lines) from the SCM ignore file.
+     */
+    public static List<String> getExcludesFromFile(final Log log, final File scmIgnore) {
+
+        final List<String> exclusionLines = new ArrayList<String>();
+
+        if (scmIgnore != null && scmIgnore.exists() && scmIgnore.isFile()) {
+            log.info("Parsing exclusions from " + scmIgnore);
+            BufferedReader reader = null;
+            try {
+                reader = new BufferedReader(new FileReader(scmIgnore));
+                String line;
+                while ((line = reader.readLine()) != null) {
+                    if (!isComment(line)) {
+                        exclusionLines.add(line);
+                        log.debug("Added " + line);
+                    }
+                }
+            } catch (final IOException e) {
+                log.warn("Cannot parse " + scmIgnore + " for exclusions. Will skip this file.");
+                log.debug("Skip parsing " + scmIgnore + " due to " + e.getMessage());
+            } finally {
+                IOUtils.closeQuietly(reader);
+            }
+        }
+        return exclusionLines;
+    }
+
+    /**
+     * Parse ignore files from all known SCMs that have ignore files.
+     *
+     * @param log     Show information via maven logger.
+     * @param baseDir base directory from which to look for SCM ignores.
+     * @return Exclusions from the SCM ignore files.
+     */
+    public static List<String> getExclusionsFromSCM(final Log log, final File baseDir) {
+        List<String> exclusions = new ArrayList<String>();
+        for (SourceCodeManagementSystems scm : SourceCodeManagementSystems.values()) {
+            if (scm.hasIgnoreFile()) {
+                exclusions.addAll(getExcludesFromFile(log, new File(baseDir, scm.getIgnoreFile())));
+            }
+        }
+        return exclusions;
+
+    }
+
+    /**
+     * Determines whether the given line is a comment or not based on scanning
+     * for prefixes
+     * {@see COMMENT_PREFIXES}.
+     *
+     * @param line line to verify.
+     * @return <code>true</code> if the given line is a commented out line.
+     */
+    static boolean isComment(final String line) {
+        if (line == null || line.length() <= 0) {
+            return false;
+        }
+
+        final String trimLine = line.trim();
+        for (String prefix : COMMENT_PREFIXES) {
+            if (trimLine.startsWith(prefix)) {
+                return true;
+            }
+        }
+        return false;
+    }
+}
diff --git a/trunk/apache-rat-plugin/src/main/resources/org/apache/rat/mp/package.html b/trunk/apache-rat-plugin/src/main/resources/org/apache/rat/mp/package.html
new file mode 100644
index 0000000..f80d317
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/main/resources/org/apache/rat/mp/package.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+-->
+</head>
+<body>
+This package contains the Rat plugins for
+<a href="http://maven.apache.org">Maven 2</a>.
+</body>
+</html>
diff --git a/trunk/apache-rat-plugin/src/site/apt/examples/basic.apt.vm b/trunk/apache-rat-plugin/src/site/apt/examples/basic.apt.vm
new file mode 100644
index 0000000..8a48288
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/site/apt/examples/basic.apt.vm
@@ -0,0 +1,44 @@
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~  
+~~        http://www.apache.org/licenses/LICENSE-2.0
+~~  
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+
+ -----------------
+ Basic use
+ -----------------
+
+Basic use
+
+  Basic use means that you configure the plugin from the POM.
+  However, it doesn't run automatically, but on demand:
+
+------------------------------------------------------------------
+  mvn apache-rat:check
+------------------------------------------------------------------
+
+  To achieve that, a section like the following needs to be
+  added to your POM:
+
+------------------------------------------------------------------
+  <build>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${currentVersion}</version>
+      </plugin>
+      ...
+    </plugins>
+  </build>
+------------------------------------------------------------------
diff --git a/trunk/apache-rat-plugin/src/site/apt/examples/custom-license.apt.vm b/trunk/apache-rat-plugin/src/site/apt/examples/custom-license.apt.vm
new file mode 100644
index 0000000..351d13f
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/site/apt/examples/custom-license.apt.vm
@@ -0,0 +1,133 @@
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~  
+~~        http://www.apache.org/licenses/LICENSE-2.0
+~~  
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+
+ -----------------------
+ Custom License Matchers
+ -----------------------
+
+Custom License Matchers
+
+  Rat comes with a set of predefined license matchers, that can be used
+  some typical licenses. However, they will not always be sufficient.
+  In such cases, you may use a custom license matcher.
+
+  A custom license matcher is an implementation of
+  <<<org.apache.rat.analysis.IHeaderMatcher>>>. Suggest that your
+  source files must contain a header like the following:
+
+------------------------------------------------------------------
+  /**
+   * Yet Another Software License, 1.0
+   *
+   * Lots of text, specifying the users rights, and whatever ...
+   */
+------------------------------------------------------------------
+
+  A very easy way to search for such headers would be to scan
+  for the string "Yet Another Software License, 1.0". And here's
+  how you would do that in your POM:
+
+------------------------------------------------------------------
+  <build>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${currentVersion}</version>
+        <configuration>
+          <licenses>
+            <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+              <licenseFamilyCategory>YASL1</licenseFamilyCategory>
+              <licenseFamilyName>Yet Another Software License (YASL) 1.0</licenseFamilyName>
+              <notes></notes>
+              <patterns>
+                <pattern>Yet Another Software License, 1.0</pattern>
+              </patterns>
+            </license>
+          </licenses>
+        </configuration>
+      </plugin>
+      ...
+    </plugins>
+  </build>
+------------------------------------------------------------------
+
+  The following terms are used in the example:
+
+*-----------------------+-----------+
+| licenseFamilyCategory | The license family category is a very short string (exactly 5 characters, preferrably no blanks),
+|                       | which identifies the license. For example, this could be <<<AL20>>> to identify the
+|                       |  Apache License, 2.0.
+*-----------------------+-----------+
+| licenseFamilyName     | The license family name is a longer string, which gives the licenses full name. For example,
+|                       | this could be <<<Apache License, 2.0>>>.
+*-----------------------+-----------+
+| notes                 | You might specify additional notes here, like "Dual licensed GPL/MPL".
+*-----------------------+-----------+
+| patterns              | Specifies a set of patterns being searched. The source file is assumed to contain the
+|                       | license header, if at least one of these patterns is found.
+*-----------------------+-----------+
+
+Approved License Families
+
+  Detecting the license is not enough in many cases as the "new"
+  license may not be considered approved by Rat.  In order to make a
+  license approved you provide a custom implementation of
+  <<<org.apache.rat.license.ILicenseFamily>>>.  Usually all you need
+  to provide the name of the license, in which case the built-in
+  <<<SimpleLicenseFamily>>> will do.
+
+  To continue the example, in order to make the YASL1 license approved
+  you'd use
+
+------------------------------------------------------------------
+  <build>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${currentVersion}</version>
+        <configuration>
+          <licenses>
+            <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+              <licenseFamilyCategory>YASL1</licenseFamilyCategory>
+              <licenseFamilyName>Yet Another Software License (YASL) 1.0</licenseFamilyName>
+              <notes></notes>
+              <patterns>
+                <pattern>Yet Another Software License, 1.0</pattern>
+              </patterns>
+            </license>
+          </licenses>
+          <licenseFamilies>
+            <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
+              <familyName>Yet Another Software License</familyName>
+            </licenseFamily>
+          </licenseFamilies>
+        </configuration>
+      </plugin>
+      ...
+    </plugins>
+  </build>
+------------------------------------------------------------------
+
+  The following terms are used in the example:
+
+*-----------------------+-----------+
+| familyName            | The name of the license family name that is approved.
+|                       | This should match <<<licenseFamilyName>>> of your <<<licenseMatcher>>>
+*-----------------------+-----------+
+
diff --git a/trunk/apache-rat-plugin/src/site/apt/examples/site.apt.vm b/trunk/apache-rat-plugin/src/site/apt/examples/site.apt.vm
new file mode 100644
index 0000000..57f8fdd
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/site/apt/examples/site.apt.vm
@@ -0,0 +1,44 @@
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~  
+~~        http://www.apache.org/licenses/LICENSE-2.0
+~~  
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+
+ ---------------------------------------
+ Adding a report to the generated site
+ ---------------------------------------
+
+Adding a report to the generated site
+
+  The typical use case is that you want the plugin to run whenever you invoke
+
+------------------------------------------------------------------
+  mvn site
+------------------------------------------------------------------
+
+  That way, the report will be added to the generated
+  site. This is done by simply adding the following section to
+  your POM:
+
+------------------------------------------------------------------
+  <reporting>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${currentVersion}</version>
+      </plugin>
+      ...
+    </plugins>
+  </reporting>
+------------------------------------------------------------------
diff --git a/trunk/apache-rat-plugin/src/site/apt/examples/verify.apt.vm b/trunk/apache-rat-plugin/src/site/apt/examples/verify.apt.vm
new file mode 100644
index 0000000..8938cad
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/site/apt/examples/verify.apt.vm
@@ -0,0 +1,86 @@
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~  
+~~        http://www.apache.org/licenses/LICENSE-2.0
+~~  
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+
+ -----------------
+ Verify phase example
+ -----------------
+
+Verify phase example
+
+  This example demonstrates how to configure the plugin to
+  run automatically as part of the "verify" phase:
+
+------------------------------------------------------------------
+  <build>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${currentVersion}</version>
+        <executions>
+          <execution>
+            <phase>verify</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      ...
+    </plugins>
+  </build>
+------------------------------------------------------------------
+
+  In larger projects, the plugin may take some time to run. In
+  such cases, it may be desirable not to run the plugin with
+  every build, but only in important cases like a release build:
+
+------------------------------------------------------------------
+  <profiles>
+    <profile>
+      <id>release</id>
+      <build>
+        <plugins>
+          ...
+          <plugin>
+            <groupId>org.apache.rat</groupId>
+            <artifactId>apache-rat-plugin</artifactId>
+            <version>${currentVersion}</version>
+            <executions>
+              <execution>
+                <phase>verify</phase>
+                <goals>
+                  <goal>check</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+          ...
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+------------------------------------------------------------------
+
+  Note, that this is almost the same example as before, except
+  that the plugin configuration has been embedded into a profile.
+  In this case, the plugin is only executed, when the "release"
+  profile is activated by adding <<<-Prelease>>> to the command
+  line, for example like this:
+
+------------------------------------------------------------------
+  mvn -Prelease install
+------------------------------------------------------------------
diff --git a/trunk/apache-rat-plugin/src/site/apt/index.apt b/trunk/apache-rat-plugin/src/site/apt/index.apt
new file mode 100644
index 0000000..d2f9058
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/site/apt/index.apt
@@ -0,0 +1,55 @@
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~  
+~~        http://www.apache.org/licenses/LICENSE-2.0
+~~  
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+
+ ------
+ Introduction
+ ------
+
+
+The Rat Maven Plugin
+
+  This plugin may be used to run Rat, the
+  {{{../index.html}Release Audit Tool}}. It
+  verifies, whether your source code matches standards like the
+  {{{http://www.apache.org/legal/src-headers.html}ASF Source Header
+  and Copyright Notice Policy}}.
+
+* Goals Overview
+
+  The following goals are available:
+
+  * {{{./check-mojo.html}apache-rat:check}} Runs Rat and creates a report, which is written
+    to a plain text file.
+
+  * {{{./rat-mojo.html}apache-rat:rat}} Runs Rat and creates a report, which will be added
+    to the generated site.
+
+* Usage
+
+  Instructions on how to use the Rat Maven Plugin can be found on the {{{./usage.html}usage page}}.
+
+* Examples
+
+  To provide you with better understanding of some usages of the Rat Maven Plugin,
+  you can take a look into the following examples:
+
+  * {{{./examples/basic.html}Basic use}} of the apache-rat:check goal.
+
+  * {{{./examples/verify.html}Automatically}} running the apache-rat:check goal
+    when the project is built.
+
+  * Adding the report to the {{{./examples/site.html}generated site}}.
+
+  * Applying a {{{./examples/custom-license.html}custom license}}.
diff --git a/trunk/apache-rat-plugin/src/site/apt/usage.apt.vm b/trunk/apache-rat-plugin/src/site/apt/usage.apt.vm
new file mode 100644
index 0000000..710f9bb
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/site/apt/usage.apt.vm
@@ -0,0 +1,81 @@
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~  
+~~        http://www.apache.org/licenses/LICENSE-2.0
+~~  
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+
+ ------
+ Usage
+ ------
+
+Usage
+
+  To use the plugin, you've got two options: First of all, it can
+  create a simple text file, called <<<target/rat.txt>>>, with the
+  plugins output. This is done by invoking the <<<apache-rat:check>>> goal.
+
+  You may also add a report to the generated site. This is your
+  second option.
+
+*Writing the report to a text file
+
+  To create a text file with the report, you need to run the
+  <<<apache-rat:check>>> goal. Add a section like the following to your POM:
+
+------------------------------------------------------------------
+  <build>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${project.version}</version>
+      </plugin>
+      ...
+    </plugins>
+  </build>
+------------------------------------------------------------------
+
+  Once you have done that, the plugin can be run from the command
+  line by simply typing
+
+------------------------------------------------------------------
+  mvn apache-rat:check
+------------------------------------------------------------------
+
+  An example for running the plugin automatically can be found
+  {{{./examples/verify.html}here}}.
+
+*Adding the report to the generated site
+
+  A section like the following must be added to your POM:
+
+------------------------------------------------------------------
+  <reporting>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${project.version}</version>
+      </plugin>
+      ...
+    </plugins>
+  </reporting>
+------------------------------------------------------------------
+
+  The report will be created automatically when you generate the
+  site:
+
+------------------------------------------------------------------
+  mvn site
+------------------------------------------------------------------
diff --git a/trunk/apache-rat-plugin/src/site/fml/faq.fml b/trunk/apache-rat-plugin/src/site/fml/faq.fml
new file mode 100644
index 0000000..f46cdfb
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/site/fml/faq.fml
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!-- 
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+  
+        http://www.apache.org/licenses/LICENSE-2.0
+  
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<faqs id="FAQ" title="Frequently Asked Questions">
+  <part id="General">
+    <faq id="what">
+      <question>What is Rat?</question>
+      <answer>
+        <p>
+          Basically, you can think of it as a tool that checks,
+          whether you're source files are carrying proper
+          license headers. Almost any non-trivial organization
+          has a policy for license headers. In the case
+          of the <a href="http://www.apache.org/">Apache Software
+          Foundation (ASF)</a>, this is the
+          <a href="http://www.apache.org/legal/src-headers.html">ASF
+          Source Header and Copyright Notice Policy</a>.
+        </p>
+      </answer>
+    </faq>
+    <faq id="where">
+      <question>Where do I find Apache Rat?</question>
+      <answer>
+        <p>
+          Apache Rat is now part of the 
+          <a href='http://creadur.apache.org'>Apache Creadur</a> project,
+          a home for all sorts of software that helps audit and review
+          software distributions.
+        </p>
+      </answer>
+    </faq>
+    <faq id="why">
+      <question>Why should I use the Maven plugin to run Apache Rat?</question>
+      <answer>
+        <p>Because it makes running Rat trivial. Basically, you just
+          add the plugin to the <code>build/plugins</code> section
+          of your POM and run <code>mvn apache-rat:check</code>. Using Rat
+          cannot be simpler.
+        </p>
+      </answer>
+    </faq>
+  </part>
+
+  <part id="Configuration">
+    <faq id="includeSubprojects">
+      <question>
+        The apache-rat-plugin creates a report for every subproject.
+        I want a single report for the whole project, which includes
+        the subprojects.
+      </question>
+      <answer>
+        <p>Set the configuration parameter "excludeSubProjects"
+          to false.</p>
+      </answer>
+    </faq>
+    <faq id="customLicense">
+      <question>Can I use Rat to validate against a custom license header?</question>
+      <answer>
+        <p>See <a href="examples/custom-license.html">this example</a> to see how.</p>
+      </answer>
+    </faq>
+  </part>
+</faqs>
diff --git a/trunk/apache-rat-plugin/src/site/resources/css/site.css b/trunk/apache-rat-plugin/src/site/resources/css/site.css
new file mode 100644
index 0000000..3683f87
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/site/resources/css/site.css
@@ -0,0 +1,27 @@
+/*
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.    
+*/
+footer {
+    font-family: "Mate SC", "Lucida Console", Monaco, monospace;
+    font-size: 9pt;
+    padding: 5px 10px;
+    text-align: justify;
+    border: thin solid #D0D0D0;
+    background-color: #F8F8F8;
+    color: #404040;
+}
\ No newline at end of file
diff --git a/trunk/apache-rat-plugin/src/site/site.xml b/trunk/apache-rat-plugin/src/site/site.xml
new file mode 100644
index 0000000..68a881f
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/site/site.xml
@@ -0,0 +1,46 @@
+<?xml version='1.0'?>
+<!-- 
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+  
+        http://www.apache.org/licenses/LICENSE-2.0
+  
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/DECORATION/1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
+         name="Apache Rat&trade; Plugin for Apache Maven">
+  <body>
+    <head>
+        <link 
+            href='http://fonts.googleapis.com/css?family=Mate+SC' 
+            rel='stylesheet' 
+            type='text/css'/>
+    </head>
+  
+    <menu ref="parent"/>
+
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+      <item name="Goals" href="plugin-info.html"/>
+      <item name="Usage" href="usage.html"/>
+      <item name="FAQ" href="faq.html"/>
+    </menu>
+    <menu name="Examples">
+      <item name="Basic use" href="examples/basic.html"/>
+      <item name="Running the plugin automatically" href="examples/verify.html"/>
+      <item name="Adding a report to the site" href="examples/site.html"/>
+      <item name="Custom license" href="examples/custom-license.html"/>
+    </menu>
+
+    <menu ref="reports"/>
+  </body>
+</project>
diff --git a/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java b/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
new file mode 100644
index 0000000..1ed062e
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
@@ -0,0 +1,205 @@
+package org.apache.rat.mp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.commons.io.IOUtils;
+import org.apache.maven.model.Build;
+import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+import org.apache.rat.config.AddLicenseHeaders;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import static org.apache.rat.mp.RatTestHelpers.ensureRatReportIsCorrect;
+import static org.apache.rat.mp.RatTestHelpers.getSourceDirectory;
+import static org.apache.rat.mp.RatTestHelpers.newArtifactFactory;
+import static org.apache.rat.mp.RatTestHelpers.newArtifactRepository;
+import static org.apache.rat.mp.RatTestHelpers.newArtifactResolver;
+import static org.apache.rat.mp.RatTestHelpers.newSiteRenderer;
+
+/**
+ * Test case for the {@link RatCheckMojo} and {@link RatReportMojo}.
+ */
+public class RatCheckMojoTest extends AbstractMojoTestCase {
+
+    /**
+     * Creates a new instance of {@link RatCheckMojo}.
+     *
+     * @param pDir The directory, where to look for a pom.xml file.
+     * @return The configured Mojo.
+     * @throws Exception An error occurred while creating the Mojo.
+     */
+    private RatCheckMojo newRatCheckMojo(String pDir) throws Exception {
+        return (RatCheckMojo) newRatMojo(pDir, "check", false);
+    }
+
+    /**
+     * Creates a new instance of {@link AbstractRatMojo}.
+     *
+     * @param pDir  The directory, where to look for a pom.xml file.
+     * @param pGoal The goal, which the Mojo must implement.
+     * @return The configured Mojo.
+     * @throws Exception An error occurred while creating the Mojo.
+     */
+    private AbstractRatMojo newRatMojo(String pDir, String pGoal,
+                                       boolean pCreateCopy) throws Exception {
+        final File baseDir = new File(getBasedir());
+        final File testBaseDir = getSourceDirectory(getBasedir(), pDir,
+                pCreateCopy, baseDir);
+        File testPom = new File(testBaseDir, "pom.xml");
+        AbstractRatMojo mojo = (AbstractRatMojo) lookupMojo(pGoal, testPom);
+        assertNotNull(mojo);
+        final File buildDirectory = new File(new File(baseDir, "target/test"),
+                pDir);
+        setVariableValueToObject(mojo, "basedir", testBaseDir);
+        setVariableValueToObject(mojo, "addDefaultLicenseMatchers",
+                Boolean.TRUE);
+        setVariableValueToObject(mojo, "useDefaultExcludes", Boolean.TRUE);
+        setVariableValueToObject(mojo, "useMavenDefaultExcludes", Boolean.TRUE);
+        setVariableValueToObject(mojo, "useEclipseDefaultExcludes",
+                Boolean.TRUE);
+        setVariableValueToObject(mojo, "addLicenseHeaders", AddLicenseHeaders.FALSE.name());
+        final Build build = new Build();
+        build.setDirectory(buildDirectory.getPath());
+        final MavenProjectStub project = new MavenProjectStub() {
+            @Override
+            public Build getBuild() {
+                return build;
+            }
+        };
+        setVariableValueToObject(mojo, "project", project);
+        assertNotNull(
+                "Problem in test setup - you are missing a project in your mojo.",
+                project);
+        assertNotNull(
+                "The mojo is missing its MavenProject, which will result in an NPE during rat runs.",
+                mojo.getProject());
+        assertNotNull(
+                "No artifactRepos found, which will result in an NPE during rat runs.",
+                project.getRemoteArtifactRepositories());
+
+        if (mojo instanceof RatReportMojo) {
+            setVariableValueToObject(mojo, "localRepository",
+                    newArtifactRepository(container));
+            setVariableValueToObject(mojo, "resolver", newArtifactResolver());
+            setVariableValueToObject(mojo, "factory", newArtifactFactory());
+            setVariableValueToObject(mojo, "siteRenderer",
+                    newSiteRenderer(container));
+        } else if (mojo instanceof RatCheckMojo) {
+            final File ratTxtFile = new File(buildDirectory, "rat.txt");
+            setVariableValueToObject(mojo, "reportFile", ratTxtFile);
+        }
+        return mojo;
+    }
+
+    /**
+     * Reads the location of the rat text file from the Mojo.
+     *
+     * @param pMojo The configured Mojo.
+     * @return Value of the "reportFile" property.
+     * @throws Exception An error occurred while reading the property.
+     */
+    private File getRatTxtFile(RatCheckMojo pMojo) throws Exception {
+        return (File) getVariableValueFromObject(pMojo, "reportFile");
+    }
+
+    /**
+     * Runs a check, which should expose no problems.
+     *
+     * @throws Exception The test failed.
+     */
+    public void testIt1() throws Exception {
+        final RatCheckMojo mojo = newRatCheckMojo("it1");
+        final File ratTxtFile = getRatTxtFile(mojo);
+        mojo.execute();
+        ensureRatReportIsCorrect(ratTxtFile, 1, 0);
+    }
+
+    /**
+     * Runs a check, which should detect a problem.
+     *
+     * @throws Exception The test failed.
+     */
+    public void testIt2() throws Exception {
+        final RatCheckMojo mojo = newRatCheckMojo("it2");
+        final File ratTxtFile = getRatTxtFile(mojo);
+        try {
+            mojo.execute();
+            fail("Expected RatCheckException");
+        } catch (RatCheckException e) {
+            final String msg = e.getMessage();
+            // default value is "${project.build.directory}/rat.txt"
+            final String REPORTFILE = "rat.txt";
+
+            assertTrue("report filename was not contained in '" + msg + "'",
+                    msg.contains(REPORTFILE));
+            assertFalse("no null allowed in '" + msg + "'", (msg.toUpperCase()
+                    .contains("NULL")));
+        }
+        ensureRatReportIsCorrect(ratTxtFile, 1, 1);
+    }
+
+    private String getFirstLine(File pFile) throws IOException {
+        FileInputStream fis = null;
+        InputStreamReader reader = null;
+        BufferedReader breader = null;
+        try {
+            fis = new FileInputStream(pFile);
+            reader = new InputStreamReader(fis, "UTF8");
+            breader = new BufferedReader(reader);
+            final String result = breader.readLine();
+            breader.close();
+            return result;
+        } finally {
+            IOUtils.closeQuietly(fis);
+            IOUtils.closeQuietly(reader);
+            IOUtils.closeQuietly(breader);
+        }
+    }
+
+    /**
+     * Tests adding license headers.
+     */
+    public void testIt3() throws Exception {
+        final RatCheckMojo mojo = (RatCheckMojo) newRatMojo("it3", "check",
+                true);
+        setVariableValueToObject(mojo, "addLicenseHeaders", AddLicenseHeaders.TRUE.name());
+        setVariableValueToObject(mojo, "numUnapprovedLicenses",
+                1);
+        mojo.execute();
+        final File ratTxtFile = getRatTxtFile(mojo);
+        ensureRatReportIsCorrect(ratTxtFile, 1, 1);
+
+        final File baseDir = new File(getBasedir());
+        final File sourcesDir = new File(new File(baseDir, "target/it-source"),
+                "it3");
+        final String firstLineOrig = getFirstLine(new File(sourcesDir,
+                "src.apt"));
+        assertTrue(firstLineOrig.contains("--"));
+        assertFalse(firstLineOrig.contains("~~"));
+        final String firstLineModified = getFirstLine(new File(sourcesDir,
+                "src.apt.new"));
+        assertTrue(firstLineModified.contains("~~"));
+        assertFalse(firstLineModified.contains("--"));
+    }
+
+}
diff --git a/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatTestHelpers.java b/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatTestHelpers.java
new file mode 100644
index 0000000..8e9e846
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatTestHelpers.java
@@ -0,0 +1,275 @@
+package org.apache.rat.mp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.commons.io.IOUtils;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.factory.DefaultArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.DefaultArtifactResolver;
+import org.apache.maven.doxia.siterenderer.Renderer;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.util.DirectoryScanner;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
+/**
+ * Test helpers used when verifying mojo interaction in RAT integration tests.
+ */
+public final class RatTestHelpers {
+
+    /**
+     * @param pDir Removes the given directory recursively.
+     * @throws IOException in case of errors.
+     */
+    public static void remove(File pDir) throws IOException {
+        if (pDir.isFile()) {
+            if (!pDir.delete()) {
+                throw new IOException("Unable to delete file: " + pDir);
+            }
+        } else if (pDir.isDirectory()) {
+            final File[] files = pDir.listFiles();
+            if (files != null) {
+                for (File file : files) {
+                    remove(file);
+                }
+            }
+            if (!pDir.delete()) {
+                throw new IOException("Unable to delete directory: " + pDir);
+            }
+        } else if (pDir.exists()) {
+            throw new IOException("Unable to delete unknown object " + pDir);
+        }
+    }
+
+    /**
+     * Copies the given files recursively in order to get all integration test
+     * files into a target directory.
+     *
+     * @param pSource source files.
+     * @param pTarget target directory
+     * @throws IOException in case of errors.
+     */
+    public static void copy(File pSource, File pTarget) throws IOException {
+        if (pSource.isDirectory()) {
+            if (!pTarget.isDirectory() && !pTarget.mkdirs()) {
+                throw new IOException("Unable to create directory: " + pTarget);
+            }
+            final DirectoryScanner scanner = new DirectoryScanner();
+            scanner.setBasedir(pSource);
+            scanner.addDefaultExcludes();
+            scanner.setIncludes(new String[]{"*"});
+            scanner.scan();
+            final String[] dirs = scanner.getIncludedDirectories();
+
+            for (final String dir : dirs) {
+                if (!"".equals(dir)) {
+                    copy(new File(pSource, dir), new File(pTarget, dir));
+                }
+            }
+            final String[] files = scanner.getIncludedFiles();
+            for (String file : files) {
+                copy(new File(pSource, file), new File(pTarget, file));
+            }
+        } else if (pSource.isFile()) {
+            final FileInputStream fis = new FileInputStream(pSource);
+            final FileOutputStream fos = new FileOutputStream(pTarget);
+            final byte[] buffer = new byte[8192];
+            for (; ; ) {
+                int res = fis.read(buffer);
+                if (res == -1) {
+                    break;
+                }
+                if (res > 0) {
+                    fos.write(buffer, 0, res);
+                }
+            }
+            fos.close();
+            fis.close();
+        } else {
+            throw new IOException("Unable to copy unknown object " + pSource);
+        }
+    }
+
+    /**
+     * Creates a new instance of {@link Renderer}.
+     *
+     * @param container current plexus container.
+     * @return A configured instance of a Default renderer.
+     * @throws Exception Creating the object failed.
+     */
+    public static Renderer newSiteRenderer(PlexusContainer container)
+            throws Exception {
+        return (Renderer) container.lookup(Renderer.ROLE, "default");
+    }
+
+    /**
+     * Creates a new instance of {@link ArtifactFactory}.
+     *
+     * @return A configured instance of {@link DefaultArtifactFactory}.
+     * @throws Exception Creating the object failed.
+     */
+    public static ArtifactFactory newArtifactFactory() throws Exception {
+        final InvocationHandler handler = new InvocationHandler() {
+            public Object invoke(Object pProxy, Method pMethod, Object[] pArgs)
+                    throws Throwable {
+                System.out.println("Invoking method " + pMethod);
+                throw new IllegalStateException("Not implemented");
+            }
+        };
+        return (ArtifactFactory) Proxy.newProxyInstance(Thread.currentThread()
+                        .getContextClassLoader(),
+                new Class[]{ArtifactFactory.class}, handler);
+    }
+
+    /**
+     * Creates a new instance of {@link ArtifactResolver}.
+     *
+     * @return A configured instance of {@link DefaultArtifactResolver}.
+     * @throws Exception Creating the object failed.
+     */
+    public static ArtifactResolver newArtifactResolver() throws Exception {
+        final InvocationHandler handler = new InvocationHandler() {
+            public Object invoke(Object pProxy, Method pMethod, Object[] pArgs)
+                    throws Throwable {
+                System.out.println("Invoking method " + pMethod);
+                throw new IllegalStateException("Not implemented");
+            }
+        };
+        return (ArtifactResolver) Proxy.newProxyInstance(Thread.currentThread()
+                        .getContextClassLoader(),
+                new Class[]{ArtifactResolver.class}, handler);
+    }
+
+    /**
+     * Creates an instance of {@link ArtifactRepository}.
+     *
+     * @param container current plexus container.
+     * @return A configured instance of {@link DefaultArtifactRepository}.
+     * @throws Exception Creating the object failed.
+     */
+    public static ArtifactRepository newArtifactRepository(
+            PlexusContainer container) throws Exception {
+        File m2Dir = new File(System.getProperty("user.home"), ".m2");
+        File settingsFile = new File(m2Dir, "settings.xml");
+        String localRepo = null;
+        if (settingsFile.exists()) {
+            Settings settings = new SettingsXpp3Reader().read(new FileReader(
+                    settingsFile));
+            localRepo = settings.getLocalRepository();
+        }
+        if (localRepo == null) {
+            localRepo = System.getProperty("user.home") + "/.m2/repository";
+        }
+        ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) container
+                .lookup(ArtifactRepositoryLayout.ROLE, "default");
+        return new DefaultArtifactRepository("local", "file://" + localRepo,
+                repositoryLayout);
+    }
+
+    public static File makeSourceDirectory(String mvnBaseDir, File pFile,
+                                           String pDir, boolean pCreateCopy) throws IOException {
+        if (!pCreateCopy) {
+            return pFile;
+        }
+
+        final File targetDir = new File(new File(new File(mvnBaseDir),
+                "target/it-source"), pDir);
+        remove(targetDir);
+        copy(pFile, targetDir);
+        return targetDir;
+    }
+
+    public static File getSourceDirectory(String mvnBaseDir, String pDir,
+                                          boolean pCreateCopy, final File baseDir) throws IOException {
+        return makeSourceDirectory(mvnBaseDir, new File(new File(baseDir,
+                "src/test/resources/unit"), pDir), pDir, pCreateCopy);
+    }
+
+    /**
+     * Reads the created report file and verifies, whether the detected numbers
+     * are matching.
+     *
+     * @param pRatTxtFile        The file to read.
+     * @param pNumALFiles        The number of files with AL.
+     * @param pNumNoLicenseFiles The number of files without license.
+     * @throws IOException              An error occurred while reading the file or the file does not
+     *                                  exist at all.
+     * @throws IllegalArgumentException In case of mismatches in file numbers passed in as parameter.
+     */
+    public static void ensureRatReportIsCorrect(File pRatTxtFile,
+                                                int pNumALFiles, int pNumNoLicenseFiles) throws IOException {
+        if (!pRatTxtFile.exists()) {
+            throw new FileNotFoundException("Could not find " + pRatTxtFile);
+        }
+        BufferedReader reader = null;
+        try {
+
+            reader = new BufferedReader(new FileReader(pRatTxtFile));
+            Integer numALFiles = null;
+            Integer numNoLicenseFiles = null;
+            for (; ; ) {
+                String line = reader.readLine();
+                if (line == null) {
+                    break;
+                }
+                int offset = line.indexOf("Apache Licensed: ");
+                if (offset >= 0) {
+                    numALFiles = new Integer(line.substring(
+                            offset + "Apache Licensed: ".length()).trim());
+                }
+                offset = line.indexOf("Unknown Licenses");
+                if (offset >= 0) {
+                    numNoLicenseFiles = new Integer(line.substring(0, offset)
+                            .trim());
+                }
+            }
+            reader.close();
+
+            if (!new Integer(pNumALFiles).equals(numALFiles)) {
+                throw new IllegalArgumentException(
+                        "Amount of licensed files does not match. Expected "
+                                + pNumALFiles + ", got " + numALFiles);
+            }
+
+            if (!new Integer(pNumNoLicenseFiles).equals(numNoLicenseFiles)) {
+                throw new IllegalArgumentException(
+                        "Amount of licensed files does not match. Expected "
+                                + pNumALFiles + ", got " + numALFiles);
+            }
+        } finally {
+            IOUtils.closeQuietly(reader);
+        }
+
+    }
+
+}
diff --git a/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/util/ExclusionHelperTest.java b/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/util/ExclusionHelperTest.java
new file mode 100644
index 0000000..696ea62
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/util/ExclusionHelperTest.java
@@ -0,0 +1,108 @@
+package org.apache.rat.mp.util;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.plugin.logging.Log;
+import org.apache.rat.config.SourceCodeManagementSystems;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import static org.apache.rat.mp.util.ExclusionHelper.ECLIPSE_DEFAULT_EXCLUDES;
+import static org.apache.rat.mp.util.ExclusionHelper.IDEA_DEFAULT_EXCLUDES;
+import static org.apache.rat.mp.util.ExclusionHelper.MAVEN_DEFAULT_EXCLUDES;
+import static org.apache.rat.mp.util.ExclusionHelper.addEclipseDefaults;
+import static org.apache.rat.mp.util.ExclusionHelper.addIdeaDefaults;
+import static org.apache.rat.mp.util.ExclusionHelper.addMavenDefaults;
+import static org.apache.rat.mp.util.ExclusionHelper.addPlexusAndScmDefaults;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ExclusionHelperTest {
+
+    @Mock
+    private Log log;
+
+    @Test
+    public void testNumberOfExclusions() {
+        assertEquals("Did you change the number of eclipse excludes?", 3,
+                ECLIPSE_DEFAULT_EXCLUDES.size());
+        assertEquals("Did you change the number of idea excludes?", 4,
+                IDEA_DEFAULT_EXCLUDES.size());
+        assertEquals("Did you change the number of mvn excludes?", 7,
+                MAVEN_DEFAULT_EXCLUDES.size());
+    }
+
+    @Test
+    public void testAddingEclipseExclusions() {
+        final Set<String> exclusion = new HashSet<String>();
+        addEclipseDefaults(log, false, exclusion);
+        assertTrue(exclusion.isEmpty());
+        addEclipseDefaults(log, true, exclusion);
+        assertEquals(3, exclusion.size());
+        addEclipseDefaults(log, true, exclusion);
+        assertEquals(3, exclusion.size());
+    }
+
+    @Test
+    public void testAddingIdeaExclusions() {
+        final Set<String> exclusion = new HashSet<String>();
+        addIdeaDefaults(log, false, exclusion);
+        assertTrue(exclusion.isEmpty());
+        addIdeaDefaults(log, true, exclusion);
+        assertEquals(4, exclusion.size());
+        addIdeaDefaults(log, true, exclusion);
+        assertEquals(4, exclusion.size());
+    }
+
+    @Test
+    public void testAddingMavenExclusions() {
+        final Set<String> exclusion = new HashSet<String>();
+        addMavenDefaults(log, false, exclusion);
+        assertTrue(exclusion.isEmpty());
+        addMavenDefaults(log, true, exclusion);
+        assertEquals(7, exclusion.size());
+        addMavenDefaults(log, true, exclusion);
+        assertEquals(7, exclusion.size());
+    }
+
+    @Test
+    public void testAddingPlexusAndScmExclusion() {
+        final int expectedSizeMergedFromPlexusDefaultsAndScm = (38 + SourceCodeManagementSystems.getPluginExclusions().size());
+
+        final Set<String> exclusion = new HashSet<String>();
+        addPlexusAndScmDefaults(log, false, exclusion);
+        assertTrue(exclusion.isEmpty());
+        addPlexusAndScmDefaults(log, true, exclusion);
+        assertEquals(
+                "Did you upgrade plexus to get more default excludes?",//
+                expectedSizeMergedFromPlexusDefaultsAndScm,//
+                exclusion.size());
+        addPlexusAndScmDefaults(log, true, exclusion);
+        assertEquals(
+                "Did you upgrade plexus to get more default excludes?",//
+                expectedSizeMergedFromPlexusDefaultsAndScm,//
+                exclusion.size());
+    }
+
+}
diff --git a/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/util/ScmIgnoreParserTest.java b/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/util/ScmIgnoreParserTest.java
new file mode 100644
index 0000000..5b24c47
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/java/org/apache/rat/mp/util/ScmIgnoreParserTest.java
@@ -0,0 +1,108 @@
+package org.apache.rat.mp.util;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.commons.io.IOUtils;
+import org.apache.maven.plugin.logging.Log;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.List;
+
+import static org.apache.rat.mp.util.ScmIgnoreParser.getExcludesFromFile;
+import static org.apache.rat.mp.util.ScmIgnoreParser.getExclusionsFromSCM;
+import static org.apache.rat.mp.util.ScmIgnoreParser.isComment;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ScmIgnoreParserTest {
+    @Rule
+    public TemporaryFolder testFolder = new TemporaryFolder();
+
+    @Mock
+    private Log log;
+
+    private static String IGNORE_EXAMPLE = "**/*.java\r\n## Justus commentos\r\nignoredDirectory";
+
+    @Test
+    public void parseAsNoComments() {
+        assertFalse(isComment(null));
+        assertFalse(isComment(""));
+        assertFalse(isComment("This is a  normal line"));
+        assertFalse(isComment("**/ignoreMe/*"));
+        assertFalse(isComment("C:\\No Space In FileNames Please"));
+    }
+
+    @Test
+    public void parseAsComments() {
+        assertTrue(isComment(" # comment that is"));
+        assertTrue(isComment("## comment that is"));
+        assertTrue(isComment("## comment that is ## "));
+        assertTrue(isComment("     // comment that is ## "));
+        assertTrue(isComment("     /** comment that is **/ "));
+        assertTrue(isComment("     /* comment that is */ "));
+    }
+
+
+    @Test
+    public void parseFromNonExistingFileOrDirectoryOrNull() {
+        assertTrue(getExcludesFromFile(log, new File("./mustNotExist-RAT-171")).isEmpty());
+        assertTrue(getExcludesFromFile(log, null).isEmpty());
+        assertTrue(getExcludesFromFile(log, new File(".")).isEmpty());
+    }
+
+    @Test
+    public void parseFromTargetDirectoryHopefullyWithoutSCMIgnores() {
+        assertTrue(getExclusionsFromSCM(log, new File("./target")).isEmpty());
+    }
+
+    @Test
+    public void parseFromEmptyIgnoreFile() throws IOException {
+        File ignore = testFolder.newFile();
+        assertTrue(ignore.exists());
+        writeToFile(IGNORE_EXAMPLE, ignore);
+
+        final List<String> excludes = getExcludesFromFile(log, ignore);
+        assertFalse(excludes.isEmpty());
+        assertEquals(2, excludes.size());
+    }
+
+    private static void writeToFile(String contents, File file) throws IOException {
+        BufferedWriter bw = null;
+        try {
+            FileWriter fw = new FileWriter(file.getAbsoluteFile());
+            bw = new BufferedWriter(fw);
+            bw.write(contents);
+        } catch (IOException e) {
+            throw e;
+        } finally {
+            IOUtils.closeQuietly(bw);
+        }
+    }
+
+
+}
diff --git a/trunk/apache-rat-plugin/src/test/resources/unit/it1/.bzrignore b/trunk/apache-rat-plugin/src/test/resources/unit/it1/.bzrignore
new file mode 100644
index 0000000..f59acc0
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/resources/unit/it1/.bzrignore
@@ -0,0 +1,5 @@
+## RAT-171: Add rubbish and ensure that the plugin behaves properly
+DoesNotExistAtALL/**
+*\IllegalStuffNotExisting
+Lets-See*+?!OrWhat
+\\nDoesThatWorkAsWell\/
diff --git a/trunk/apache-rat-plugin/src/test/resources/unit/it1/pom.xml b/trunk/apache-rat-plugin/src/test/resources/unit/it1/pom.xml
new file mode 100644
index 0000000..81e7955
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/resources/unit/it1/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <groupId>org.codehaus.mojo.rat.test</groupId>
+  <artifactId>it1</artifactId>
+  <version>1.0</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>@pom.version@</version>
+        <configuration>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/trunk/apache-rat-plugin/src/test/resources/unit/it2/pom.xml b/trunk/apache-rat-plugin/src/test/resources/unit/it2/pom.xml
new file mode 100644
index 0000000..82eac23
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/resources/unit/it2/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <groupId>org.apache.rat.test</groupId>
+  <artifactId>it2</artifactId>
+  <version>1.0</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>@pom.version@</version>
+        <configuration>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/trunk/apache-rat-plugin/src/test/resources/unit/it2/src.txt b/trunk/apache-rat-plugin/src/test/resources/unit/it2/src.txt
new file mode 100644
index 0000000..72d9dff
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/resources/unit/it2/src.txt
@@ -0,0 +1,2 @@
+This is a text file, which intentionally has no Apache License Header.
+The Rat plugin should detect it.
diff --git a/trunk/apache-rat-plugin/src/test/resources/unit/it3/pom.xml b/trunk/apache-rat-plugin/src/test/resources/unit/it3/pom.xml
new file mode 100644
index 0000000..fff9f7c
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/resources/unit/it3/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <groupId>org.apache.rat.test</groupId>
+  <artifactId>it3</artifactId>
+  <version>1.0</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>@pom.version@</version>
+        <configuration>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/trunk/apache-rat-plugin/src/test/resources/unit/it3/src.apt b/trunk/apache-rat-plugin/src/test/resources/unit/it3/src.apt
new file mode 100644
index 0000000..d4236b7
--- /dev/null
+++ b/trunk/apache-rat-plugin/src/test/resources/unit/it3/src.apt
@@ -0,0 +1,8 @@
+    --------------
+    Some text file
+    --------------
+
+Some text file
+
+  This is a text file, which intentionally has no Apache License Header.
+  The Rat plugin should detect it.
diff --git a/trunk/apache-rat-tasks/pom.xml b/trunk/apache-rat-tasks/pom.xml
new file mode 100644
index 0000000..23af7b7
--- /dev/null
+++ b/trunk/apache-rat-tasks/pom.xml
@@ -0,0 +1,172 @@
+<?xml version='1.0'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.rat</groupId>
+    <artifactId>apache-rat-project</artifactId>
+    <version>0.12-SNAPSHOT</version>
+  </parent>
+  <artifactId>apache-rat-tasks</artifactId>
+  <packaging>jar</packaging>
+  <name>Apache Creadur Rat::Tasks4Ant</name>
+  <description>
+ A plugin for Apache Ant that runs Apache Rat
+   to audit the source to be distributed.
+  </description>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.rat</groupId>
+      <artifactId>apache-rat-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ant</groupId>
+      <artifactId>ant</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ant</groupId>
+      <artifactId>ant-antunit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ant</groupId>
+      <artifactId>ant-testutil</artifactId>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <filtering>false</filtering>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <filtering>true</filtering>
+        <directory>src/main/filtered-resources</directory>
+      </resource>
+      <resource>
+        <directory>..</directory>
+        <targetPath>META-INF</targetPath>
+        <includes>
+          <include>RELEASE_NOTES.txt</include>
+        </includes>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>generate-test-resources</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <stripVersion>true</stripVersion>
+              <includeArtifactIds>ant-antunit</includeArtifactIds>
+              <outputDirectory>${project.build.directory}/dependencies</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>test</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <target>
+                <ant antfile="src/test/resources/antunit/report-bad-configurations.xml" inheritAll="false" inheritRefs="false">
+                  <property name="jar.name" location="${project.build.outputDirectory}" />
+                  <property name="base.dir" location="${basedir}" />
+                  <property name="antunit.jar.name" location="${project.build.directory}/dependencies/ant-antunit.jar" />
+                  <property name="test.skipped" value="${maven.test.skip}" />
+                  <property name="test.classpath" refid="maven.test.classpath" />
+                </ant>
+                <ant antfile="src/test/resources/antunit/report-normal-operation.xml" inheritAll="false" inheritRefs="false">
+                  <property name="jar.name" location="${project.build.outputDirectory}" />
+                  <property name="base.dir" location="${basedir}" />
+                  <property name="antunit.jar.name" location="${project.build.directory}/dependencies/ant-antunit.jar" />
+                  <property name="test.skipped" value="${maven.test.skip}" />
+                  <property name="test.classpath" refid="maven.test.classpath" />
+                </ant>
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <configuration>
+            <excludes>
+              <!-- This file does not have license header because it is used to test license headers -->
+              <exclude>src/test/resources/antunit/index.apt</exclude>
+            </excludes>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <versionRange>[2.0,)</versionRange>
+                    <goals>
+                      <goal>copy-dependencies</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore />
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+  <!-- Strangely no PMD report appears in this submodule -->
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-pmd-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
diff --git a/trunk/apache-rat-tasks/run-antunit.xml b/trunk/apache-rat-tasks/run-antunit.xml
new file mode 100644
index 0000000..6115bea
--- /dev/null
+++ b/trunk/apache-rat-tasks/run-antunit.xml
@@ -0,0 +1,65 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one   *
+ or more contributor license agreements.  See the NOTICE file *
+ distributed with this work for additional information        *
+ regarding copyright ownership.  The ASF licenses this file   *
+ to you under the Apache License, Version 2.0 (the            *
+ "License"); you may not use this file except in compliance   *
+ with the License.  You may obtain a copy of the License at   *
+                                                              *
+   http://www.apache.org/licenses/LICENSE-2.0                 *
+                                                              *
+ Unless required by applicable law or agreed to in writing,   *
+ software distributed under the License is distributed on an  *
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ KIND, either express or implied.  See the License for the    *
+ specific language governing permissions and limitations      *
+ under the License.                                           *
+
+-->
+<project name="AntUnit Tests for Rat Ant Tasks"
+         default="antunit">
+
+  <property name="jar.name" location="target/classes"/>
+  <property name="antunit.dir"
+            location="src/test/resources/antunit"/>
+  <path id="test-classpath">
+    <pathelement location="${jar.name}"/>
+    <pathelement location="../apache-rat-core/target/classes"/>
+    <pathelement location="target/test-classes"/>
+    <pathelement location="${user.home}/.m2/repository/org/apache/ant/ant-antunit/1.1/ant-antunit-1.1.jar"/>
+    <pathelement location="${user.home}/.m2/repository/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/>
+    <pathelement location="${user.home}/.m2/repository/commons-cli/commons-cli/1.1/commons-cli-1.1.jar"/>
+    <pathelement location="${user.home}/.m2/repository/commons-collections/commons-collections/3.2/commons-collections-3.2.jar"/>
+    <pathelement location="${user.home}/.m2/repository/commons-io/commons-io/1.4/commons-io-1.4.jar"/>
+  </path>
+  <property name="test.classpath" refid="test-classpath"/>
+
+  <target name="antunit">
+    <subant>
+      <fileset dir="${antunit.dir}"
+                    includes="report-*.xml"/>
+      <property name="jar.name" value="${jar.name}"/>
+      <property name="test.classpath" value="${test.classpath}"/>
+    </subant>
+  </target>
+
+  <target name="prepare-ant-run">
+    <fail unless="file">Must specify "file" property</fail>
+    <ant antfile="${file}">
+      <property name="jar.name" value="${jar.name}"/>
+      <property name="test.classpath" value="${test.classpath}"/>
+    </ant>
+  </target>
+
+  <target name="run-single-test">
+    <ant antfile="${antunit.dir}/${file}"
+         dir="${antunit.dir}"
+         target="${target}">
+      <property name="jar.name" value="${jar.name}"/>
+      <property name="test.classpath" value="${test.classpath}"/>
+    </ant>
+  </target>
+</project>
diff --git a/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/FullTextLicenseMatcher.java b/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/FullTextLicenseMatcher.java
new file mode 100644
index 0000000..03c9d74
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/FullTextLicenseMatcher.java
@@ -0,0 +1,71 @@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.anttasks;
+
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.analysis.license.FullTextMatchingLicense;
+import org.apache.rat.api.Document;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+
+/**
+ * Adapts {@link FullTextMatchingLicense FullTextMatchingLicense}
+ * to Ant's method naming conventions so it becomes easy to write
+ * text matching based license matchers inside an Ant build file.
+ * @since Rat Antlib 0.9
+ */
+public class FullTextLicenseMatcher extends FullTextMatchingLicense {
+    private boolean validated = false;
+    private String fullText = "";
+    private Project project;
+
+    public void setProject(Project project) {
+        this.project = project;
+    }
+
+    public void addText(String text) {
+        if (text != null && text.trim().length() > 0) {
+            setFullText(fullText += project.replaceProperties(text));
+        }
+    }
+
+    @Override
+    public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+        validate();
+        return super.match(subject, line);
+    }
+
+    private void validate() {
+        if (!validated) {
+            validated  = true;
+            if (!hasFullText()) {
+                throw new BuildException("You must specify the text to match.");
+            }
+            if (getLicenseFamilyCategory() == null) {
+                throw new BuildException("The licenseFamilyCategory attribute"
+                                         + " is required.");
+            }
+            if (getLicenseFamilyName() == null) {
+                throw new BuildException("The licenseFamilyName attribute"
+                                         + " is required.");
+            }
+        }
+    }
+
+}
diff --git a/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/Report.java b/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/Report.java
new file mode 100644
index 0000000..dc9f5b0
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/Report.java
@@ -0,0 +1,359 @@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.anttasks;
+
+ import org.apache.commons.io.IOUtils;
+ import org.apache.rat.Defaults;
+ import org.apache.rat.ReportConfiguration;
+ import org.apache.rat.analysis.IHeaderMatcher;
+ import org.apache.rat.analysis.util.HeaderMatcherMultiplexer;
+ import org.apache.rat.api.RatException;
+ import org.apache.rat.license.ILicenseFamily;
+ import org.apache.tools.ant.BuildException;
+ import org.apache.tools.ant.Project;
+ import org.apache.tools.ant.Task;
+ import org.apache.tools.ant.taskdefs.LogOutputStream;
+ import org.apache.tools.ant.types.EnumeratedAttribute;
+ import org.apache.tools.ant.types.Resource;
+ import org.apache.tools.ant.types.ResourceCollection;
+ import org.apache.tools.ant.types.resources.Union;
+ import org.apache.tools.ant.util.FileUtils;
+
+ import javax.xml.transform.TransformerException;
+ import java.io.File;
+ import java.io.FileWriter;
+ import java.io.IOException;
+ import java.io.InputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.PrintWriter;
+ import java.util.ArrayList;
+ import java.util.List;
+
+/**
+ * A basic Ant task that generates a report on all files specified by
+ * the nested resource collection(s).
+ *
+ * <p>IHeaderMatcher(s) can be specified as nested elements as well.</p>
+ *
+ * <p>The attribute <code>format</code> defines the output format and
+ * can take the values
+ * <ul>
+ *   <li>xml - Rat's native XML output.</li>
+ *   <li>styled - transforms the XML output using the given
+ *   stylesheet.  The stylesheet attribute must be set as well if this
+ *   attribute is used.</li>
+ *   <li>plain - plain text using Rat's built-in stylesheet.  This is
+ *   the default.</li>
+ * </ul>
+ */
+public class Report extends Task {
+
+    /**
+     * will hold any nested resource collection
+     */
+    private Union nestedResources;
+    /**
+     * The licenses we want to match on.
+     */
+    private ArrayList<IHeaderMatcher> licenseMatchers = new ArrayList<IHeaderMatcher>();
+
+    private ArrayList<ILicenseFamily> licenseNames = new ArrayList<ILicenseFamily>();
+
+    /**
+     * Whether to add the default list of license matchers.
+     */
+    private boolean addDefaultLicenseMatchers = true;
+    /**
+     * Where to send the report.
+     */
+    private File reportFile;
+    /**
+     * Which format to use.
+     */
+    private Format format = Format.PLAIN;
+    /**
+     * Which stylesheet to use.
+     */
+    private Resource stylesheet;
+    /**
+     * Whether to add license headers.
+     */
+    private AddLicenseHeaders addLicenseHeaders = new AddLicenseHeaders(AddLicenseHeaders.FALSE);
+    /**
+     * The copyright message.
+     */
+    private String copyrightMessage;
+
+    /**
+     * Adds resources that will be checked.
+     * @param rc resource to check.
+     */
+    public void add(ResourceCollection rc) {
+        if (nestedResources == null) {
+            nestedResources = new Union();
+        }
+        nestedResources.add(rc);
+    }
+
+    /**
+     * @param matcher Adds a license matcher.
+     */
+    public void add(IHeaderMatcher matcher) {
+        licenseMatchers.add(matcher);
+    }
+
+    public void add(ILicenseFamily license) {
+        licenseNames.add(license);
+    }
+
+    /**
+     * @param addDefaultLicenseMatchers Whether to add the default list of license matchers.
+     */
+    public void setAddDefaultLicenseMatchers(boolean addDefaultLicenseMatchers) {
+        this.addDefaultLicenseMatchers = addDefaultLicenseMatchers;
+    }
+
+    /**
+     * Where to send the report to.
+     * @param f report output file.
+     */
+    public void setReportFile(File f) {
+        reportFile = f;
+    }
+
+    /**
+     * Which format to use.
+     * @param f format. 
+     */
+    public void setFormat(Format f) {
+        if (f == null) {
+            throw new IllegalArgumentException("format must not be null");
+        }
+        format = f;
+    }
+
+    /**
+     * @param pAdd Whether to add license headers. 
+     */
+    public void setAddLicenseHeaders(AddLicenseHeaders pAdd) {
+        if (pAdd == null) {
+            throw new IllegalArgumentException("addLicenseHeaders must not be null");
+        }
+        addLicenseHeaders = pAdd;
+    }
+
+    /**
+     * @param pMessage copyright message to set.
+     */
+    public void setCopyrightMessage(String pMessage) {
+        copyrightMessage = pMessage;
+    }
+    
+    /**
+     * Which stylesheet to use (only meaningful with format='styled').
+     * @param u stylesheet.
+     */
+    public void addConfiguredStylesheet(Union u) {
+        if (stylesheet != null || u.size() != 1) {
+            throw new BuildException("You must not specify more than one"
+                                     + " stylesheet.");
+        }
+        stylesheet = (Resource) u.iterator().next();
+    }
+
+    /**
+     * Generates the report.
+     */
+    @Override
+    public void execute() {
+        validate();
+
+        PrintWriter out = null;
+        try {
+            if (reportFile == null) {
+                out = new PrintWriter(
+                          new OutputStreamWriter(
+                              new LogOutputStream(this, Project.MSG_INFO)
+                              )
+                          );
+            } else {
+                out = new PrintWriter(new FileWriter(reportFile));
+            }
+            createReport(out);
+            out.flush();
+        } catch (IOException ioex) {
+            throw new BuildException(ioex);
+        } catch (TransformerException e) {
+            throw new BuildException(e);
+        } catch (InterruptedException e) {
+            throw new BuildException(e);
+        } catch (RatException e) {
+            throw new BuildException(e);
+        } finally {
+            IOUtils.closeQuietly(out);
+        }
+    }
+
+    /**
+     * validates the task's configuration.
+     */
+    private void validate() {
+        if (nestedResources == null) {
+            throw new BuildException("You must specify at least one file to"
+                                     + " create the report for.");
+        }
+        if (!addDefaultLicenseMatchers && licenseMatchers.size() == 0) {
+            throw new BuildException("You must specify at least one license"
+                                     + " matcher");
+        }
+        if (format.getValue().equals(Format.STYLED_KEY)) {
+            if (stylesheet == null) {
+                throw new BuildException("You must specify a stylesheet when"
+                                         + " using the 'styled' format");
+            }
+            if (!stylesheet.isExists()) {
+                throw new BuildException("Cannot find specified stylesheet '"
+                                         + stylesheet + "'");
+            }
+        } else if (stylesheet != null) {
+            log("Ignoring stylesheet '" + stylesheet + "' when using format '"
+                + format.getValue() + "'", Project.MSG_WARN);
+        }
+    }
+
+    /**
+     * Writes the report to the given stream.
+     * 
+     * @param out stream to write report to.
+     * 
+     * @throws IOException in case of I/O errors.
+     * @throws InterruptedException in case of threading errors.
+     * @throws TransformerException in case of XML errors.
+     * @throws RatException in case of general errors.
+     */
+    private void createReport(PrintWriter out) throws IOException, TransformerException, InterruptedException, RatException {
+        final ReportConfiguration configuration = new ReportConfiguration();
+        configuration.setHeaderMatcher(new HeaderMatcherMultiplexer(getLicenseMatchers()));
+        configuration.setApprovedLicenseNames(getApprovedLicenseNames());
+        configuration.setApproveDefaultLicenses(addDefaultLicenseMatchers);
+        
+        if (AddLicenseHeaders.FORCED.equalsIgnoreCase(addLicenseHeaders.getValue())) {
+            configuration.setAddingLicenses(true);
+            configuration.setAddingLicensesForced(true);
+            configuration.setCopyrightMessage(copyrightMessage);
+        } else if (AddLicenseHeaders.TRUE.equalsIgnoreCase(addLicenseHeaders.getValue())) {
+            configuration.setAddingLicenses(true);
+            configuration.setCopyrightMessage(copyrightMessage);
+        } else if (!AddLicenseHeaders.FALSE.equalsIgnoreCase(addLicenseHeaders.getValue())) {
+            throw new BuildException("Invalid value for addLicenseHeaders: " + addLicenseHeaders.getValue());
+        }
+        ResourceCollectionContainer rcElement = new ResourceCollectionContainer(nestedResources);
+        if (format.getValue().equals(Format.XML_KEY)) {
+            org.apache.rat.Report.report(rcElement, out, configuration);
+        } else {
+            InputStream style = null;
+            try {
+                if (format.getValue().equals(Format.PLAIN_KEY)) {
+                    style = Defaults.getPlainStyleSheet();
+                } else if (format.getValue().equals(Format.STYLED_KEY)) {
+                    style = stylesheet.getInputStream();
+                } else {
+                    throw new BuildException("unsupported format '"
+                                             + format.getValue() + "'");
+                }
+                org.apache.rat.Report.report(out, rcElement, style,
+                                             configuration);
+            } finally {
+                FileUtils.close(style);
+            }
+        }
+    }
+
+    /**
+     * Flattens all nested matchers plus the default matchers (if
+     * required) into a single array.
+     */
+    private List<IHeaderMatcher> getLicenseMatchers() {
+        List<IHeaderMatcher> matchers = new ArrayList<IHeaderMatcher>(Defaults.DEFAULT_MATCHERS);
+        if (addDefaultLicenseMatchers) {
+            int nestedSize = licenseMatchers.size();
+            if (nestedSize != 0) {
+                matchers.addAll(licenseMatchers);
+            }
+        } else {
+            matchers = new ArrayList<IHeaderMatcher>();
+        }
+        return matchers;
+    }
+
+    private ILicenseFamily[] getApprovedLicenseNames() {
+        // TODO: add support for adding default licenses
+        ILicenseFamily[] results = null;
+        if (licenseNames.size() > 0) {
+            results = licenseNames.toArray(new ILicenseFamily[0]);
+        }
+        return results;
+    }
+
+    /**
+     * Type for the format attribute.
+     */
+    public static class Format extends EnumeratedAttribute {
+        static final String XML_KEY = "xml";
+        static final String STYLED_KEY = "styled";
+        static final String PLAIN_KEY = "plain";
+
+        static final Format PLAIN = new Format(PLAIN_KEY);
+
+        public Format() { super(); }
+
+        private Format(String s) {
+            this();
+            setValue(s);
+        }
+
+        @Override
+        public String[] getValues() {
+            return new String[] {
+                XML_KEY, STYLED_KEY, PLAIN_KEY
+            };
+        }
+    }
+
+    /**
+     * Type for the addLicenseHeaders attribute.
+     */
+    public static class AddLicenseHeaders extends EnumeratedAttribute {
+        static final String TRUE = "true";
+        static final String FALSE = "false";
+        static final String FORCED = "forced";
+
+        public AddLicenseHeaders() {}
+        public AddLicenseHeaders(String s) {
+            setValue(s);
+        }
+        
+        @Override
+        public String[] getValues() {
+            return new String[] {
+                TRUE, FALSE, FORCED
+            };
+        }
+    }
+}
diff --git a/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/ResourceCollectionContainer.java b/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/ResourceCollectionContainer.java
new file mode 100644
index 0000000..ff882c1
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/ResourceCollectionContainer.java
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.anttasks;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Iterator;
+
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.api.RatException;
+import org.apache.rat.document.impl.DocumentImplUtils;
+import org.apache.rat.report.IReportable;
+import org.apache.rat.report.RatReport;
+import org.apache.tools.ant.types.Resource;
+import org.apache.tools.ant.types.ResourceCollection;
+import org.apache.tools.ant.types.resources.FileResource;
+
+/**
+ * Implementation of IReportable that traverses over a resource
+ * collection internally.
+ */
+class ResourceCollectionContainer implements IReportable {
+    private final ResourceCollection rc;
+
+    ResourceCollectionContainer(ResourceCollection rc) {
+        this.rc = rc;
+    }
+
+    public void run(RatReport report) throws RatException {
+        ResourceDocument document = new ResourceDocument();
+        for (Iterator<?> iter = rc.iterator(); iter.hasNext(); ) {
+            Resource r = (Resource) iter.next();
+            if (!r.isDirectory()) {
+                document.setResource(r);
+                document.getMetaData().clear();
+                report.report(document);
+            }
+        }
+    }
+    private class ResourceDocument implements Document {
+
+        private Resource resource;
+        private final MetaData metaData = new MetaData();
+
+        private void setResource(Resource resource) {
+            this.resource = resource;
+        }
+        
+        public Reader reader() throws IOException {
+            final InputStream in = resource.getInputStream();
+            final Reader result = new InputStreamReader(in);
+            return result;
+        }
+
+        public String getName() {
+            // TODO: reconsider names
+            String result = null;
+            if (resource instanceof FileResource) {
+                final FileResource fileResource = (FileResource) resource;
+                final File file = fileResource.getFile();
+                result = DocumentImplUtils.toName(file);
+            } else {
+                result = resource.getName();
+            }
+            return result;
+        }
+
+        public boolean isComposite() {
+            if (resource instanceof FileResource) {
+                final FileResource fileResource = (FileResource) resource;
+                final File file = fileResource.getFile();
+                return DocumentImplUtils.isZip(file);
+            }
+            return false;
+        }
+        
+        public MetaData getMetaData() {
+            return metaData;
+        }
+        
+        public InputStream inputStream() throws IOException {
+            return resource.getInputStream();
+        }
+    }
+}
diff --git a/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/SubstringLicenseMatcher.java b/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/SubstringLicenseMatcher.java
new file mode 100644
index 0000000..f2469eb
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/SubstringLicenseMatcher.java
@@ -0,0 +1,72 @@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ */ 
+package org.apache.rat.anttasks;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.rat.analysis.license.SimplePatternBasedLicense;
+import org.apache.tools.ant.BuildException;
+
+/**
+ * Adapts {@link SimplePatternBasedLicense SimplePatternBasedLicense}
+ * to Ant's method naming conventions so it becomes easy to write
+ * substring based license matchers inside an Ant build file.
+ * @since Rat Antlib 0.8
+ */
+public class SubstringLicenseMatcher extends SimplePatternBasedLicense {
+    private List<String> patterns = new ArrayList<String>();
+    private boolean validated = false;
+
+    public void addConfiguredPattern(Pattern p) {
+        patterns.add(p.getSubstring());
+    }
+
+    @Override
+    public String[] getPatterns() {
+        validate();
+        return patterns.toArray(new String[0]);
+    }
+
+    private void validate() {
+        if (!validated) {
+            validated  = true;
+            if (patterns.size() == 0) {
+                throw new BuildException("You must specify at least one nested"
+                                         + " pattern.");
+            }
+            if (getLicenseFamilyCategory() == null) {
+                throw new BuildException("The licenseFamilyCategory attribute"
+                                         + " is required.");
+            }
+            if (getLicenseFamilyName() == null) {
+                throw new BuildException("The licenseFamilyName attribute"
+                                         + " is required.");
+            }
+        }
+    }
+
+    /**
+     * A simple wrapper around a substring.
+     */
+    public static class Pattern {
+        private String substring;
+        public void setSubstring(String s) { substring = s; }
+        public String getSubstring() { return substring; }
+    }
+}
diff --git a/trunk/apache-rat-tasks/src/main/resources/org/apache/rat/anttasks/antlib.xml b/trunk/apache-rat-tasks/src/main/resources/org/apache/rat/anttasks/antlib.xml
new file mode 100644
index 0000000..80d65b0
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/main/resources/org/apache/rat/anttasks/antlib.xml
@@ -0,0 +1,79 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one   *
+ or more contributor license agreements.  See the NOTICE file *
+ distributed with this work for additional information        *
+ regarding copyright ownership.  The ASF licenses this file   *
+ to you under the Apache License, Version 2.0 (the            *
+ "License"); you may not use this file except in compliance   *
+ with the License.  You may obtain a copy of the License at   *
+                                                              *
+   http://www.apache.org/licenses/LICENSE-2.0                 *
+                                                              *
+ Unless required by applicable law or agreed to in writing,   *
+ software distributed under the License is distributed on an  *
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ KIND, either express or implied.  See the License for the    *
+ specific language governing permissions and limitations      *
+ under the License.                                           *
+
+-->
+
+<antlib>
+  <taskdef name="report" classname="org.apache.rat.anttasks.Report"/>
+
+  <typedef name="substringMatcher"
+           classname="org.apache.rat.anttasks.SubstringLicenseMatcher"/>
+  <typedef name="fullTextMatcher"
+           classname="org.apache.rat.anttasks.FullTextLicenseMatcher"/>
+
+  <!-- typedef the built-in license matchers -->
+  <typedef name="asl20"
+    classname="org.apache.rat.analysis.license.ApacheSoftwareLicense20"/>
+  <typedef name="generated"
+    classname="org.apache.rat.analysis.generation.GeneratedLicenseNotRequired"/>
+  <typedef name="javadoc"
+    classname="org.apache.rat.analysis.generation.JavaDocLicenseNotRequired"/>
+  <typedef name="oasis"
+    classname="org.apache.rat.analysis.license.OASISLicense"/>
+  <typedef name="w3c"
+    classname="org.apache.rat.analysis.license.W3CLicense"/>
+  <typedef name="w3c-doc"
+    classname="org.apache.rat.analysis.license.W3CDocLicense"/>
+  <typedef name="dojo"
+    classname="org.apache.rat.analysis.license.DojoLicenseHeader"/>
+  <typedef name="gpl1"
+    classname="org.apache.rat.analysis.license.GPL1License"/>
+  <typedef name="gpl2"
+    classname="org.apache.rat.analysis.license.GPL2License"/>
+  <typedef name="gpl3"
+    classname="org.apache.rat.analysis.license.GPL3License"/>
+  <typedef name="mit"
+    classname="org.apache.rat.analysis.license.MITLicense"/>
+
+  <!-- typedef the built-in license families -->
+  <typedef name="w3c-doc-license"
+    classname="org.apache.rat.license.W3CDocumentLicenseFamily"/>
+  <typedef name="w3c-soft-license"
+    classname="org.apache.rat.license.W3CSoftwareLicenseFamily"/>
+  <typedef name="oasis-license"
+    classname="org.apache.rat.license.OASISLicenseFamily"/>
+  <typedef name="apache20-license"
+    classname="org.apache.rat.license.Apache20LicenseFamily"/> 
+  <typedef name="academic-free-21"
+    classname="org.apache.rat.license.AcademicFree21LicenseFamily"/> 
+  <typedef name="modified-bsd"
+    classname="org.apache.rat.license.ModifiedBSDLicenseFamily"/> 
+  <typedef name="approvedLicense"
+           classname="org.apache.rat.license.SimpleLicenseFamily"/> 
+  <typedef name="gpl1-family"
+    classname="org.apache.rat.license.GPL1LicenseFamily"/> 
+  <typedef name="gpl2-family"
+    classname="org.apache.rat.license.GPL2LicenseFamily"/> 
+  <typedef name="gpl3-family"
+    classname="org.apache.rat.license.GPL3LicenseFamily"/> 
+  <typedef name="mit-family"
+    classname="org.apache.rat.license.MITLicenseFamily"/> 
+    
+</antlib>
diff --git a/trunk/apache-rat-tasks/src/site/apt/examples/basic.apt.vm b/trunk/apache-rat-tasks/src/site/apt/examples/basic.apt.vm
new file mode 100644
index 0000000..c9a8546
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/site/apt/examples/basic.apt.vm
@@ -0,0 +1,134 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~
+~~       http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                        ----
+                        Basic Usage Examples
+                        ----
+
+Examples
+
+  These examples assume you have installed the Rat Antlib in a way
+  that provides the Report task in the XML namespace associated with
+  the prefix <<<rat>>>.
+
+* Run Rat in default configuration on all files in directory
+  <<<src>>>.
+
+---
+<rat:report>
+    <fileset dir="src"/>
+</rat:report>
+---
+
+  The report will be written to Ant's logging system.
+
+  This corresponds to the command line
+
++------------------------------------------+
+java -jar apache-rat-${project.version}.jar src
++------------------------------------------+
+
+  except that Ant's default excludes will be applied when looking for
+  documents to check.
+
+* Run Rat on multiple directories
+
+---
+<rat:report>
+    <fileset dir="module1/src/main"/>
+    <fileset dir="module2/src/test"/>
+</rat:report>
+---
+
+* Adding license headers
+
+  The equivalent of
+
++------------------------------------------+
+java -jar apache-rat-${project.version}.jar --addlicense
+  --copyright "Copyright 2008 Foo"
+  /path/to/project
++------------------------------------------+
+
+  is
+
+---
+<rat:report addLicenseHeaders="true"
+            coprightMessage="Copyright 2008 Foo">
+    <fileset dir="/path/to/project"/>
+</rat:report>
+---
+
+* Create a styled HTML report
+
+---
+<rat:report format="styled" reportFile="rat.html">
+    <fileset dir="src"/>
+    <stylesheet>
+        <file file="my/rat-xml-2-html.xslt"/>
+    </stylesheet>
+</rat:report>
+---
+
+* Run Rat on a tarball located on a webserver
+
+---
+<rat:report>
+    <tarfileset>
+        <gzipresource>
+            <url url="http://example.org/some.tar.gz"/>
+        </gzipresource>
+    </tarfileset>
+</rat:report>
+---
+
+* Run Rat but make the Apache License Version 2.0 the only one
+  accepted
+
+---
+<rat:report addDefaultLicenseMatchers="false">
+    <fileset dir="src"/>
+    <rat:asl20/>
+</rat:report>
+---
+
+* Run Rat on all files in <<<src>>> that have been modified today
+
+---
+<tstamp/>
+<rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
+    <restrict>
+        <fileset dir="src"/>
+        <date when="after" datetime="${DSTAMP}" pattern="yyyyMMdd"/>
+    </restrict>
+</rat:report>
+---
+
+* Make Rat only detect your custom license and mark this license
+  approved.
+
+---
+<rat:report addDefaultLicenseMatchers="false">
+    <fileset dir="src"/>
+    <rat:substringMatcher licenseFamilyCategory="YASL1"
+             licenseFamilyName="Yet Another Software License, Version 1.0">
+        <pattern substring="Yet Another Software License, 1.0"/>
+    </rat:substringMatcher>
+    <rat:approvedLicense
+             familyName="Yet Another Software License, Version 1.0"/>
+</rat:report>
+---
diff --git a/trunk/apache-rat-tasks/src/site/apt/examples/custom.apt b/trunk/apache-rat-tasks/src/site/apt/examples/custom.apt
new file mode 100644
index 0000000..acf5e11
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/site/apt/examples/custom.apt
@@ -0,0 +1,156 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~
+~~       http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                ---
+                Custom Types
+                ---
+
+Custom Types
+
+ It is possible to provide license matchers or license families of
+ your own by implementing one of the Rat interfaces and providing the
+ implementation as an Ant type.  This example will show how to use a
+ custom license matcher.
+
+ To be suitable as an Ant type your class must provide a public no-arg
+ constructor (or no constructor at all).  If you want to support
+ configuration of your instance via XML attributes or nested elements
+ your type must provide methods that follow Ant's method naming
+ conventions.  For details see the
+ {{{http://ant.apache.org/manual/develop.html#writingowntask} Writing
+ Your Own Task}} section in Ant's manual.
+
+ For this example let us assume you want to match a license that looks
+ like
+
+------------------------------------------------------------------
+  /**
+   * Yet Another Software License, 1.0
+   *
+   * Lots of text, specifying the users rights, and whatever ...
+   */
+------------------------------------------------------------------
+
+ and to make things a bit more interesting the version number shall be
+ configurable as an attribute on your type.
+
+ An implementation of this matcher could look like
+
+------------------------------------------------------------------
+package org.example;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.api.MetaData.Datum;
+
+/** Just a POJO with no constructor at all */
+public class YASLMatcher implements IHeaderMatcher {
+    private final String MATCH = "Yet Another Software License, ";
+    private final String FAMILY = "YASL";
+    private final String ONE = "1.0";
+    private String matchWithVersion = MATCH + ONE;
+    private String familyWithVersion = FAMILY + ONE;
+
+    /** becomes the version attribute */
+    public void setVersion(String v) {
+       matchWithVersion = MATCH + v;
+       familyWithVersion = FAMILY + v;
+    }
+
+    public void reset() { }
+
+    /** trivial implementation that looks for a fixed string */
+    public boolean match(Document subject, String line)
+           throws RatHeaderAnalysisException {
+        if (line.indexOf(matchWithVersion) >= 0) {
+            // this is what matchers are supposed to do when they find a
+            // match, even though it is not documented very well
+            subject.getMetaData().set(new Datum(MetaData.RAT_URL_LICENSE_FAMILY_CATEGORY,
+                                      familyWithVersion));
+            return true;
+        }
+        return false;
+    }
+}
+------------------------------------------------------------------
+
+ Actually it would be easier to use Rat's
+ <<<SimplePatternBasedLicense>>> implementation or the built-in
+ {{{../types.html#substringMatcher}<<<substringMatcher>>>}}, but this
+ is just an example.
+
+ In order to use your matcher it has to be defined as an Ant type.
+ You do so by either using
+ {{{http://ant.apache.org/manual/Tasks/typedef.html} <<<typedef>>>}} or
+ {{{http://ant.apache.org/manual/Tasks/componentdef.html}
+ <<<componentdef>>>}}.  If you are using Ant 1.8.x you should use
+ <<<componentdef>>>.
+
+ In the most simple case this means
+
+------------------------------------------------------------------
+<componentdef name="yasl"
+              classname="org.example.YASLMatcher"/>
+------------------------------------------------------------------
+
+ Since you will be using classes from Rat's core in both the Report
+ task and your implementation you must ensure they get loaded via the
+ same classloader.  If you are using the <<<-lib>>> command line
+ switch Rat's core will be part of Ant's core classloader and you don't
+ need to reference it in the <<<typedef>>> for <<<yasl>>> at all.
+
+ If you define the Rat Antlib via a <<<taskdef>>> task with a nested
+ <<<classpath>>> then you just use the same <<<classpath>>> when
+ defining your custom matcher as well and set <<<loaderRef>>> to the
+ same name.  I.e.
+
+-------
+<path id="rat-classpath">
+    <pathelement location="YOUR-PATH-TO/apache-rat-${version}.jar"/>
+    <pathelement location="YOUR-PATH-TO/yasl-matcher.jar"/>
+</path>
+<taskdef
+    classpathref="rat-classpath"
+    loaderref="rat-classloader"
+    resource="org/apache/rat/anttasks/antlib.xml">
+</taskdef>
+<componentdef name="yasl"
+    classpathref="rat-classpath"
+    loaderref="rat-classloader"
+    classname="org.example.YASLMatcher"/>
+-------
+
+ With a definition like this you can use your matcher as in
+
+------
+<report>
+    <fileset dir="src"/>
+    <yasl/>
+</report>
+-----
+
+ to detect Version 1.0 or
+
+------
+<report>
+    <fileset dir="src"/>
+    <yasl version="2.0"/>
+</report>
+-----
+
+ for 2.0.
diff --git a/trunk/apache-rat-tasks/src/site/apt/index.apt b/trunk/apache-rat-tasks/src/site/apt/index.apt
new file mode 100644
index 0000000..0d1ce30
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/site/apt/index.apt
@@ -0,0 +1,100 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~
+~~       http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                        -----
+                        Introduction
+                        -----
+
+Apache Rat Ant Task Library
+
+ The Ant Task Library provides a single Ant task and a few supporting
+ Ant types to run Rat, the {{{../index.html}Release Audit Tool}}, from
+ inside {{{http://ant.apache.org/}Apache Ant}}.
+
+ Using Ant's resource abstraction the task can be used to check files
+ on disk as well as tarballs or even URLs directly.
+
+Requirements
+
+ The Rat Ant Task Library requires Apache Ant 1.7.1 or higher (it
+ works well with 1.8.x), Apache Rat core and transitively all
+ dependencies of Apache Rat core.
+
+ In order to use the tasks Java 5 is required as of Rat 0.9 - Rat 0.8
+ and earlier require Java 1.4.
+
+Installation
+
+    There are several ways to use the Antlib:
+
+    * The traditional way:
+
+-------
+<taskdef
+    resource="org/apache/rat/anttasks/antlib.xml">
+    <classpath>
+        <pathelement location="YOUR-PATH-TO/apache-rat-${version}.jar"/>
+    </classpath>
+</taskdef>
+-------
+
+      With this you can use the report task like plain Ant tasks,
+      they'll live in the default namespace.  I.e. if you can run
+      <<<exec>>> without any namespace prefix, you can do so for
+      <<<report>>> as well.
+
+    * Similar, but assigning a namespace URI
+
+-------
+<taskdef
+    uri="antlib:org.apache.rat.anttasks"
+    resource="org/apache/rat/anttasks/antlib.xml">
+    <classpath>
+        <pathelement location="YOUR-PATH-TO/apache-rat-${version}.jar"/>
+    </classpath>
+</taskdef>
+-------
+
+      This puts your task into a separate namespace than Ant's
+      namespace.  You would use the tasks like
+
+-------
+<project
+    xmlns:rat="antlib:org.apache.rat.anttasks"
+    xmlns="antlib:org.apache.tools.ant">
+    ...
+    <rat:report>
+        <fileset dir="src"/>
+    </rat:report>
+-------
+
+      or a variation thereof.
+
+    * Using Ant's autodiscovery.  Place <<<apache-rat-tasks.jar>>> and
+      all dependencies into a directory and use <<<ant -lib
+      DIR-CONTAINING-THE-JAR>>> or copy it into <<<ANT_HOME/lib>>> -
+      and then in your build file, simply declare the namespace on the
+      <<<project>>> tag:
+
+-------
+<project
+    xmlns:rat="antlib:org.apache.rat.anttasks"
+    xmlns="antlib:org.apache.tools.ant">
+-------
+
+      and all tasks of this library will automatically be available in
+      the <<<rat>>> namespace without any <<<taskdef>>>.
diff --git a/trunk/apache-rat-tasks/src/site/apt/report.apt b/trunk/apache-rat-tasks/src/site/apt/report.apt
new file mode 100644
index 0000000..0086a4b
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/site/apt/report.apt
@@ -0,0 +1,136 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~
+~~       http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                -----
+                The Report Task
+                -----
+
+Report Task
+
+  The Report task is the heart of the Apache Rat Ant Task Library, it
+  runs Rat on a given set of resources and generates the report.
+
+  The task can work on any Ant
+  {{{http://ant.apache.org/manual/Types/resources.html}resource or
+  resource collection}} and the usual Ant selectors can be applied to
+  restrict things even further.
+
+  Reports can use Rat's internal XML or plain text format or be styled
+  by a custom XSLT stylesheet.
+
+  It is possible to define custom matchers for licenses not directly supported
+  by Rat via nested elements to the Report task.
+
+Attributes of the Task
+
+*-------------------------*-------------------------------+
+|Name                     |Description                    |
+*-------------------------*-------------------------------+
+| reportFile | Name of the file to write the report to.  If ommitted the report will be sent to Ant's logging system instead.
+*-------------------------*-------------------------------+
+| format | The format to use for the report.
+| | Choices are <<<xml>>> for Rat's XML format,
+| | <<<plain>>> for plain text using Rat's built-in stylesheet,
+| | <<<styled>>> transforms the XML output using the given stylesheet. The stylesheet nested element must be set as well if this attribute is used.
+| | Defaults to <<<plain>>>|
+*-------------------------*-------------------------------+
+| addDefaultLicenseMatchers | Whether to use Rat's built-in set of license matchers in addition to those specified as nested elements.
+| | Boolean, defaults to <<<true>>>.|
+*-------------------------*-------------------------------+
+| addLicenseHeaders | Whether to add license headers to files that don't have one.
+| | Choices are <<<true>>>, <<<false>>> and <<<forced>>> where <<<forced>>> would add a license even if Rat already found one.
+| | Boolean, defaults to <<<false>>>.|
+*-------------------------*-------------------------------+
+| copyrightMessage | If Rat is adding license headers: Sets the optional copyright message. This value is ignored, if no license headers are added.
+*-------------------------*-------------------------------+
+
+Nested Elements
+
+* Resources
+
+  The files to be checked by Rat are specified as nested
+  {{{http://ant.apache.org/manual/Types/resources.html} resource
+  (collection)(s)}}, the most basic one would probably be a
+  {{{http://ant.apache.org/manual/Types/fileset.html} fileset}}.
+
+  For example the following would check all Java files in the
+  <<<src>>> directory.
+
+---
+<rat:report>
+    <fileset dir="src" includes="**/*.java"/>
+</rat:report>
+---
+
+* Stylesheet
+
+  If the <<<format>>> attribute has been set to <<<styled>>> the XSLT
+  stylesheet to apply is specified as a nested resource element.  For
+  example
+
+---
+<rat:report format="styled" reportFile="rat-report.html">
+    ...
+    <stylesheet>
+        <file file="my/rat-xml-2-html.xslt"/>
+    </stylesheet>
+</rat:report>
+---
+
+* License Matchers
+
+  Any defined Ant type that implements the <<<IHeaderMatcher>>>
+  interface can be used as nested element to provide a matcher to Rat.
+  License matchers are the pieces that make Rat identify the license
+  of a document.
+
+  The Ant library already contains
+  {{{./types.html#License_Matchers}types for the built-in license
+  matchers}} but you can define your own classes for
+  {{{./examples/custom.html}custom matchers}}.
+
+  There are two scenarios where you'd use a nested element to define
+  license matchers to Rat.  The more common one would be if you wanted
+  Rat to detect and identify a license that isn't supported out of the
+  box - in this case you will want to write a custom matcher.
+
+  The second case would be if you want to only detect a subset of
+  licenses known to Rat for some reason.  For example if the only
+  license you want to detect was the Apache License 2.0 you'd first
+  disable the built-in matchers by setting
+  <<<addDefaultLicenseMatchers>>> to false and then explicitly add the
+  built-in <<<asl20>>> matcher
+
+---
+<rat:report addDefaultLicenseMatchers="false">
+    <rat:asl20/>
+</rat:report>
+---
+
+* Approved License Families
+
+  Any defined Ant type that implements the <<<ILicenseFamily>>>
+  interface can be used as nested element to provide a license family
+  as an approved license to Rat.
+
+  The Ant library already contains
+  {{{./types.html#License_Matchers}types for the built-in license families}}
+  but you can define your own classes for {{{./examples/custom.html}custom
+  families}}.  In most cases
+  {{{./types.html#approvedLicense}<<<approvedLicense>>>}} should be
+  sufficient, though.
+
diff --git a/trunk/apache-rat-tasks/src/site/apt/types.apt b/trunk/apache-rat-tasks/src/site/apt/types.apt
new file mode 100644
index 0000000..54d0bfe
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/site/apt/types.apt
@@ -0,0 +1,269 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~
+~~       http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                -----
+                Built-In Types
+                -----
+
+Built-In Types
+
+ The Rat Antlib defines a few Ant types that can be used as nested
+ elements to the {{{./report.html} Report Task}} as license matchers or
+ license families.
+
+ In order to stay compatible with Ant 1.7.1 these types are defined
+ via {{{http://ant.apache.org/manual/Tasks/typedef.html}
+ <<<typedef>>>}} rather than
+ {{{http://ant.apache.org/manual/Tasks/componentdef.html}
+ <<<componentdef>>>}} which means they can be defined outside of the
+ Report task as well - but they will be completely useless there.
+
+{License Matchers}
+
+ The following types correspond to the built-in license matchers of Rat:
+
+*-------*---------+-------------+
+| Typename | Detected License | Corresponding class |
+*-------*---------+-------------+
+| asl20 | Apache License 2.0 | <<<org.apache.rat.analysis.license.ApacheSoftwareLicense20>>>
+*-------*---------+-------------+
+| dojo | {{{http://dojotoolkit.org/community/licensing.shtml}License of the Dojo Toolkit}} | <<<org.apache.rat.analysis.license.DojoLicenseHeader>>>
+| <since Rat Antlib 0.8> | |
+*-------*---------+-------------+
+| generated | Generated documents that don't need a license | <<<org.apache.rat.analysis.generation.GeneratedLicenseNotRequired>>>
+*-------*---------+-------------+
+| gpl1 | {{{http://www.gnu.org/licenses/old-licenses/gpl-1.0.html}GNU General Public License, version 1}} | <<<org.apache.rat.analysis.license.GPL1License>>>
+| <since Rat Antlib 0.9> | |
+*-------*---------+-------------+
+| gpl2 | {{{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html}GNU General Public License, version 2}} | <<<org.apache.rat.analysis.license.GPL2License>>>
+| <since Rat Antlib 0.9> | |
+*-------*---------+-------------+
+| gpl3 | {{{http://www.gnu.org/licenses/gpl.html}GNU General Public License, version 3}} | <<<org.apache.rat.analysis.license.GPL3License>>>
+| <since Rat Antlib 0.9> | |
+*-------*---------+-------------+
+| javadoc | Javadocs that don't need a license | <<<org.apache.rat.analysis.generation.JavaDocLicenseNotRequired>>>
+*-------*---------+-------------+
+| mit | {{{http://www.opensource.org/licenses/MIT}The MIT License}} | <<<org.apache.rat.analysis.license.MITLicense>>>
+| <since Rat Antlib 0.9> | |
+*-------*---------+-------------+
+| oasis | OASIS copyright claim plus derivative work clause | <<<org.apache.rat.analysis.license.OASISLicense>>>
+| <since Rat Antlib 0.8> | |
+*-------*---------+-------------+
+| w3c | {{{http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231}W3C Software License}} | <<<org.apache.rat.analysis.license.W3CLicense>>>
+*-------*---------+-------------+
+| w3c-doc | {{{http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231}W3C Document License}} | <<<org.apache.rat.analysis.license.W3CDocLicense>>>
+*-------*---------+-------------+
+
+ While these types may technically provide attributes or nested
+ elements you should use them as sole tags.
+
+* {<<<substringMatcher>>>}
+
+ <since Rat Antlib 0.8>
+
+ For the simple case where a license can be detected by searching for
+ a given string in a single line of the source code - in fact this is what
+ many built-in implementations do - you can use the
+ <<<substringMatcher>>> type.
+
+**  Attributes of the Type
+
+*-------------------------*-------------------------------+
+|Name                     |Description                    |
+*-------------------------*-------------------------------+
+| licenseFamilyCategory | Short name of the detected license.  Should be at most five characters long if you want to keep the layout of the plain text report.
+| | This will be printed next to to the checked file inside the plain text report and creates <<<header-type>>> elements inside the XML report.
+| | <<REQUIRED>>
+*-------------------------*-------------------------------+
+| licenseFamilyName | Long name of the detected license.  The value is checked against the list of approved licenses.
+| | This will not appear inside the plain text report and creates <<<license-family>>> elements inside the XML report.
+| | <<REQUIRED>>
+*-------------------------*-------------------------------+
+| notes | Additional notes you want to provide.
+| | This will not appear inside the plain text report and creates <<<header-sample>>> elements inside the XML report.
+*-------------------------*-------------------------------+
+
+**  Nested Elements Supported by the Type
+
+ The substring(s) to look for are specified as nested <<<pattern>>>
+ elements with a substring attribute.  You can specifiy multiple
+ <<<pattern>>> elements and the <<<substringMatcher>>> will claim the
+ license matches if at least one substring can be found.
+
+ At least one pattern is required.
+
+** Example
+
+ Taking the example of {{{./examples/custom.html}the custom types page}}
+ in order to detect
+
+------------------------------------------------------------------
+  /**
+   * Yet Another Software License, 1.0
+   *
+   * Lots of text, specifying the users rights, and whatever ...
+   */
+------------------------------------------------------------------
+
+  you could use
+
+------------------------------------------------------------------
+<rat:report>
+    <fileset dir="src"/>
+    <rat:substringMatcher licenseFamilyCategory="YASL1"
+             licenseFamilyName="Yet Another Software License, Version 1.0">
+        <pattern substring="Yet Another Software License, 1.0"/>
+    </rat:substringMatcher>
+</rat:report>
+------------------------------------------------------------------
+
+* {<<<fullTextMatcher>>>}
+
+ <since Rat Antlib 0.9>
+
+ This matcher searches for the full text given, ignoring everything
+ that is not a character or a number (and for US-ASCII characters it
+ is case-insensitive).  This allows licenses to be detected that can't
+ be identified by a single line, even if the formatting has been
+ changed.
+
+**  Attributes of the Type
+
+*-------------------------*-------------------------------+
+|Name                     |Description                    |
+*-------------------------*-------------------------------+
+| licenseFamilyCategory | Short name of the detected license.  Should be at most five characters long if you want to keep the layout of the plain text report.
+| | This will be printed next to to the checked file inside the plain text report and creates <<<header-type>>> elements inside the XML report.
+| | <<REQUIRED>>
+*-------------------------*-------------------------------+
+| licenseFamilyName | Long name of the detected license.  The value is checked against the list of approved licenses.
+| | This will not appear inside the plain text report and creates <<<license-family>>> elements inside the XML report.
+| | <<REQUIRED>>
+*-------------------------*-------------------------------+
+| notes | Additional notes you want to provide.
+| | This will not appear inside the plain text report and creates <<<header-sample>>> elements inside the XML report.
+*-------------------------*-------------------------------+
+| fullText | The license text to look for.
+| | Everything that is not a character or a digit will be ignored.
+| | <<REQUIRED>> unless the text is specified as nested content.
+*-------------------------*-------------------------------+
+
+ You can also nest the license text directly as content into the type.
+
+** Example
+
+ Taking the example of {{{./examples/custom.html}the custom types page}}
+ in order to detect
+
+------------------------------------------------------------------
+  /**
+   * Yet Another Software License, 1.0
+   *
+   * Lots of text, specifying the users rights, and whatever ...
+   */
+------------------------------------------------------------------
+
+  you could use
+
+------------------------------------------------------------------
+<rat:report>
+    <fileset dir="src"/>
+    <rat:fullTextMatcher licenseFamilyCategory="YASL1"
+             licenseFamilyName="Yet Another Software License, Version 1.0"
+             fullText="Yet Another Software License, 1.0 Lots of text, specifying the users rights, and whatever">
+    </rat:fullTextMatcher>
+</rat:report>
+------------------------------------------------------------------
+
+  or
+
+------------------------------------------------------------------
+<rat:report>
+    <fileset dir="src"/>
+    <rat:fullTextMatcher licenseFamilyCategory="YASL1"
+             licenseFamilyName="Yet Another Software License, Version 1.0">
+Yet Another Software License, 1.0
+
+Lots of text, specifying the users rights, and whatever
+    </rat:fullTextMatcher>
+</rat:report>
+------------------------------------------------------------------
+
+{License Families}
+
+ The following types correspond to the built-in license families of Rat:
+
+*-------*---------+-------------+
+| Typename | License Family | Corresponding class |
+*-------*---------+-------------+
+*-------*---------+-------------+
+| academic-free-21 | Academic Free License 2.1 | <<<org.apache.rat.license.AcademicFree21LicenseFamily>>>
+| <since Rat Antlib 0.8> | |
+*-------*---------+-------------+
+| apache20-license | Apache License 2.0 | <<<org.apache.rat.license.Apache20LicenseFamily>>>
+*-------*---------+-------------+
+| gpl1-family | GNU General Public License, version 1 | <<<org.apache.rat.license.GPL1LicenseFamily>>>
+| <since Rat Antlib 0.9> | |
+*-------*---------+-------------+
+| gpl2-family | GNU General Public License, version 2 | <<<org.apache.rat.license.GPL2LicenseFamily>>>
+| <since Rat Antlib 0.9> | |
+*-------*---------+-------------+
+| gpl3-family | GNU General Public License, version 3 | <<<org.apache.rat.license.GPL3LicenseFamily>>>
+| <since Rat Antlib 0.9> | |
+*-------*---------+-------------+
+| mit-family | The MIT License | <<<org.apache.rat.license.MITLicenseFamily>>>
+| <since Rat Antlib 0.9> | |
+*-------*---------+-------------+
+| modified-bsd | Modified BSD License | <<<org.apache.rat.license.ModifiedBSDLicenseFamily>>>
+| <since Rat Antlib 0.8> | |
+*-------*---------+-------------+
+| oasis-license | OASIS copyright claim plus derivative work clause | <<<org.apache.rat.license.OASISLicenseFamily>>>
+| <since Rat Antlib 0.8> | |
+*-------*---------+-------------+
+| w3c-doc-license | {{{http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231}W3C Document License}} | <<<org.apache.rat.license.W3CDocumentLicenseFamily>>>
+*-------*---------+-------------+
+| w3c-soft-license | {{{http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231}W3C Software License}} | <<<org.apache.rat.license.W3CSoftwareLicenseFamily>>>
+*-------*---------+-------------+
+
+ While these types may technically provide attributes or nested
+ elements you should use them as sole tags.
+
+* {<<<approvedLicense>>>}
+
+ <since Rat Antlib 0.8>
+
+ This wrapper type makes it easy to specify a license name for new
+ approved licenses.  The type has a single attribute <<<familyName>>>
+ that must match the license family name returned by the license
+ matcher to make a license approved.
+
+** Example
+
+ To make the YASL license of the {{substringMatcher}} Example approved
+ you'd use
+
+------------------------------------------------------------------
+<rat:report>
+    <fileset dir="src"/>
+    <rat:substringMatcher licenseFamilyCategory="YASL1"
+             licenseFamilyName="Yet Another Software License, Version 1.0">
+        <pattern substring="Yet Another Software License, 1.0"/>
+    </rat:substringMatcher>
+    <rat:approvedLicense
+             familyName="Yet Another Software License, Version 1.0"/>
+</rat:report>
+------------------------------------------------------------------
diff --git a/trunk/apache-rat-tasks/src/site/resources/css/site.css b/trunk/apache-rat-tasks/src/site/resources/css/site.css
new file mode 100644
index 0000000..3683f87
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/site/resources/css/site.css
@@ -0,0 +1,27 @@
+/*
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.    
+*/
+footer {
+    font-family: "Mate SC", "Lucida Console", Monaco, monospace;
+    font-size: 9pt;
+    padding: 5px 10px;
+    text-align: justify;
+    border: thin solid #D0D0D0;
+    background-color: #F8F8F8;
+    color: #404040;
+}
\ No newline at end of file
diff --git a/trunk/apache-rat-tasks/src/site/site.xml b/trunk/apache-rat-tasks/src/site/site.xml
new file mode 100644
index 0000000..1d90f0b
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/site/site.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/DECORATION/1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
+         name="Apache Rat&trade; Task Library for Apache Ant">
+  <body>  
+    <head>
+        <link 
+            href='http://fonts.googleapis.com/css?family=Mate+SC' 
+            rel='stylesheet' 
+            type='text/css'/>
+    </head>
+    
+    <menu ref="parent"/>
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+      <item name="Report Task" href="report.html"/>
+      <item name="Types" href="types.html"/>
+    </menu>
+    <menu name="Examples">
+      <item name="Basic Usage" href="examples/basic.html"/>
+      <item name="Custom Types" href="examples/custom.html"/>
+    </menu>
+    <menu ref="reports"/>
+  </body>
+</project>
diff --git a/trunk/apache-rat-tasks/src/test/java/org/apache/rat/anttasks/AbstractRatAntTaskTest.java b/trunk/apache-rat-tasks/src/test/java/org/apache/rat/anttasks/AbstractRatAntTaskTest.java
new file mode 100644
index 0000000..d40b271
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/test/java/org/apache/rat/anttasks/AbstractRatAntTaskTest.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+package org.apache.rat.anttasks;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.tools.ant.BuildFileTest;
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.regex.Pattern;
+
+public abstract class AbstractRatAntTaskTest extends BuildFileTest {
+    private static final File tempDir = new File("target/anttasks");
+
+    protected abstract File getAntFile();
+
+    protected File getTempDir() {
+        return tempDir;
+    }
+
+    @Override
+    public void setUp() {
+        configureProject(getAntFile().getPath());
+    }
+
+    protected void assertLogDoesNotMatch(String pPattern) {
+        final String log = super.getLog();
+        Assert.assertFalse("Log matches the pattern: " + pPattern + ", got " + log,
+                isMatching(pPattern, log));
+    }
+
+    protected void assertLogMatches(String pPattern) {
+        final String log = super.getLog();
+        Assert.assertTrue("Log doesn't match string: " + pPattern + ", got " + log,
+                isMatching(pPattern, log));
+    }
+
+    private boolean isMatching(final String pPattern, final String pValue) {
+        return Pattern.compile(pPattern).matcher(pValue).find();
+    }
+
+    private String load(File pFile) throws IOException {
+        FileReader fr = new FileReader(pFile);
+        try {
+            final StringBuilder sb = new StringBuilder();
+            char[] buffer = new char[1024];
+            for (;;) {
+                int res = fr.read(buffer);
+                if (res == -1) {
+                    fr.close();
+                    fr = null;
+                    return sb.toString();
+                }
+                if (res > 0) {
+                    sb.append(buffer, 0, res);
+                }
+            }
+        } finally {
+            IOUtils.closeQuietly(fr);
+        }
+    }
+
+    protected void assertFileMatches(File pFile, String pPattern)
+            throws IOException {
+        final String content = load(pFile);
+        Assert.assertTrue("File " + pFile
+                + " doesn't match the pattern " + pPattern
+                + ", got " + content,
+                isMatching(pPattern, content));
+    }
+}
diff --git a/trunk/apache-rat-tasks/src/test/java/org/apache/rat/anttasks/ReportTest.java b/trunk/apache-rat-tasks/src/test/java/org/apache/rat/anttasks/ReportTest.java
new file mode 100644
index 0000000..fb9518b
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/test/java/org/apache/rat/anttasks/ReportTest.java
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.rat.anttasks;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.tools.ant.BuildException;
+import org.junit.Assert;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+public class ReportTest extends AbstractRatAntTaskTest {
+    private static final File antFile = new File("src/test/resources/antunit/report-junit.xml").getAbsoluteFile();
+
+    @Override
+    protected File getAntFile() {
+        return antFile;
+    }
+
+    public void testWithReportSentToAnt() throws Exception {
+        executeTarget("testWithReportSentToAnt");
+        assertLogMatches("AL +\\Q" + getAntFileName() + "\\E");
+    }
+
+    public void testWithReportSentToFile() throws Exception {
+        final File reportFile = new File(getTempDir(), "selftest.report");
+        if (!getTempDir().mkdirs() && !getTempDir().isDirectory()) {
+            throw new IOException("Could not create temporary directory " + getTempDir());
+        }
+        final String alLine = "AL +\\Q" + getAntFileName() + "\\E";
+        if (reportFile.isFile() && !reportFile.delete()) {
+            throw new IOException("Unable to remove report file " + reportFile);
+        }
+        executeTarget("testWithReportSentToFile");
+        assertLogDoesNotMatch(alLine);
+        Assert.assertTrue("Expected report file " + reportFile, reportFile.isFile());
+        assertFileMatches(reportFile, alLine);
+    }
+
+    public void testWithALUnknown() throws Exception {
+        executeTarget("testWithALUnknown");
+        assertLogDoesNotMatch("AL +\\Q" + getAntFileName() + "\\E");
+        assertLogMatches("\\!\\?\\?\\?\\?\\? +\\Q" + getAntFileName() + "\\E");
+    }
+
+    public void testCustomMatcher() throws Exception {
+        executeTarget("testCustomMatcher");
+        assertLogDoesNotMatch("AL +\\Q" + getAntFileName() + "\\E");
+        assertLogMatches("EXMPL +\\Q" + getAntFileName() + "\\E");
+    }
+
+    public void testNoResources() throws Exception {
+        try {
+            executeTarget("testNoResources");
+            fail("Expected Exception");
+        } catch (BuildException e) {
+            final String expect = "You must specify at least one file";
+            assertTrue("Expected " + expect + ", got " + e.getMessage(),
+                    e.getMessage().contains(expect));
+        }
+    }
+
+    public void testNoLicenseMatchers() throws Exception {
+        try {
+            executeTarget("testNoLicenseMatchers");
+            fail("Expected Exception");
+        } catch (BuildException e) {
+            final String expect = "at least one license";
+            assertTrue("Expected " + expect + ", got " + e.getMessage(),
+                    e.getMessage().contains(expect));
+        }
+    }
+
+    private String getAntFileName() {
+        return getAntFile().getPath().replace('\\', '/');
+    }
+
+    private String getFirstLine(File pFile) throws IOException {
+        FileInputStream fis = null;
+        InputStreamReader reader = null;
+        BufferedReader breader = null;
+        try {
+            fis = new FileInputStream(pFile);
+            reader = new InputStreamReader(fis, "UTF8");
+            breader = new BufferedReader(reader);
+            final String result = breader.readLine();
+            breader.close();
+            return result;
+        } finally {
+            IOUtils.closeQuietly(fis);
+            IOUtils.closeQuietly(reader);
+            IOUtils.closeQuietly(breader);
+        }
+    }
+
+    public void testAddLicenseHeaders() throws Exception {
+        executeTarget("testAddLicenseHeaders");
+
+        final File origFile = new File("target/anttasks/it-sources/index.apt");
+        final String origFirstLine = getFirstLine(origFile);
+        assertTrue(origFirstLine.contains("--"));
+        assertFalse(origFirstLine.contains("~~"));
+        final File modifiedFile = new File("target/anttasks/it-sources/index.apt.new");
+        final String modifiedFirstLine = getFirstLine(modifiedFile);
+        assertFalse(modifiedFirstLine.contains("--"));
+        assertTrue(modifiedFirstLine.contains("~~"));
+    }
+}
diff --git a/trunk/apache-rat-tasks/src/test/java/org/example/LicenseFamily.java b/trunk/apache-rat-tasks/src/test/java/org/example/LicenseFamily.java
new file mode 100644
index 0000000..ef8527d
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/test/java/org/example/LicenseFamily.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.example;
+
+import org.apache.rat.license.ILicenseFamily;
+
+
+public class LicenseFamily implements ILicenseFamily {
+    public String getFamilyName() {
+        return "Example License";
+    }
+}
diff --git a/trunk/apache-rat-tasks/src/test/java/org/example/Matcher.java b/trunk/apache-rat-tasks/src/test/java/org/example/Matcher.java
new file mode 100644
index 0000000..bead7a7
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/test/java/org/example/Matcher.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.example;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.analysis.license.BaseLicense;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+
+
+public class Matcher extends BaseLicense implements IHeaderMatcher {
+    public Matcher() {
+        super(new MetaData.Datum(MetaData.RAT_URL_LICENSE_FAMILY_CATEGORY, "EXMPL"),
+                new MetaData.Datum(MetaData.RAT_URL_LICENSE_FAMILY_NAME, "Example License"), "");
+    }
+    public void reset() {}
+    
+    public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+        reportOnLicense(subject);
+        return true;
+    }
+}
diff --git a/trunk/apache-rat-tasks/src/test/resources/antunit/build.xml b/trunk/apache-rat-tasks/src/test/resources/antunit/build.xml
new file mode 100644
index 0000000..a11ccbc
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/test/resources/antunit/build.xml
@@ -0,0 +1,45 @@
+<?xml version='1.0'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project name="antunit" default="all"
+     xmlns:au="antlib:org.apache.ant.antunit"
+    xmlns:rat="antlib:org.apache.rat.anttasks">
+  <taskdef uri="antlib:org.apache.ant.antunit"
+      resource="org/apache/ant/antunit/antlib.xml"
+     classpath="${test.classpath}"/>
+
+  <taskdef uri="antlib:org.apache.rat.anttasks"
+      resource="org/apache/rat/anttasks/antlib.xml"
+     classpath="${test.classpath}"/>
+
+  <condition property="tests.running">
+    <not><equals arg1="${tests.skipped}" arg2="true"/></not>
+  </condition>
+
+  <target name="all" if="tests.running">
+    <echo>Invoking antunit on ${antunit.file}</echo>
+    <mkdir dir="${temp.dir}"/>
+    <au:antunit failonerror="true">
+      <file file="${antunit.file}"/>
+      <au:plainlistener sendLogTo="file" toDir="${temp.dir}" logLevel="info"/>
+      <propertyset>
+        <propertyref name="test.classpath"/>
+        <propertyref name="temp.dir"/>
+      </propertyset>
+    </au:antunit>
+  </target>
+</project>
diff --git a/trunk/apache-rat-tasks/src/test/resources/antunit/index.apt b/trunk/apache-rat-tasks/src/test/resources/antunit/index.apt
new file mode 100644
index 0000000..d4236b7
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/test/resources/antunit/index.apt
@@ -0,0 +1,8 @@
+    --------------
+    Some text file
+    --------------
+
+Some text file
+
+  This is a text file, which intentionally has no Apache License Header.
+  The Rat plugin should detect it.
diff --git a/trunk/apache-rat-tasks/src/test/resources/antunit/report-bad-configurations.xml b/trunk/apache-rat-tasks/src/test/resources/antunit/report-bad-configurations.xml
new file mode 100644
index 0000000..73f4e1c
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/test/resources/antunit/report-bad-configurations.xml
@@ -0,0 +1,162 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one   *
+ or more contributor license agreements.  See the NOTICE file *
+ distributed with this work for additional information        *
+ regarding copyright ownership.  The ASF licenses this file   *
+ to you under the Apache License, Version 2.0 (the            *
+ "License"); you may not use this file except in compliance   *
+ with the License.  You may obtain a copy of the License at   *
+                                                              *
+   http://www.apache.org/licenses/LICENSE-2.0                 *
+                                                              *
+ Unless required by applicable law or agreed to in writing,   *
+ software distributed under the License is distributed on an  *
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ KIND, either express or implied.  See the License for the    *
+ specific language governing permissions and limitations      *
+ under the License.                                           *
+
+-->
+
+<project default="allTests"
+    name='report-bad-configurations'
+    xmlns:au="antlib:org.apache.ant.antunit"
+    xmlns:rat="antlib:org.apache.rat.anttasks">
+    
+  <taskdef uri="antlib:org.apache.ant.antunit"
+      resource="org/apache/ant/antunit/antlib.xml"
+      classpath="${test.classpath}" />
+
+  <taskdef uri="antlib:org.apache.rat.anttasks" resource="org/apache/rat/anttasks/antlib.xml">
+    <classpath>
+      <pathelement location="${jar.name}" />
+      <pathelement path='${test.classpath}' />
+    </classpath>
+  </taskdef>
+
+  <target name="allTests">
+    <au:antunit xmlns:au="antlib:org.apache.ant.antunit"
+                failonerror="false" errorproperty="antunit.failed">
+      <file file="${ant.file}"/>
+      <au:plainlistener />
+    </au:antunit>
+  </target>
+
+  <target name="testNoResources">
+    <au:expectfailure expectedMessage="at least one file">
+      <rat:report/>
+    </au:expectfailure>
+  </target>
+
+  <target name="testNoLicenseMatchers">
+    <au:expectfailure expectedMessage="at least one license">
+      <rat:report addDefaultLicenseMatchers="false">
+        <file file="${ant.file}"/>
+      </rat:report>
+    </au:expectfailure>
+  </target>
+
+  <target name="testNoStylesheet">
+    <au:expectfailure expectedMessage="must specify a stylesheet">
+      <rat:report format="styled">
+        <file file="${ant.file}"/>
+      </rat:report>
+    </au:expectfailure>
+  </target>
+
+  <target name="testUnusedStylesheet">
+    <rat:report>
+      <stylesheet>
+        <file file="${ant.file}"/>
+      </stylesheet>
+      <file file="${ant.file}"/>
+    </rat:report>
+    <au:assertLogContains text="Ignoring stylesheet"/>
+  </target>
+
+  <target name="testSubstringMatcherRequiresFamilyName">
+    <au:expectfailure
+        expectedMessage="The licenseFamilyName attribute is required.">
+      <rat:report>
+        <file file="${ant.file}"/>
+        <rat:substringMatcher
+            licenseFamilyCategory="YASL1"
+            notes="Interesting License">
+          <pattern substring="exmpl"/>
+        </rat:substringMatcher>
+      </rat:report>
+    </au:expectfailure>
+  </target>
+
+  <target name="testSubstringMatcherRequiresFamilyCategory">
+    <au:expectfailure
+        expectedMessage="The licenseFamilyCategory attribute is required.">
+      <rat:report>
+        <file file="${ant.file}"/>
+        <rat:substringMatcher
+            licenseFamilyName="Yet Another Software License (YASL) 1.0"
+            notes="Interesting License">
+          <pattern substring="exmpl"/>
+        </rat:substringMatcher>
+      </rat:report>
+    </au:expectfailure>
+  </target>
+
+  <target name="testSubstringMatcherRequiresPattern">
+    <au:expectfailure
+        expectedMessage="You must specify at least one nested pattern.">
+      <rat:report>
+        <file file="${ant.file}"/>
+        <rat:substringMatcher
+            licenseFamilyCategory="YASL1"
+            licenseFamilyName="Yet Another Software License (YASL) 1.0"
+            notes="Interesting License">
+        </rat:substringMatcher>
+      </rat:report>
+    </au:expectfailure>
+  </target>
+
+  <target name="testFullTextMatcherRequiresFamilyName">
+    <au:expectfailure
+        expectedMessage="The licenseFamilyName attribute is required.">
+      <rat:report>
+        <file file="${ant.file}"/>
+        <rat:fullTextMatcher
+            licenseFamilyCategory="YASL1"
+            notes="Interesting License"
+            fullText="exmpl">
+        </rat:fullTextMatcher>
+      </rat:report>
+    </au:expectfailure>
+  </target>
+
+  <target name="testFullTextMatcherRequiresFamilyCategory">
+    <au:expectfailure
+        expectedMessage="The licenseFamilyCategory attribute is required.">
+      <rat:report>
+        <file file="${ant.file}"/>
+        <rat:fullTextMatcher
+            licenseFamilyName="Yet Another Software License (YASL) 1.0"
+            notes="Interesting License"
+            fullText="exmpl">
+        </rat:fullTextMatcher>
+      </rat:report>
+    </au:expectfailure>
+  </target>
+
+  <target name="testFullTextMatcherRequiresText">
+    <au:expectfailure
+        expectedMessage="You must specify the text to match.">
+      <rat:report>
+        <file file="${ant.file}"/>
+        <rat:fullTextMatcher
+            licenseFamilyCategory="YASL1"
+            licenseFamilyName="Yet Another Software License (YASL) 1.0"
+            notes="Interesting License">
+        </rat:fullTextMatcher>
+      </rat:report>
+    </au:expectfailure>
+  </target>
+</project>
diff --git a/trunk/apache-rat-tasks/src/test/resources/antunit/report-junit.xml b/trunk/apache-rat-tasks/src/test/resources/antunit/report-junit.xml
new file mode 100644
index 0000000..c43ebd0
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/test/resources/antunit/report-junit.xml
@@ -0,0 +1,96 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one   *
+ or more contributor license agreements.  See the NOTICE file *
+ distributed with this work for additional information        *
+ regarding copyright ownership.  The ASF licenses this file   *
+ to you under the Apache License, Version 2.0 (the            *
+ "License"); you may not use this file except in compliance   *
+ with the License.  You may obtain a copy of the License at   *
+                                                              *
+   http://www.apache.org/licenses/LICENSE-2.0                 *
+                                                              *
+ Unless required by applicable law or agreed to in writing,   *
+ software distributed under the License is distributed on an  *
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ KIND, either express or implied.  See the License for the    *
+ specific language governing permissions and limitations      *
+ under the License.                                           *
+
+-->
+
+<project default="all"
+    xmlns:au="antlib:org.apache.ant.antunit"
+    xmlns:rat="antlib:org.apache.rat.anttasks">
+  <taskdef uri="antlib:org.apache.ant.antunit"
+      resource="org/apache/ant/antunit/antlib.xml"
+      classpath="${test.classpath}"/>
+
+  <taskdef uri="antlib:org.apache.rat.anttasks"
+      resource="org/apache/rat/anttasks/antlib.xml"
+      classpath="${test.classpath}"/>
+
+  <property name="output.dir" location="target/anttasks"/>
+  <pathconvert dirsep="/" property="file.name">
+    <path>
+      <pathelement location="${ant.file}"/>
+    </path>
+  </pathconvert>
+  <property name="expectedOutput" value="AL    ${file.name}"/>
+
+  <target name="testWithReportSentToAnt">
+    <rat:report>
+      <file file="${ant.file}"/>
+    </rat:report>
+  </target>
+
+  <target name="all"/>
+
+  <target name="testWithReportSentToFile">
+    <property name="report.file" location="${output.dir}/selftest.report"/>
+    <rat:report reportFile="${report.file}">
+      <file file="${ant.file}"/>
+    </rat:report>
+  </target>
+
+  <target name="testWithALUnknown">
+    <rat:report addDefaultLicenseMatchers="false">
+      <file file="${ant.file}"/>
+      <rat:w3c/>
+    </rat:report>
+  </target>
+
+  <target name="testCustomMatcher">
+    <mkdir dir="${output.dir}/dest"/>
+    <mkdir dir="${output.dir}/src/org/example"/>
+    <typedef name="exmpl" classname="org.example.Matcher"
+        classpath="${test.classpath}"/>
+    <typedef name="exmpl-license" classname="org.example.LicenseFamily"
+        classpath="${test.classpath}"/>
+    <rat:report>
+      <file file="${ant.file}"/>
+      <exmpl/>
+      <exmpl-license/>
+    </rat:report>
+  </target>
+
+  <target name="testNoResources">
+    <rat:report/>
+  </target>
+
+  <target name="testNoLicenseMatchers">
+    <rat:report addDefaultLicenseMatchers="false">
+      <file file="${ant.file}"/>
+    </rat:report>
+  </target>
+
+  <target name="testAddLicenseHeaders">
+    <delete dir="${output.dir}/it-sources"/>
+    <mkdir dir="${output.dir}/it-sources"/>
+    <copy file="src/test/resources/antunit/index.apt" tofile="${output.dir}/it-sources/index.apt"/>
+    <rat:report addLicenseHeaders="true">
+       <file file="${output.dir}/it-sources/index.apt"/>
+    </rat:report>
+  </target>
+</project>
diff --git a/trunk/apache-rat-tasks/src/test/resources/antunit/report-normal-operation.xml b/trunk/apache-rat-tasks/src/test/resources/antunit/report-normal-operation.xml
new file mode 100644
index 0000000..94751d5
--- /dev/null
+++ b/trunk/apache-rat-tasks/src/test/resources/antunit/report-normal-operation.xml
@@ -0,0 +1,342 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one   *
+ or more contributor license agreements.  See the NOTICE file *
+ distributed with this work for additional information        *
+ regarding copyright ownership.  The ASF licenses this file   *
+ to you under the Apache License, Version 2.0 (the            *
+ "License"); you may not use this file except in compliance   *
+ with the License.  You may obtain a copy of the License at   *
+                                                              *
+   http://www.apache.org/licenses/LICENSE-2.0                 *
+                                                              *
+ Unless required by applicable law or agreed to in writing,   *
+ software distributed under the License is distributed on an  *
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ KIND, either express or implied.  See the License for the    *
+ specific language governing permissions and limitations      *
+ under the License.                                           *
+
+-->
+
+<project name='report-normal-operation'
+    default="allTests"
+    xmlns:au="antlib:org.apache.ant.antunit"
+    xmlns:rat="antlib:org.apache.rat.anttasks">
+
+  <property name="output.dir" location="../../../../target/testoutput"/>
+  <mkdir dir="${output.dir}/dest"/>
+  <path id="all-classes-needed-for-tests">
+    <pathelement location="${jar.name}" />
+    <pathelement path="${test.classpath}" />
+    <pathelement location="${output.dir}/dest" />
+  </path>
+
+  <taskdef uri="antlib:org.apache.ant.antunit" 
+           resource="org/apache/ant/antunit/antlib.xml" 
+           classpathref="all-classes-needed-for-tests"
+           loaderref="testloader"/>
+
+  <taskdef uri="antlib:org.apache.rat.anttasks"
+           resource="org/apache/rat/anttasks/antlib.xml"
+           classpathref="all-classes-needed-for-tests"
+           loaderref="testloader"/>
+
+  <target name="setUp">
+    <pathconvert dirsep="/" property="file.name">
+      <path>
+        <pathelement location="${ant.file}"/>
+      </path>
+    </pathconvert>
+    <property name="expectedOutput" value=" AL    ${file.name}"/>
+    <property name="expectedOutputXML" value="&lt;resource name='${file.name}'"/>
+    <property name="expectedOutputXML2" value="&lt;header-type name='AL   '"/>
+  </target>
+
+  <target name="allTests">
+    <au:antunit xmlns:au="antlib:org.apache.ant.antunit"
+                failonerror="false" errorproperty="antunit.failed">
+      <file file="${ant.file}"/>
+      <au:plainlistener/>
+      <propertyset>
+        <propertyref name="test.classpath"/>
+        <propertyref name="jar.name"/>
+      </propertyset>
+    </au:antunit>
+  </target>
+
+  <target name="tearDown">
+    <delete dir="${output.dir}" quiet="true"/>
+  </target>
+
+  <target name="xtestWithReportSentToAnt">
+    <rat:report>
+      <file file="${ant.file}"/>
+    </rat:report>
+    <au:assertLogContains text="${expectedOutput}"/>
+  </target>
+
+  <target name="testWithReportSentToFile" depends="fileReportTest">
+    <rat:report reportFile="${report.file}">
+      <file file="${ant.file}"/>
+    </rat:report>
+    <au:assertLogDoesntContain text="${expectedOutput}"/>
+    <au:assertFileExists file="${report.file}"/>
+    <assertReportContains text="${expectedOutput}"/>
+  </target>
+
+  <target name="testXMLReportSentToFile" depends="fileReportTest">
+    <rat:report reportFile="${report.file}.xml" format="xml">
+      <file file="${ant.file}"/>
+    </rat:report>
+    <au:assertLogDoesntContain text="${expectedOutputXML}"/>
+    <au:assertLogDoesntContain text="${expectedOutputXML2}"/>
+    <au:assertFileExists file="${report.file}.xml"/>
+    <assertReportContains text="${expectedOutputXML}"
+                          file="${report.file}.xml"/>
+    <assertReportContains text="${expectedOutputXML2}"
+                          file="${report.file}.xml"/>
+  </target>
+
+  <target name="xtestWithALUnknown">
+    <rat:report addDefaultLicenseMatchers="false">
+      <file file="${ant.file}"/>
+      <rat:w3c/>
+    </rat:report>
+    <au:assertLogDoesntContain text="${expectedOutput}"/>
+    <au:assertLogContains text="!????? ${file.name}"/>
+  </target>
+
+  <target name="testWithALUnknownSentToFile" depends="fileReportTest">
+    <rat:report addDefaultLicenseMatchers="false" reportFile="${report.file}">
+      <file file="${ant.file}"/>
+      <rat:w3c/>
+    </rat:report>
+    <au:assertLogDoesntContain text="${expectedOutput}"/>
+    <au:assertLogDoesntContain text="!????? ${file.name}"/>
+    <assertReportContains text="!????? ${file.name}"/>
+  </target>
+
+  <target name="xtestCustomMatcher" depends="prepareCustomMatcher">
+    <rat:report>
+      <file file="${ant.file}"/>
+      <exmpl/>
+      <exmpl-license/>
+    </rat:report>
+    <au:assertLogDoesntContain text="${expectedOutput}"/>
+    <au:assertLogContains text=" EXMPL ${file.name}"/>
+  </target>
+
+  <target name="testCustomMatcherSentToFile"
+          depends="fileReportTest,prepareCustomMatcher">
+    <rat:report reportFile="${report.file}">
+      <file file="${ant.file}"/>
+      <exmpl/>
+      <exmpl-license/>
+    </rat:report>
+    <au:assertLogDoesntContain text="${expectedOutput}"/>
+    <au:assertLogDoesntContain text=" EXMPL ${file.name}"/>
+    <assertReportContains text=" EXMPL ${file.name}"/>
+  </target>
+
+  <target name="testSubstringMatcherNotApprovedSentToFile"
+          depends="fileReportTest">
+    <rat:report reportFile="${report.file}"
+                addDefaultLicenseMatchers="false">
+      <file file="${ant.file}"/>
+      <rat:substringMatcher
+          licenseFamilyCategory="YASL1"
+          licenseFamilyName="Yet Another Software License (YASL) 1.0"
+          notes="Interesting License">
+        <pattern substring="exmpl"/>
+      </rat:substringMatcher>
+    </rat:report>
+    <assertReportContains text="!YASL1 ${file.name}"/>
+    <assertReportDoesntContain text=" YASL1 ${file.name}"/>
+  </target>
+
+  <target name="testSubstringMatcherApprovedSentToFile"
+          depends="fileReportTest">
+    <rat:report reportFile="${report.file}"
+                addDefaultLicenseMatchers="false">
+      <file file="${ant.file}"/>
+      <rat:substringMatcher
+          licenseFamilyCategory="YASL1"
+          licenseFamilyName="Yet Another Software License (YASL) 1.0"
+          notes="Interesting License">
+        <pattern substring="exmpl"/>
+      </rat:substringMatcher>
+      <rat:approvedLicense
+          familyName="Yet Another Software License (YASL) 1.0"/>
+    </rat:report>
+    <assertReportContains text=" YASL1 ${file.name}"/>
+    <assertReportDoesntContain text="!YASL1 ${file.name}"/>
+  </target>
+
+  <target name="testSubstringMatcherSentToFileNoMatch"
+          depends="fileReportTest">
+    <rat:report reportFile="${report.file}"
+                addDefaultLicenseMatchers="false">
+      <file file="${ant.file}"/>
+      <rat:substringMatcher
+          licenseFamilyCategory="YASL1"
+          licenseFamilyName="Yet Another Software License (YASL) 1.0"
+          notes="Interesting License">
+        <!-- abusing XML attribute whitespace normalization to create
+             a substring that is not contained inside the build file
+             itself -->
+        <pattern substring="exmpl
+"/>
+      </rat:substringMatcher>
+    </rat:report>
+    <assertReportDoesntContain text="!YASL1 ${file.name}"/>
+    <assertReportDoesntContain text=" YASL1 ${file.name}"/>
+  </target>
+
+  <target name="testFullTextMatcherNotApprovedSentToFile"
+          depends="fileReportTest">
+    <rat:report reportFile="${report.file}"
+                addDefaultLicenseMatchers="false">
+      <file file="${ant.file}"/>
+      <rat:fullTextMatcher
+          licenseFamilyCategory="YASL1"
+          licenseFamilyName="Yet Another Software License (YASL) 1.0"
+          notes="Interesting License">
+        License Family Name: Yet Another Software License (YASL) 1.0
+      </rat:fullTextMatcher>
+    </rat:report>
+    <assertReportContains text="!YASL1 ${file.name}"/>
+    <assertReportDoesntContain text=" YASL1 ${file.name}"/>
+  </target>
+
+  <target name="testFullTextMatcherApprovedSentToFile"
+          depends="fileReportTest">
+    <rat:report reportFile="${report.file}"
+                addDefaultLicenseMatchers="false">
+      <file file="${ant.file}"/>
+      <rat:fullTextMatcher
+          licenseFamilyCategory="YASL1"
+          licenseFamilyName="Yet Another Software License (YASL) 1.0"
+          notes="Interesting License">
+        License Family Name: Yet Another Software License (YASL) 1.0
+      </rat:fullTextMatcher>
+      <rat:approvedLicense
+          familyName="Yet Another Software License (YASL) 1.0"/>
+    </rat:report>
+    <assertReportContains text=" YASL1 ${file.name}"/>
+    <assertReportDoesntContain text="!YASL1 ${file.name}"/>
+  </target>
+
+  <target name="testFullTextMatcherSentToFileNoMatch"
+          depends="fileReportTest">
+    <pathconvert dirsep="/" property="alt.file.name">
+      <path>
+        <pathelement location="report-bad-configurations.xml"/>
+      </path>
+    </pathconvert>
+    <rat:report reportFile="${report.file}"
+                addDefaultLicenseMatchers="false">
+      <file file="report-bad-configurations.xml"/>
+      <rat:fullTextMatcher
+          licenseFamilyCategory="YASL1"
+          licenseFamilyName="Yet Another Software License (YASL) 1.0"
+          notes="Interesting License">
+This text shouldn't exist in report-bad-configuration.xml
+      </rat:fullTextMatcher>
+    </rat:report>
+    <assertReportDoesntContain text="!YASL1 ${alt.file.name}"/>
+    <assertReportDoesntContain text=" YASL1 ${alt.file.name}"/>
+  </target>
+
+  <target name="testFullTextMatcherExpandsProperties"
+          depends="fileReportTest">
+    <pathconvert dirsep="/" property="alt.file.name">
+      <path>
+        <pathelement location="report-bad-configurations.xml"/>
+      </path>
+    </pathconvert>
+    <property name="test.version" value="1.0"/>
+    <rat:report reportFile="${report.file}"
+                addDefaultLicenseMatchers="false">
+      <file file="report-bad-configurations.xml"/>
+      <rat:fullTextMatcher
+          licenseFamilyCategory="YASL1"
+          licenseFamilyName="Yet Another Software License (YASL) 1.0"
+          notes="Interesting License">
+        License Family Name: Yet Another Software License (YASL) ${test.version}
+      </rat:fullTextMatcher>
+    </rat:report>
+    <assertReportContains text="!YASL1 ${alt.file.name}"/>
+    <assertReportDoesntContain text=" YASL1 ${alt.file.name}"/>
+  </target>
+
+  <target name="fileReportTest" depends="setUp">
+    <property name="report.file" location="${output.dir}/selftest.report"/>
+    <au:assertFileDoesntExist file="${report.file}"/>
+    <macrodef name="assertReportContains">
+      <attribute name="text"/>
+      <attribute name="file" default="${report.file}"/>
+      <sequential>
+        <loadfile srcFile="@{file}" property="report"/>
+        <au:assertTrue message="expected report to contain '@{text}' but was '${report}'">
+          <contains string="${report}" substring="@{text}"/>
+        </au:assertTrue>
+      </sequential>
+    </macrodef>
+    <macrodef name="assertReportDoesntContain">
+      <attribute name="text"/>
+      <attribute name="file" default="${report.file}"/>
+      <sequential>
+        <loadfile srcFile="@{file}" property="report"/>
+        <au:assertFalse message="expected report to not contain '@{text}' but was '${report}'">
+          <contains string="${report}" substring="@{text}"/>
+        </au:assertFalse>
+      </sequential>
+    </macrodef>
+  </target>
+
+  <target name="prepareCustomMatcher">
+    <mkdir dir="${output.dir}/dest"/>
+    <mkdir dir="${output.dir}/src/org/example"/>
+    <echo file="${output.dir}/src/org/example/Matcher.java"><![CDATA[
+package org.example;
+import org.apache.rat.api.Document;
+import org.apache.rat.api.MetaData;
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.license.BaseLicense;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+public class Matcher extends BaseLicense implements IHeaderMatcher {
+    public Matcher() {
+        super(new MetaData.Datum(MetaData.RAT_URL_LICENSE_FAMILY_CATEGORY, "EXMPL"),
+              new MetaData.Datum(MetaData.RAT_URL_LICENSE_FAMILY_NAME, "Example License"),
+              "");
+    }
+    public void reset() {}
+    
+    public boolean match(Document subject, String line) throws RatHeaderAnalysisException {
+        reportOnLicense(subject);
+        return true;
+    }
+}
+]]></echo>
+    <echo file="${output.dir}/src/org/example/LicenseFamily.java"><![CDATA[
+package org.example;
+import org.apache.rat.license.ILicenseFamily;
+public class LicenseFamily implements ILicenseFamily {
+    public String getFamilyName() {
+        return "Example License";
+    }
+}
+]]></echo>
+    <javac srcdir="${output.dir}/src" destdir="${output.dir}/dest"
+           classpath="${test.classpath}"/>
+    <typedef name="exmpl" classname="org.example.Matcher"
+             classpathref="all-classes-needed-for-tests"
+             loaderref="testloader"/>
+    <typedef name="exmpl-license" classname="org.example.LicenseFamily"
+             classpathref="all-classes-needed-for-tests"
+             loaderref="testloader"/>
+  </target>
+
+</project>
diff --git a/trunk/apache-rat/README-ANT.txt b/trunk/apache-rat/README-ANT.txt
new file mode 100644
index 0000000..f47bd97
--- /dev/null
+++ b/trunk/apache-rat/README-ANT.txt
@@ -0,0 +1,63 @@
+Apache Rat Ant Task Library
+===========================
+
+The Ant Task Library provides a single Ant task and a few supporting Ant types to run Rat,
+the Release Audit Tool from inside Apache Ant.
+
+Using Ant's resource abstraction the task can be used to check files on disk as well as tarballs
+or even URLs directly.
+
+Requirements
+------------
+
+The Rat Ant Task Library requires Apache Ant 1.7.1 or higher (it works well with 1.8.x)
+It also requires at least Java 1.5.
+
+Installation
+------------
+
+There are several ways to use the Antlib:
+
+    The traditional way:
+
+    <taskdef
+        resource="org/apache/rat/anttasks/antlib.xml">
+        <classpath>
+            <pathelement location="YOUR-PATH-TO/apache-rat-${project.version}.jar"/>
+        </classpath>
+    </taskdef>
+
+    With this you can use the report task like plain Ant tasks, they'll live in the default namespace.
+    I.e. if you can run exec without any namespace prefix, you can do so for report as well.
+    Similar, but assigning a namespace URI
+
+    <taskdef
+        uri="antlib:org.apache.rat.anttasks"
+        resource="org/apache/rat/anttasks/antlib.xml">
+        <classpath>
+            <pathelement location="YOUR-PATH-TO/apache-rat-${project.version}.jar"/>
+        </classpath>
+    </taskdef>
+
+    This puts your task into a separate namespace than Ant's namespace. You would use the tasks like
+
+    <project
+        xmlns:rat="antlib:org.apache.rat.anttasks"
+        xmlns="antlib:org.apache.tools.ant">
+        ...
+        <rat:report>
+            <fileset dir="src"/>
+        </rat:report>
+
+    or a variation thereof.
+    Using Ant's autodiscovery. Place apache-rat-tasks.jar and all dependencies into a directory
+    and use ant -lib YOUR-PATH-TO/apache-rat-${project.version}.jar
+    or copy apache-rat-${project.version}.jar into ANT_HOME/lib.
+    
+    Then in your build file, simply declare the namespace on the project tag:
+
+    <project
+        xmlns:rat="antlib:org.apache.rat.anttasks"
+        xmlns="antlib:org.apache.tools.ant">
+
+    All tasks of this library will automatically be available in the rat namespace without any taskdef.
diff --git a/trunk/apache-rat/README-CLI.txt b/trunk/apache-rat/README-CLI.txt
new file mode 100644
index 0000000..0e629a8
--- /dev/null
+++ b/trunk/apache-rat/README-CLI.txt
@@ -0,0 +1,81 @@
+About Apache Rat™
+================
+
+Rat audits software distributions, with a special interest in headers. 
+If this isn't quite what you're looking for then take a look at the 
+other products developed by Apache Creadur™, 
+including Apache Whisker™ which audits and generates legal (for example LICENSE)
+documents for complex software distributions.
+
+Running from the Command Line
+-----------------------------
+
+Run from the command line with:
+
+java -jar apache-rat-${project.version}.jar --help
+
+This will output a help message detailing the command line options available to you.
+
+Adding license headers
+----------------------
+
+Rat can be used to automatically add license headers to files that do not currently have them. 
+Only files that are not excluded by the Rat configurations will be affected.
+
+To add license headers use a command such as:
+
+java -jar apache-rat-${project.version}.jar --addlicense
+  --copyright "Copyright 2008 Foo" --force
+  /path/to/project
+
+This command will add the license header directly to the source files. 
+If you prefer to see which files will be changed and how then remove the "--force" option.
+Using multiple excludes from a file
+
+It is common to use the Rat with the maven or ant plugins and specify a series of files to exclude
+(such as a README or version control files). 
+If you are using the Rat application instead of a plugin you can specify a series of regex excludes
+in a file and specify that with the -E option.
+
+java -jar apache-rat-${project.version}.jar
+ -E /path/to/project/.rat-excludes
+ -d /path/to/project
+
+Command Line Options
+====================
+
+usage: java rat.report [options] [DIR|TARBALL]
+Options
+ -A,--addLicense                Add the default license header to any file
+                                with an unknown license that is not in the
+                                exclusion list. By default new files will
+                                be created with the license header, to
+                                force the modification of existing files
+                                use the --force option.
+ -a,--addlicense                Add the default license header to any file
+                                with an unknown license that is not in the
+                                exclusion list. By default new files will
+                                be created with the license header, to
+                                force the modification of existing files
+                                use the --force option.
+ -c,--copyright <arg>           The copyright message to use in the
+                                license headers, usually in the form of
+                                "Copyright 2008 Foo"
+ -d,--dir                       Used to indicate source when using
+                                --exclude
+ -E,--exclude-file <fileName>   Excludes files matching regular expression
+                                in <file> Note that --dir is required when
+                                using this parameter.
+ -e,--exclude <expression>      Excludes files matching wildcard
+                                <expression>. Note that --dir is required
+                                when using this parameter. Allows multiple
+                                arguments.
+ -f,--force                     Forces any changes in files to be written
+                                directly to the source files (i.e. new
+                                files are not created)
+ -h,--help                      Print help for the Rat command line
+                                interface and exit
+ -s,--stylesheet <arg>          XSLT stylesheet to use when creating the
+                                report.  Not compatible with -x
+ -x,--xml                       Output the report in raw XML format.  Not
+                                compatible with -s
diff --git a/trunk/apache-rat/README.txt b/trunk/apache-rat/README.txt
new file mode 100644
index 0000000..66cae99
--- /dev/null
+++ b/trunk/apache-rat/README.txt
@@ -0,0 +1,26 @@
+README file for Apache Creadur RAT
+==================================
+
+The jar in this archive can be used both:
+ * stand-alone (CLI)
+ * with Ant as an Ant task
+
+Stand-alone (CLI) usage
+=======================
+
+java -jar apache-rat-${project.version}.jar --help
+
+For more details, please see the file README-CLI.txt or the website:
+
+http://creadur.apache.org/rat/apache-rat/index.html
+
+Apache Rat Ant Task Library
+===========================
+
+It can also be used in conjunction with Ant:
+
+ant -lib apache-rat-${project.version}.jar ...
+
+For more details, please see the file README-ANT.txt or the website:
+
+http://creadur.apache.org/rat/apache-rat-tasks/index.html
\ No newline at end of file
diff --git a/trunk/apache-rat/pom.xml b/trunk/apache-rat/pom.xml
new file mode 100644
index 0000000..50fe808
--- /dev/null
+++ b/trunk/apache-rat/pom.xml
@@ -0,0 +1,191 @@
+<?xml version='1.0'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.rat</groupId>
+    <artifactId>apache-rat-project</artifactId>
+    <version>0.12-SNAPSHOT</version>
+  </parent>
+  <artifactId>apache-rat</artifactId>
+  <packaging>jar</packaging>
+  <name>Apache Creadur Rat::Command Line</name>
+  <description>
+    This library provides upwards compatibility for projects,
+    which are based on Apache Rat versions up to 0.5: Basically, it
+    provides a JAR file, which is the combination of
+    rat-core, rat-tasks, and its dependencies.
+  </description>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.rat</groupId>
+      <artifactId>apache-rat-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.rat</groupId>
+      <artifactId>apache-rat-tasks</artifactId>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>..</directory>
+        <targetPath>META-INF</targetPath>
+        <includes>
+          <include>RELEASE_NOTES.txt</include>
+          <include>LICENSE</include>
+          <include>NOTICE</include>
+        </includes>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-source-plugin</artifactId>
+        <configuration>
+          <attach>false</attach>
+          <!-- We don't need a source jar of this module -->
+          <skipSource>true</skipSource>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>prepare-package</phase>
+            <goals>
+              <goal>unpack-dependencies</goal>
+            </goals>
+            <configuration>
+              <includeScope>runtime</includeScope>
+              <outputDirectory>${project.build.outputDirectory}</outputDirectory>
+              <overWriteIfNewer>false</overWriteIfNewer>
+              <excludes>META-INF/**</excludes>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>META-INF/maven</exclude>
+          </excludes>
+          <archive>
+            <manifestEntries>
+              <Main-Class>org.apache.rat.Report</Main-Class>
+              <Extension-Name>rat</Extension-Name>
+              <Specification-Title>Apache Rat</Specification-Title>
+              <Specification-Vendor>apache.org</Specification-Vendor>
+              <Specification-Version>${project.version}</Specification-Version>
+              <Implementation-Vendor-Id>apache.org</Implementation-Vendor-Id>
+              <Implementation-Title>Apache Rat</Implementation-Title>
+              <Implementation-Vendor>Apache Software Foundation</Implementation-Vendor>
+              <Implementation-Version>${project.version}</Implementation-Version>
+            </manifestEntries>
+          </archive>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>animal-sniffer-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <!-- This sub project has no source code, so we need to skip animal sniffer -->
+            <id>check-java-1.5-compat</id>
+            <configuration>
+              <skip>true</skip>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <configuration>
+            <excludes>
+              <!-- These files only describe how to use the project and they
+                   have no license headers -->
+              <exclude>README-ANT.txt</exclude>
+              <exclude>README-CLI.txt</exclude>
+            </excludes>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <versionRange>[2.0,)</versionRange>
+                    <goals>
+                      <goal>unpack-dependencies</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore />
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <configuration>
+              <descriptorSourceDirectory>${basedir}/src/main/assembly/</descriptorSourceDirectory>
+              <tarLongFileMode>gnu</tarLongFileMode>
+            </configuration>
+            <executions>
+              <execution>
+                <id>make-assembly</id>
+                  <phase>package</phase> <!-- append to the packaging phase. -->
+                  <goals>
+                    <goal>single</goal>
+                  </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
diff --git a/trunk/apache-rat/src/main/assembly/bin.xml b/trunk/apache-rat/src/main/assembly/bin.xml
new file mode 100644
index 0000000..21c9fa9
--- /dev/null
+++ b/trunk/apache-rat/src/main/assembly/bin.xml
@@ -0,0 +1,57 @@
+<?xml version='1.0'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+  <id>bin</id>
+  <!-- 
+  Generates archive files including the binary CLI jar (which also supports Ant)
+  including NOTICE and LICENSE in the root.
+  -->
+  <formats>
+    <format>zip</format>
+    <format>tar.gz</format>
+    <format>tar.bz2</format>
+  </formats>
+  <fileSets>
+    <!-- The project documentation files -->
+    <fileSet>
+      <directory>${project.basedir}/..</directory>
+      <outputDirectory>/</outputDirectory>
+      <includes>
+        <include>LICENSE</include>
+        <include>NOTICE</include>
+        <include>RELEASE_NOTES.txt</include>
+      </includes>
+    </fileSet>
+    <fileSet>
+      <filtered>true</filtered>
+      <includes>
+        <include>README*.txt</include>
+      </includes>
+    </fileSet>
+    <!-- The combined CLI jar we built earlier -->
+    <fileSet>
+      <directory>target</directory>
+      <outputDirectory>/</outputDirectory>      
+      <includes>
+        <include>apache-rat-${project.version}.jar</include>
+      </includes>
+    </fileSet>
+  </fileSets>
+</assembly>
diff --git a/trunk/apache-rat/src/main/assembly/src.xml b/trunk/apache-rat/src/main/assembly/src.xml
new file mode 100644
index 0000000..2b9d83f
--- /dev/null
+++ b/trunk/apache-rat/src/main/assembly/src.xml
@@ -0,0 +1,45 @@
+<?xml version='1.0'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+  <id>src</id>
+  <!-- 
+  Generates a file including all the source tree excluding files/folders
+  starting with "." , *.bak and the target
+  -->
+  <formats>
+    <format>zip</format>
+    <format>tar.gz</format>
+    <format>tar.bz2</format>
+  </formats>
+  <fileSets>
+    <fileSet>
+      <directory>${project.basedir}/..</directory>
+      <outputDirectory></outputDirectory>
+      <excludes>
+        <exclude>**/target/**</exclude>
+        <exclude>.*/**</exclude>
+        <exclude>**.bak</exclude>
+        <exclude>*.jar</exclude>
+        <exclude>**/.*</exclude>
+      </excludes>
+      <useDefaultExcludes>true</useDefaultExcludes>
+    </fileSet>
+  </fileSets>
+</assembly>
diff --git a/trunk/apache-rat/src/site/apt/index.apt.vm b/trunk/apache-rat/src/site/apt/index.apt.vm
new file mode 100644
index 0000000..03226d0
--- /dev/null
+++ b/trunk/apache-rat/src/site/apt/index.apt.vm
@@ -0,0 +1,113 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~
+~~       http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                   --------------------------
+                   Command Line Support
+                   --------------------------
+
+About Apache Rat&#8482;
+
+ Rat audits software distributions, with a special interest in headers.
+ If this isn't quite what you're looking for then take a look at the
+ other products developed by {{{http://creadur.apache.org}Apache Creadur}}&#8482;,
+ including {{{http://creadur.apache.org/whisker}Apache Whisker}}&#8482; which audits
+ and generates legal (for example <<<LICENSE>>>) documents for
+ complex software distributions.
+
+* Running from the Command Line
+
+ Run from the command line with:
+
++------------------------------------------+
+java -jar apache-rat-${project.version}.jar --help
++------------------------------------------+
+
+ This will output a help message detailing the command line
+ options available to you.
+
+* Adding license headers
+
+ Rat can be used to automatically add license headers to
+ files that do not currently have them. Only files that
+ are not excluded by the Rat configurations will be affected.
+
+ To add license headers use a command such as:
+
++------------------------------------------+
+java -jar apache-rat-${project.version}.jar --addlicense
+  --copyright "Copyright 2008 Foo" --force
+  /path/to/project
++------------------------------------------+
+
+ This command will add the license header directly to the
+ source files. If you prefer to see which files will be
+ changed and how then remove the "--force" option.
+
+* Using multiple excludes from a file
+
+  It is common to use the Rat with the Maven or Ant plugins and specify
+  a series of files to exclude (such as a README or version control
+  files).  If you are using the Rat application instead of a plugin you
+  can specify a series of regex excludes in a file and specify that with
+  the -E option.
+
++------------------------------------------+
+java -jar apache-rat-${project.version}.jar
+ -E /path/to/project/.rat-excludes
+ -d /path/to/project
++------------------------------------------+
+
+* Command Line Options
+
+
++------------------------------------------+
+usage: java rat.report [options] [DIR|TARBALL]
+Options
+ -A,--addLicense                Add the default license header to any file
+                                with an unknown license that is not in the
+                                exclusion list. By default new files will
+                                be created with the license header, to
+                                force the modification of existing files
+                                use the --force option.
+ -a,--addlicense                Add the default license header to any file
+                                with an unknown license that is not in the
+                                exclusion list. By default new files will
+                                be created with the license header, to
+                                force the modification of existing files
+                                use the --force option.
+ -c,--copyright <arg>           The copyright message to use in the
+                                license headers, usually in the form of
+                                "Copyright 2008 Foo"
+ -d,--dir                       Used to indicate source when using
+                                --exclude
+ -E,--exclude-file <fileName>   Excludes files matching regular expression
+                                in <file> Note that --dir is required when
+                                using this parameter.
+ -e,--exclude <expression>      Excludes files matching wildcard
+                                <expression>. Note that --dir is required
+                                when using this parameter. Allows multiple
+                                arguments.
+ -f,--force                     Forces any changes in files to be written
+                                directly to the source files (i.e. new
+                                files are not created)
+ -h,--help                      Print help for the Rat command line
+                                interface and exit
+ -s,--stylesheet <arg>          XSLT stylesheet to use when creating the
+                                report.  Not compatible with -x
+ -x,--xml                       Output the report in raw XML format.  Not
+                                compatible with -s
++------------------------------------------+
\ No newline at end of file
diff --git a/trunk/apache-rat/src/site/resources/css/site.css b/trunk/apache-rat/src/site/resources/css/site.css
new file mode 100644
index 0000000..3683f87
--- /dev/null
+++ b/trunk/apache-rat/src/site/resources/css/site.css
@@ -0,0 +1,27 @@
+/*
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.    
+*/
+footer {
+    font-family: "Mate SC", "Lucida Console", Monaco, monospace;
+    font-size: 9pt;
+    padding: 5px 10px;
+    text-align: justify;
+    border: thin solid #D0D0D0;
+    background-color: #F8F8F8;
+    color: #404040;
+}
\ No newline at end of file
diff --git a/trunk/apache-rat/src/site/site.xml b/trunk/apache-rat/src/site/site.xml
new file mode 100644
index 0000000..e1fd449
--- /dev/null
+++ b/trunk/apache-rat/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/DECORATION/1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
+         name="Apache Rat&trade;">
+  <body>    
+    <head>
+        <link 
+            href='http://fonts.googleapis.com/css?family=Mate+SC' 
+            rel='stylesheet' 
+            type='text/css'/>
+    </head>
+  
+    <menu ref="parent"/>
+    <menu ref="reports"/>
+  </body>
+</project>
diff --git a/trunk/pom.xml b/trunk/pom.xml
new file mode 100644
index 0000000..03c7402
--- /dev/null
+++ b/trunk/pom.xml
@@ -0,0 +1,723 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>17</version>
+  </parent>
+  <groupId>org.apache.rat</groupId>
+  <artifactId>apache-rat-project</artifactId>
+  <version>0.12-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <name>Apache Creadur Rat</name>
+  <url>http://creadur.apache.org/rat/</url>
+  <description>
+Apache Rat is a release audit tool. It improves accuracy and efficiency when checking
+releases. It is heuristic in nature: making guesses about possible problems. It
+will produce false positives and cannot find every possible issue with a release.
+Its reports require interpretation.
+
+In response to demands from project quality tool developers, Rat is available as a
+library suitable for inclusion in tools. This POM describes that library.
+Note that binary compatibility is not guaranteed between 0.x releases.
+
+Apache Rat is developed by the Apache Creadur project, a language and build
+agnostic home for software distribution comprehension and audit tools.
+  </description>
+  <inceptionYear>2006</inceptionYear>
+  <prerequisites>
+    <!-- This is the version of Maven required to build Rat -->
+    <maven>3.0.5</maven>
+  </prerequisites>
+  <properties>
+    <javaVersion>1.5</javaVersion>
+    <maven.compiler.source>${javaVersion}</maven.compiler.source>
+    <maven.compiler.target>${javaVersion}</maven.compiler.target>
+    <!-- This is the version of Maven required to use the Rat Maven Plugin -->
+    <mavenVersion>2.2.1</mavenVersion>
+    <previousRatVersion>0.11</previousRatVersion>
+    <!--
+    Publication to the website is a two phase operation:
+
+     1. Deploy to local stage: mvn site-deploy
+     2. Publish to Apache CMS: mvn scm-publish:publish-scm
+
+    This will only work when the origin for scm-publish:publish-scm
+    is the target for site:deploy.
+
+    SO MAKE SURE THAT THE FOLLOWING PROPERTIES RESOLVE TO THE SAME
+    DIRECTORY:
+
+     * scmpublish.content
+     * rat.site.url
+
+    -->
+    <rat.LocalSiteStaging>stage</rat.LocalSiteStaging>
+    <scmpublish.content>${rat.LocalSiteStaging}</scmpublish.content>
+    <rat.site.url>file:${rat.LocalSiteStaging}</rat.site.url>
+    <rat.site.name>Apache Rat Website</rat.site.name>
+    <rat.site.id>org.apache.rat.site</rat.site.id>
+    <creadur.jira.id>RAT</creadur.jira.id>
+    <!-- maven plugin versions -->
+    <mavenPluginPluginVersion>3.3</mavenPluginPluginVersion>
+    <mavenChangesVersion>2.11</mavenChangesVersion>
+  </properties>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-core</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-tasks</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-cli</groupId>
+        <artifactId>commons-cli</artifactId>
+        <version>1.2</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-collections</groupId>
+        <artifactId>commons-collections</artifactId>
+        <version>3.2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <!-- Later versions require Java 1.6+ -->
+        <version>2.2</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-lang</groupId>
+        <artifactId>commons-lang</artifactId>
+        <!--  commons-lang3 versions require Java 1.6+ -->
+        <version>2.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-compress</artifactId>
+        <version>1.5</version>
+      </dependency>
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.12</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>1.10.19</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-all</artifactId>
+        <version>1.10.19</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-library</artifactId>
+        <version>1.2.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.ant</groupId>
+        <artifactId>ant</artifactId>
+        <version>1.7.1</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.ant</groupId>
+        <artifactId>ant-antunit</artifactId>
+        <version>1.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.ant</groupId>
+        <artifactId>ant-testutil</artifactId>
+        <version>1.7.1</version>
+        <scope>test</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <reporting>
+    <!-- N.B. plugins defined here in the <reporting> section ignore what's defined in <pluginManagement>
+         in the <build> section above, so we have to define the versions here. -->
+    <plugins>
+      <!-- org.apache.maven.plugins, alpha order by artifact id -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-changes-plugin</artifactId>
+        <version>${mavenChangesVersion}</version>
+        <configuration>
+          <xmlPath>${basedir}/src/changes/changes.xml</xmlPath>
+          <columnNames>Fix Version,Key,Component,Summary,Type,Resolution,Status</columnNames>
+          <!-- Sort cols in natural order when using JQL for JIRA 5.1 -->
+          <sortColumnNames>Fix Version DESC,Type,Key DESC</sortColumnNames>
+          <resolutionIds>Fixed</resolutionIds>
+          <statusIds>Resolved,Closed</statusIds>
+          <!-- Don't include sub-task -->
+          <typeIds>Bug,New Feature,Task,Improvement,Wish,Test</typeIds>
+          <!-- For JIRA >= 5.1 -->
+          <useJql>true</useJql>
+          <onlyCurrentVersion>${commons.changes.onlyCurrentVersion}</onlyCurrentVersion>
+          <maxEntries>${commons.changes.maxEntries}</maxEntries>
+          <runOnlyAtExecutionRoot>${commons.changes.runOnlyAtExecutionRoot}</runOnlyAtExecutionRoot>
+        </configuration>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>changes-report</report>
+              <report>jira-report</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <tags>
+            <tag>
+              <name>TODO</name>
+              <placement>X</placement>
+              <head>To do:</head>
+            </tag>
+          </tags>
+          <notimestamp>true</notimestamp>
+        </configuration>
+        <reportSets>
+          <reportSet>
+            <id>non-aggregate</id>
+            <configuration>
+            </configuration>
+            <reports>
+              <report>javadoc</report>
+            </reports>
+          </reportSet>
+          <reportSet>
+            <id>aggregate</id>
+            <configuration>
+            </configuration>
+            <reports>
+              <report>aggregate</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+        <version>2.4</version>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-pmd-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-project-info-reports-plugin</artifactId>
+        <version>2.7</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>dependencies</report>
+              <report>project-team</report>
+              <report>mailing-list</report>
+              <report>issue-tracking</report>
+              <report>cim</report>
+              <!-- Do not enable the license report;
+                   license links must only point to
+                   http://www.apache.org/licenses/
+              <report>license</report>
+              -->
+              <report>scm</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <!-- Must use previous version, to avoid a cyclic reference -->
+        <version>${previousRatVersion}</version>
+      </plugin>
+    </plugins>
+  </reporting>
+  <build>
+    <defaultGoal>clean install</defaultGoal>
+    <pluginManagement>
+      <!--
+        This section is typically used to configure the versions of
+        plugins that we use. Note, that we are inheriting from the
+        parent POM, so we only have to configure version numbers,
+        if ours is different.
+      -->
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-antrun-plugin</artifactId>
+          <version>1.7</version>
+          <dependencies>
+            <dependency>
+              <groupId>org.apache.ant</groupId>
+              <artifactId>ant</artifactId>
+              <version>1.7.1</version>
+            </dependency>
+          </dependencies>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>3.2</version>
+          <configuration>
+            <source>${javaVersion}</source>
+            <target>${javaVersion}</target>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-dependency-plugin</artifactId>
+          <version>2.8</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-pmd-plugin</artifactId>
+          <!-- Later versions require Java 1.6+ -->
+          <version>3.1</version>
+          <configuration>
+            <targetJdk>${javaVersion}</targetJdk>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-site-plugin</artifactId>
+          <version>3.4</version>
+          <configuration>
+            <relativizeDecorationLinks>false</relativizeDecorationLinks>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <!-- Must use previous version, to avoid a cyclic reference -->
+          <version>${previousRatVersion}</version>
+          <dependencies><!-- TODO remove exclusion when upgrading to new ASF parent or doxia release (RAT-158) -->
+            <dependency>
+              <groupId>org.apache.maven.doxia</groupId>
+              <artifactId>doxia-core</artifactId>
+              <version>1.2</version>
+              <exclusions>
+                <exclusion>
+                  <groupId>xerces</groupId>
+                  <artifactId>xercesImpl</artifactId>
+                </exclusion>
+              </exclusions>
+            </dependency>
+          </dependencies>
+          <configuration>
+            <excludes>
+              <!-- This file only describes how to build the project and it has no license header -->
+              <exclude>BUILD.txt</exclude>
+              <!-- rat:check does not seem to use exclusions from modules -->
+              <exclude>apache-rat/README*.txt</exclude>
+              <exclude>apache-rat-core/src/test/resources/**</exclude>
+              <exclude>apache-rat*/target/**</exclude>
+              <exclude>apache-rat-plugin/src/test/resources/**</exclude>
+              <exclude>apache-rat-plugin/src/it/**</exclude>
+              <exclude>apache-rat-tasks/src/test/resources/**</exclude>
+            </excludes>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-scm-publish-plugin</artifactId>
+          <version>1.0</version>
+          <extensions>true</extensions>
+          <configuration>
+            <!-- svn location for publication -->
+            <pubScmUrl>scm:svn:https://svn.apache.org/repos/asf/creadur/site/trunk/content/rat/</pubScmUrl>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>2.5.1</version>
+          <configuration>
+            <!-- Only prompt once for the release version -->
+            <autoVersionSubmodules>true</autoVersionSubmodules>
+            <mavenExecutorId>forked-path</mavenExecutorId>
+          </configuration>
+        </plugin>
+        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+        <plugin>
+        	<groupId>org.eclipse.m2e</groupId>
+        	<artifactId>lifecycle-mapping</artifactId>
+        	<version>1.0.0</version>
+        	<configuration>
+        		<lifecycleMappingMetadata>
+        			<pluginExecutions>
+        				<pluginExecution>
+        					<pluginExecutionFilter>
+        						<groupId>org.apache.rat</groupId>
+        						<artifactId>
+        							apache-rat-plugin
+        						</artifactId>
+        						<versionRange>[0.11,)</versionRange>
+        						<goals>
+        							<goal>check</goal>
+        						</goals>
+        					</pluginExecutionFilter>
+        					<action>
+        						<ignore></ignore>
+        					</action>
+        				</pluginExecution>
+        			</pluginExecutions>
+        		</lifecycleMappingMetadata>
+        	</configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>pre-site</phase>
+            <id>copy-site-resources</id>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <target>
+                <copy file="RELEASE_NOTES.txt" todir="${project.build.directory}/site/" failonerror="false"/>
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <executions>
+          <execution>
+            <!-- This checks the bytecode version of the dependencies transitively -->
+            <id>enforce-bytecode-version</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <enforceBytecodeVersion>
+                  <maxJdkVersion>${javaVersion}</maxJdkVersion>
+                </enforceBytecodeVersion>
+              </rules>
+              <fail>true</fail>
+            </configuration>
+          </execution>
+        </executions>
+        <dependencies>
+          <dependency>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>extra-enforcer-rules</artifactId>
+            <version>1.0-beta-2</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>animal-sniffer-maven-plugin</artifactId>
+        <version>1.11</version>
+        <dependencies>
+          <!-- Upgrade ASM and support Java 8 bytecode -->
+          <dependency>
+            <groupId>org.ow2.asm</groupId>
+            <artifactId>asm-all</artifactId>
+            <version>5.0.3</version>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <!-- This checks the source code of our project -->
+            <!--
+              Note that this cannot use our ${javaVersion} property, so it must
+              be changed manually when we decide to move to a higher version of
+              Java
+            -->
+            <id>check-java-1.5-compat</id>
+            <phase>process-classes</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+            <configuration>
+              <signature>
+                <groupId>org.codehaus.mojo.signature</groupId>
+                <artifactId>java15</artifactId>
+                <version>1.0</version>
+              </signature>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    <extensions>
+      <extension>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-ssh</artifactId>
+        <!-- Last version that is compatible with Maven 2 -->
+        <version>1.0-beta-7</version>
+      </extension>
+    </extensions>
+  </build>
+  <issueManagement>
+    <system>JIRA</system>
+    <url>https://issues.apache.org/jira/browse/RAT</url>
+  </issueManagement>
+  <ciManagement>
+    <system>Buildbot</system>
+    <url>http://ci.apache.org/builders/rat_trunk</url>
+    <!--  Jenkins builds are at:
+    https://builds.apache.org/job/Creadur-Rat-ParentPom/ - build the parent pom for all RAT submodules
+    https://builds.apache.org/job/Creadur-Rat/ - check Java5 compliance and run all tests
+    https://builds.apache.org/job/Creadur-Rat-Site/ - generate mvn site
+    https://builds.apache.org/job/Creadur-Rat-Latest-Jdk/ - run with Java8 and mvn3 latest
+    https://builds.apache.org/job/Creadur-Rat-Site-Latest-Jdk/ - ensure that a site can be generated with mvn3 and Java8
+     -->
+  </ciManagement>
+  <mailingLists>
+    <mailingList>
+      <name>Rat Development (Apache Creadur project)</name>
+      <subscribe>dev-subscribe@creadur.apache.org</subscribe>
+      <unsubscribe>dev-unsubscribe@creadur.apache.org</unsubscribe>
+      <post>dev@creadur.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/creadur-dev/</archive>
+    </mailingList>
+    <mailingList>
+      <name>Rat Commits (Apache Creadur project)</name>
+      <subscribe>commits-subscribe@creadur.apache.org</subscribe>
+      <unsubscribe>commits-unsubscribe@creadur.apache.org</unsubscribe>
+      <archive>http://mail-archives.apache.org/mod_mbox/creadur-commits/</archive>
+    </mailingList>
+  </mailingLists>
+  <developers>
+    <developer>
+      <id>bodewig</id>
+      <name>Stefan Bodewig</name>
+      <email>bodewig@apache.org</email>
+    </developer>
+    <developer>
+      <id>rdonkin</id>
+      <name>Robert Burrell Donkin</name>
+      <email>rdonkin@apache.org</email>
+    </developer>
+    <developer>
+      <id>jochen</id>
+      <name>Jochen Wiedmann</name>
+      <email>jochen@apache.org</email>
+    </developer>
+    <developer>
+      <id>gmcdonald</id>
+      <name>Gavin</name>
+      <email>gmcdonald@apache.org</email>
+    </developer>
+    <developer>
+      <id>brianf</id>
+      <name>Brian Fox</name>
+      <email>brianf@apache.org</email>
+    </developer>
+    <developer>
+      <id>dennisl</id>
+      <name>Dennis Lundberg</name>
+      <email>dennisl@apache.org</email>
+    </developer>
+    <developer>
+      <id>rgardler</id>
+      <name>Ross Gardler</name>
+      <email>rgardler@apache.org</email>
+    </developer>
+    <developer>
+      <id>crossley</id>
+      <name>David Crossley</name>
+      <email>crossley@apache.org</email>
+    </developer>
+    <developer>
+      <id>dblevins</id>
+      <name>David Blevins</name>
+      <email>dblevins@apache.org</email>
+    </developer>
+    <developer>
+      <id>pottlinger</id>
+      <name>Philipp Ottlinger</name>
+      <email>pottlinger@apache.org</email>
+    </developer>
+  </developers>
+  <contributors>
+    <contributor>
+      <name>Jukka Zitting</name>
+      <email>jukka@apache.org</email>
+    </contributor>
+    <contributor>
+      <name>Todd Volkert</name>
+      <email>tvolkert+apache@gmail.com</email>
+    </contributor>
+    <contributor>
+      <name>Henri Yandell</name>
+      <email>bayard@apache.org</email>
+    </contributor>
+    <contributor>
+      <name>Guillaume Nodet</name>
+      <email>gnodet@apache.org</email>
+    </contributor>
+    <contributor>
+      <name>Karl Pauls</name>
+      <email>pauls@apache.org</email>
+    </contributor>
+    <contributor>
+      <name>Matthieu Riou</name>
+      <email>mriou@apache.org</email>
+    </contributor>
+    <contributor>
+      <name>Garrett Rooney</name>
+      <email>rooneg@apache.org</email>
+    </contributor>
+    <contributor>
+      <name>Paul Merlin</name>
+      <email>paulmerlin@apache.org</email>
+    </contributor>
+  </contributors>
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/creadur/rat/trunk</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/creadur/rat/trunk</developerConnection>
+    <url>http://svn.apache.org/repos/asf/creadur/rat/trunk</url>
+  </scm>
+  <distributionManagement>
+    <site>
+      <id>${rat.site.id}</id>
+      <name>${rat.site.name}</name>
+      <url>${rat.site.url}</url>
+    </site>
+  </distributionManagement>
+  <modules>
+    <module>apache-rat-api</module>
+    <module>apache-rat-core</module>
+    <module>apache-rat-plugin</module>
+    <module>apache-rat-tasks</module>
+    <module>apache-rat</module>
+  </modules>
+  <licenses>
+    <license>
+      <name>Apache License, Version 2</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+      <comments>An OSI approved open source license.</comments>
+    </license>
+  </licenses>
+  <organization>
+    <name>Apache Software Foundation</name>
+    <url>http://www.apache.org</url>
+  </organization>
+  <profiles>
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <!-- Skip the source-release artifact here; we create it under the CLI module -->
+          <plugin>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>source-release-assembly</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>single</goal>
+                </goals>
+                <configuration>
+                  <skipAssembly>true</skipAssembly>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <!--
+          Generate release notes in top-level directory from src/changes/changes.xml
+          Usage:
+          mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
+
+          Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix.
+
+          Requires file src/changes/release-notes.vm.
+       -->
+      <id>release-notes</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-changes-plugin</artifactId>
+            <version>${mavenChangesVersion}</version>
+            <configuration>
+              <template>release-notes.vm</template>
+              <templateDirectory>src/changes</templateDirectory>
+              <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
+              <announcementDirectory>.</announcementDirectory>
+              <announcementFile>RELEASE-NOTES.txt</announcementFile>
+              <announceParameters>
+                <releaseVersion>${mavenChangesVersion}</releaseVersion>
+              </announceParameters>
+            </configuration>
+            <executions>
+              <execution>
+                <id>create-release-notes</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>announcement-generate</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
diff --git a/trunk/src/changes/changes.xml b/trunk/src/changes/changes.xml
new file mode 100644
index 0000000..e83084f
--- /dev/null
+++ b/trunk/src/changes/changes.xml
@@ -0,0 +1,328 @@
+<?xml version='1.0'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!--
+This file is also used by the maven-changes-plugin to generate the release notes.
+Useful ways of finding items to add to this file are:
+
+1.  Add items when you fix a bug or add a feature (this makes the 
+release process easy :-).
+
+2.  Do a JIRA search for tickets closed since the previous release.
+
+3.  Use the report generated by the maven-changelog-plugin to see all
+SVN commits. TBA how to use this with SVN.
+
+To generate the release notes from this file:
+
+mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nn]
+then tweak the formatting if necessary 
+and commit
+
+The <action> type attribute can be add,update,fix,remove.
+
+    Please list action attributes in the following order:
+    issue - required
+    type - required
+    the rest are optional; order not important
+    
+    having the issue number first makes it easier to read the XML outline
+
+-->
+
+<document xmlns="http://maven.apache.org/changes/1.0.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
+  <properties>
+    <title>Changes in Apache Creadur RAT</title>
+    <author email="dev@creadur.apache.org">Apache Creadur RAT developers</author>
+  </properties>
+
+  <body>
+    <release version="0.12" date="2015-09-30" description=
+" We now require Maven 3.0.5+ to build Rat, but as before we only require
+ Maven 2.2.1+ if you want to use Rat in your own Maven projects.
+
+We've integrated Rat into the ASF Jenkins to ensure continuous builds with various JDK versions. 
+">
+      <action issue="RAT-163" type="fix" dev="jochen">
+        Removing the Gradle Plugin from the Rat Core project, so that building
+        with Java 5 works again.
+      </action>
+      <action issue="RAT-158" type="fix" due-to="Hervé Boutemy" dev="pottlinger">
+        Fix SAX-Parser warning by explicitly excluding xerces in Doxia 1.2.
+      </action>
+      <action issue="RAT-173" type="fix" due-to="Chris Burroughs" dev="pottlinger">
+        Allow complete skip of RAT plugin with rat.skip property.
+      </action>
+      <action issue="RAT-174" type="fix" due-to="Chris Burroughs" dev="pottlinger">
+        CDDL1License still very slow, replace Pattern matching with simple String comparison.
+      </action>
+      <action issue="RAT-175" type="fix" dev="sebb">
+        SourceCodeManagementSystems.hasIgnoreFile() should return boolean.
+      </action>
+      <action issue="RAT-177" type="fix" dev="pottlinger">
+        Final arrays should be private.
+      </action>
+      <action issue="RAT-188" type="fix" due-to="Mark Thomas" dev="pottlinger">
+        Fix problems with AnimalSniffer-plugin when running in GUMP with Java 8.
+        Workaround for https://jira.codehaus.org/browse/MANIMALSNIFFER-45
+      </action>
+      <action issue="RAT-160" type="fix" due-to="Christopher Tubbs" dev="pottlinger">
+        Ignore build.log created by maven-invoker-plugin.
+      </action>
+      <action issue="RAT-179" type="fix" dev="pottlinger">
+        Maven plugin and Ant task do not support adding extra approved licenses.
+      </action>
+      <action issue="RAT-180" type="fix" dev="pottlinger">
+        Generify and beautify texts in RAT report. 
+      </action>
+      <action issue="RAT-196" type="add" due-to="Karl Heinz Marbais" dev="pottlinger">
+        Minor refactoring in pom.xml.
+      </action>
+      <action issue="RAT-194" type="fix" due-to="Hervé Boutemy" dev="pottlinger">
+        Upgrade to Doxia 1.6 if called directly, does not affect problems reported in RAT-158. Minor improvements.
+      </action>
+      <action issue="RAT-61" type="add" due-to="Jukka Zitting" dev="dennisl">
+        List files with unapproved licenses in Maven output.
+      </action>
+      <action issue="RAT-170" type="add" due-to="Philipp Ottlinger" dev="dennisl">
+        RAT should use itself during build and site generation.
+      </action>
+      <action issue="RAT-181" type="add" dev="sebb">
+        BinaryGuesser should treat *.truststore as binary.
+      </action>
+      <action issue="RAT-184" type="add" due-to="Karl Heinz Marbaise" dev="pottlinger">
+        Add DEPENDENCIES to the list of ignored files in NoteGuesser.
+      </action>
+      <action issue="RAT-185" type="add" due-to="Karl Heinz Marbaise" dev="dennisl">
+        .repository folder should be ignored.
+      </action>
+      <action issue="RAT-186" type="add" dev="dennisl">
+        BinaryGuesser should recognize PSD files as images.
+      </action>
+      <action issue="RAT-187" type="add" due-to="Karl Heinz Marbaise" dev="dennisl">
+        Add 'SAR', 'HAR', 'WSR' as archives which should be ignored.
+      </action>
+      <action issue="RAT-197" type="add" due-to="Karl Heinz Marbaise" dev="pottlinger">
+        Improve exclusion defaults when working with Maven 3.3.1 (exclude .mvn).
+      </action>
+      <action issue="RAT-198" type="fix" due-to="Karl Heinz Marbaise" dev="pottlinger">
+        Upgrade plexus-utils to 3.0.20.
+      </action>
+      <action issue="RAT-172" type="fix" dev="pottlinger">
+        Exclude technical directories of source code management systems and their ignore files from RAT scans.
+      </action>
+      <action issue="RAT-200" type="fix" dev="pottlinger">
+        Upgrade ASF parent POM to 17.
+      </action>
+      <action issue="RAT-201" type="add" dev="pottlinger">
+        BinaryGuesser should treat *.swf as binary.
+        Furthermore BinaryGuesser falls back to UTF-8 encoding in case the encoding given via system property
+        (-Dfile.encoding) was not found.
+      </action>
+      <action issue="RAT-202" type="add" dev="pottlinger">
+         Report layout differs between successful RAT checks and existence of unapproved files.
+      </action>
+      <action issue="RAT-202" type="add" dev="pottlinger">
+         Report layout differs between successful RAT checks and existence of unapproved files.
+      </action>
+      <action issue="RAT-203" type="add" dev="pottlinger">
+         Using 'license' in README, source code, javadoc, comments and site instead of 'licence';
+         improve terminology to not confuse RAT consumers.
+      </action>
+      <action issue="RAT-204" type="add" dev="pottlinger">
+        Unify resource handling in code and tests, make sure the resources are properly closed. Apply minor refactorings.
+      </action>
+    </release>
+    <release version="0.11" date="2014-08-31" description=
+"* Rat stays at compiler level 1.5 to be more compliant with other Maven plugins,
+  fixed build/CI environment to reflect and ensure that.
+
+  * Fixed Javadoc warnings during build, upgraded Maven Plugin Plugin to avoid
+  warnings in generated code (https://jira.codehaus.org/browse/MPLUGIN-237)
+">
+    <action issue="RAT-135" type="fix">addLicenseHeaders is missing a space on license header.</action>
+    <action issue="RAT-144" type="fix">AbstractRatMojo String constant arrays should be private</action>
+    <action issue="RAT-148" type="fix" due-to="Chris A Mattmann">LicenseAddingReport#report has useless call to metaData.getData</action>
+    <action issue="RAT-151" type="fix">Detect more archive file formats</action>
+    <action issue="RAT-152" type="fix">Recognize the format for .bsh, .fml and .jsp file types</action>
+    <action issue="RAT-153" type="fix">Do not add extra empty lines when appending headers for the Apache License</action>
+    <action issue="RAT-154" type="fix">Indentation of the license header should be decided per family</action>
+    <action issue="RAT-155" type="fix">Do not add empty first and last lines in the license header for certain families</action>
+    <action issue="RAT-156" type="fix">Add some symmetry when applying license headers to files with file type specific headers</action>
+    <action issue="RAT-159" type="fix">Detect OpenOffice documents as being archives</action>
+    <action issue="RAT-129" type="add">Add support for CDDL 1.0</action>
+    <action issue="RAT-162" type="add" due-to="Andrew Gaul">CDDL1License.matches slow with large inputs</action>
+    <action issue="RAT-164" type="add">Allow skipping execution entirely</action>
+    <action issue="RAT-165" type="add">Use a maven defaultGoal for RAT's base pom.xml</action>
+    </release>
+    <release version="0.10" date="2013-09-05" description=
+"The 0.10 version includes several bug fixes, 
+most notably a fix for 0.9 performance issues.
+ * Simpler binary archive
+ * Updated dependencies and plugins
+ * Fixed up generics and annotations">
+      <action issue="RAT-137" type="fix">Website shows incorrect Maven goals in some pages</action>
+      <action issue="RAT-128" type="fix">Use the proper name for the Apache License</action>
+      <action issue="RAT-138" type="fix">RAT runs very slowly on some input</action>
+      <action issue="RAT-140" type="fix">OASISLicense allows invalid Copyright line</action>
+      <action issue="RAT-139" type="fix">FullTextMatchingLicense.prune uses inefficient deleteAtChar</action>
+      <action issue="RAT-145" type="fix">Maven plugin should not run in the "verify" phase, but in the "validate" phase</action>
+      <action issue="RAT-129" type="add">Add support for CDDL 1.0 </action>
+    </release>
+    <release version="0.9"  date="2013-05-02" description=
+" * Improved documentation
+  * Rat now requires Java5 at runtime
+  * The Antlib contains a new matcher type that allows matching on the
+   full text of the license rather than a single line.
+ * Support automatic addition of license headers to svg files.">
+      <action issue="RAT-3" type="fix">Incorrect alignment of file contents</action>
+      <action issue="RAT-102" type="fix">typo in pom.xml / field description</action>
+      <action issue="RAT-109" type="fix">Return value of mkdirs() is not checked and no error handling occurs</action>
+      <action issue="RAT-116" type="fix">Docs don't say what the default excludes are</action>
+      <action issue="RAT-120" type="fix">fix some maven warnings and upgrade some dependencies.</action>
+      <action issue="RAT-121" type="fix">use maven java5 annotations for maven plugins</action>
+      <action issue="RAT-122" type="fix">Maven Plugin: field to ignore errors and continue the build</action>
+      <action issue="RAT-124" type="fix">Rat plugin should exclude the configuration directory used by IDEA</action>
+      <action issue="RAT-126" type="fix">Default excludes do not ignore .git/ repository</action>
+      <action issue="RAT-13" type="update">[GOOGLE-14] GNU License support</action>
+      <action issue="RAT-49" type="update">Recognise MIT LIcense</action>
+      <action issue="RAT-104" type="update">
+          Using jUnit4 annotation based tests instead of junit3 - migration from junit 3.8.2 to current junit 4.10
+      </action>
+      <action issue="RAT-106" type="fix">Minor Javadoc errors fixed in 3 files</action>
+      <action issue="RAT-108" type="update">Add native support for thrift generated code to be ignored</action>
+      <action issue="RAT-111" type="update">RAT does not ignore javah generated files</action>
+      <action issue="RAT-125" type="update">Support applied AL20 license headers, including checking for required copyright header line</action>
+      <action issue="RAT-78" type="add">Support doxia 1.1.2</action>
+      <action issue="RAT-59" type="update">Upgrade To Java 1.5</action>
+      <action issue="RAT-119" type="update">Upgrade Maven prerequisite to 2.2.1</action>
+    </release>
+    <release version="0.8-incubating"  date="2011-11-15" description=
+"Version 0.8 improves the command line interface, supports more file
+types when adding license headers and makes it easier to detect custom
+licenses.
+Some website fixes
+The Antlib and Maven plugins now provide simpler ways to detect licenses not directly supported by Rat.">
+      <action issue="RAT-86" type="bug">CLI doesn't allow adding of licenses unless a custom stylesheet has been specified</action>
+      <action issue="RAT-87" type="bug">Tests could leave temporary files around.></action>
+      <action issue="RAT-92" type="bug">When adding licenses Rat used \n instead of the platform dependent line--end character(s)</action>
+      <action issue="RAT-94" type="bug">Streams were not always closed immediately when adding licenses.</action>
+      <action issue="RAT-79" type="update">Support automatic addition of license headers to Velocity templates</action>
+      <action issue="RAT-83" type="update">Support automatic addition of license headers to Scala source files</action>
+      <action issue="RAT-84" type="update">Support automatic addition of license headers to Ruby source files</action>
+      <action issue="RAT-89" type="update">Support automatic addition of license headers to Perl, TCL, C++, C# and PHP source files</action>
+      <action issue="RAT-91" type="update">Support automatic addition of license headers to Groovy source files</action>
+      <action issue="RAT-85" type="update">Allow --addLicense as an alias for --addLicence for people used to the US spelling.</action>
+      <action issue="RAT-34" type="update">--addLicense will add the license to the top of Java files without a package line or XML files without an XML declaration now - it used to not add anything.</action>
+      <action issue="RAT-67" type="update">The XML and standard plain text reports now contain a timestamp with the time the report has been generated.</action>
+      <action issue="RAT-95" type="update"> When adding licenses Rat will now remove any BOM from the file.</action>
+      <action issue="RAT-93" type="update">--addLicense now supports more .NET specific files like MS Visual Studio project and solution files</action>
+      <action issue="RAT-99" type="update">The command line interface has a new option that specifies a file containing regular expressions for files to exclude</action>
+    </release>
+    <release version="0.7-incubating"  date="2013-05-02" description=
+"The following changes have been made in Apache RAT 0.7:
+
+- Add support for Python scripts, C source files, Unix shell scripts (.sh) and Windows batch files (.bat) (RAT-68)
+- Allow Ant task to output report as XML. (RAT-73)
+- Allow users to specify a custom XSLT stylesheet for reports (RAT-74, and RAT-75)
+- Some website fixes
+- Optionally auto-add headers to source files. (RAT-76) ">
+      <action issue="RAT-62" type="fix">Some of Rat's own files missing License Headers</action>
+      <action issue="RAT-63" type="fix">ant-task-examples.xml has an wrong uri in the -typedef ant target</action>
+      <action issue="RAT-70" type="fix">Missing closing html tag in generated report by</action>
+      <action issue="RAT-17" type="update">Support the use of archives as input</action>
+      <action issue="RAT-30" type="update">Support automatic addition of license headers</action>
+      <action issue="RAT-76" type="update">Support automatic addition of license headers</action>
+      <action issue="RAT-52" type="update">Merge In Rat Output Semantics</action>
+      <action issue="RAT-56" type="update">Commons IO Wildcard Excludes</action>
+      <action issue="RAT-65" type="update">Rat Pom cleanup</action>
+      <action issue="RAT-68" type="update">Add support for Python, C, &amp; script files (.bat &amp; .sh)</action>
+      <action issue="RAT-72" type="update">Keep version in plugins sample doc up to date</action>
+      <action issue="RAT-73" type="update">Support for XML output in Ant task and Maven Plugin</action>
+      <action issue="RAT-73" type="update">Support for XML output in Ant task and Maven Plugin</action>
+      <action issue="RAT-74" type="update">Support for custom XSLT stylesheets</action>
+      <action issue="RAT-75" type="update">Support for custom XSLT stylesheets</action>
+    </release>
+    <release version="0.6-incubating" date="2009-04-10" description=
+"This is the first version using the org.apache package
+structure and related names. RAT users are strongly encouraged to
+migrate, as the old Google version will no longer be maintained.
+ * Support for TMF header
+ * Comprehend PEM, CRL file endings
+ * Added reporting capability to recursive rat script
+ * Moved to the Incubator@Apache
+">
+      <action issue="RAT-37" type="fix" dev="jochen"
+          due-to="Jukka Zitting" due-to-email="jukka@apache.org">
+        List all resources with unapproved licenses at the beginning of the report.
+      </action>
+      <action issue="RAT-36" type="fix" dev="jochen"
+          due-to="Jukka Zitting" due-to-email="jukka@apache.org">
+        Report header incorrectly refers to an "L" license marker
+      </action>
+      <action issue="RAT-33" type="fix" dev="jochen"
+          due-to="Gavin" due-to-email="gavin@16degrees.com.au">
+        Mailing list subscribe points to unsubscribe
+      </action>
+      <action issue="RAT-3" type="fix">Incorrect alignment of file contents</action>
+      <action issue="RAT-11" type="fix">Incorrect number of unnapproved licences reported</action>
+      <action issue="RAT-12" type="fix">Incorrect SCM info in maven plugin pom</action>
+      <action issue="RAT-29" type="fix">NPE on &quot;mvn install&quot; in rat-anttasks</action>
+      <action issue="RAT-34" type="fix">No license header added for java files that do not contain project line</action>
+      <action issue="RAT-35" type="fix">Incorrect number of unapproved licenses reported by rat:check</action>
+      <action issue="RAT-8" type="update">add JavaCC to GeneratedLicenseNotRequired</action>
+      <action issue="RAT-9" type="update">A more informative website</action>
+      <action issue="RAT-10" type="update">A few Javadoc comments</action>
+      <action issue="RAT-23" type="update">More details in text summary</action>
+      <action issue="RAT-24" type="update">Include checksums on web page</action>
+      <action issue="RAT-26" type="update">Improve web summary</action>
+      <action issue="RAT-27" type="update">Index page</action>
+      <action issue="RAT-6" type="add">RAT Source Import</action>
+      <action issue="RAT-28" type="add">Repackage maven plugin</action>
+      <action issue="RAT-1" type="add">maven-rat-plugin and ant-rat tasks</action>
+    </release>
+    <release version="0.5.1" description=
+"* Fixed file closing bug
+ * Fixed XML bad character bug"/>
+    <release version="0.5" description=
+" * Added header matcher for DoJo.
+ * Refactoring existing codebase to separate concerns and use
+   resource pipeline.
+ * New header matching library."/>
+    <release version="0.4.1" description=
+"Rat 0.4.1 is the first release with distributions. The release was cut
+for this purpose.
+ * Created POM for use with Rat library.
+ * Ant task switched to use Xml based report."/>
+    <release version="0.4" description=
+" * Ant tasks added. These allow Rat reports to be run against a wide variety
+   of resources from within Ant.
+ * Legacy report is now deprecated. It will be removed before the next release.
+ * Created stylesheet for xml reports which produce output similar to the legacy
+   plain text report. Application now uses the xml report with that stylesheet.
+ * Revised xml output format
+ * Improve support for binary recognition by adding code that tastes files"/>
+    <release version="0.3" description=
+" * This is the last release with the original hacked together plain test report.
+   The new XML reporting code is present but is not yet the default.
+ * Rat 0.3 is the first release with release notes. All previous releases are
+   now consigned to Ancient History. No record of them will be found here."/>
+  </body>
+</document>
diff --git a/trunk/src/changes/release-notes.vm b/trunk/src/changes/release-notes.vm
new file mode 100644
index 0000000..8298b71
--- /dev/null
+++ b/trunk/src/changes/release-notes.vm
@@ -0,0 +1,122 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##  http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+              ${project.name} ${version}
+                  RELEASE NOTES
+
+The ${developmentTeam} is pleased to announce the release of ${project.name} ${version}
+
+$introduction.replaceAll("(?<!\015)\012", "
+").replaceAll("(?m)^ +","")
+
+## N.B. the available variables are described here:
+## http://maven.apache.org/plugins/maven-changes-plugin/examples/using-a-custom-announcement-template.html
+##
+## Hack to improve layout: replace all pairs of spaces with a single new-line
+$release.description.replaceAll("  ", "
+")
+
+## set up indent sizes. Only change indent1
+#set($props=${project.properties})
+#set($jiralen=$props.get("creadur.jira.id").length())
+## e.g. indent1 =   RAT-nnnn:
+#set($blanklen=$jiralen+6)## +6 for "-nnnn:"
+## must be at least as long as the longest JIRA id
+#set($blanks="                                  ")
+#set($indent1=$blanks.substring(0,$blanklen))
+## indent2 allows for issue wrapper
+#set($indent2="$indent1   ")
+##
+#macro ( processaction )
+## Use replaceAll to fix up LF-only line ends on Windows.
+#set($action=$actionItem.getAction().replaceAll("\n","
+"))
+## Replace &lt; with < so can embed tag markup
+#set($action=$action.replaceAll("&lt;","<"))
+## use an empty date to mean don't format the entry
+## TODO how to enable leading spaces without compromising html report
+## unfortunately leading spaces are trimmed even from CDATA sections
+#if ($actionItem.getDate() && $actionItem.getDate().length()==0)
+$action
+#else
+## Fix up indentation for multi-line action descriptions
+#set($action=$action.replaceAll("(?m)^  +",$indent2))
+#if ($actionItem.getIssue())
+#set($issue="$actionItem.getIssue():")
+## Pad shorter issue numbers
+#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
+#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
+#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
+#else
+#set($issue=$indent1)
+#end
+#if ($actionItem.getDueTo())
+#set($dueto=" Thanks to $actionItem.getDueTo().")
+#else
+#set($dueto="")
+#end
+o $issue ${action}$dueto
+#end
+#set($action="")
+#set($issue="")
+#set($dueto="")
+#end
+##
+#if ($release.getActions().size() == 0)
+No changes defined in this version.
+#else
+Changes in this version include:
+
+#if ($release.getActions('add').size() !=0)
+New features:
+#foreach($actionItem in $release.getActions('add'))
+#processaction()
+#end 
+
+#end
+##
+#if ($release.getActions('fix').size() !=0)
+Fixed Bugs:
+#foreach($actionItem in $release.getActions('fix'))
+#processaction()
+#end
+
+#end
+##
+#if ($release.getActions('update').size() !=0)
+Changes:
+#foreach($actionItem in $release.getActions('update'))
+#processaction()
+#end
+
+#end
+##
+#if ($release.getActions('remove').size() !=0)
+Removed:
+#foreach($actionItem in $release.getActions('remove'))
+#processaction()
+#end
+#end
+## End of main loop
+#end
+
+Historical list of changes: ${project.url}changes-report.html
+
+For complete information on ${project.name}, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache ${project.name} website:
+
+${project.url}
diff --git a/trunk/src/python/recursive-rat.py b/trunk/src/python/recursive-rat.py
new file mode 100644
index 0000000..8a866aa
--- /dev/null
+++ b/trunk/src/python/recursive-rat.py
@@ -0,0 +1,248 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one   
+# or more contributor license agreements.  See the NOTICE file 
+# distributed with this work for additional information        
+# regarding copyright ownership.  The ASF licenses this file   
+# to you under the Apache License, Version 2.0 (the            
+# "License"); you may not use this file except in compliance   
+# with the License.  You may obtain a copy of the License at   
+#                                                              
+#   http://www.apache.org/licenses/LICENSE-2.0                 
+#                                                              
+# Unless required by applicable law or agreed to in writing,   
+# software distributed under the License is distributed on an  
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       
+# KIND, either express or implied.  See the License for the    
+# specific language governing permissions and limitations      
+# under the License.                                           
+#
+
+from sys import argv
+from os import popen
+from os import popen4
+from os import spawnl
+from os.path import isdir
+from os.path import walk
+from os.path import split
+from os.path import splitext
+from os.path import exists
+from tempfile import mkdtemp
+from os.path import join
+from os import listdir
+from os import rmdir
+from os import makedirs
+from shutil import rmtree
+import md5
+import sha
+
+class UserAbortError(Exception):
+    def __str__(self):
+        return "Aborted by user. Bye."
+
+def matchExtension(file, dir, extension):
+    matches = []
+    extension = '.' + extension.lower()
+    for element in listdir(dir):
+        root, ext = splitext(element)
+        if extension == ext.lower() and root == file:
+            matches.append(element)
+    return matches
+
+def printMatches(file, dir, extension):
+    matches = matchExtension(file, dir, extension)
+    for match in matches:
+        matchFile = open(join(dir,match), 'r')
+        text = matchFile.read(); 
+        matchFile.close()
+        print text
+    
+
+def untgz(file, dir):
+    popen("tar -xzf " + file + " -C " + dir)
+    
+def unzip(file, dir):
+    popen("unzip -d " + dir + " " + file)
+
+def checkSums(filename, dir):
+    file = open(join(dir, filename), 'r')
+    contents = file.read()
+    file.close()
+    md5sum = md5.new()
+    md5sum.update(contents)
+    print "MD5:"
+    print md5sum.hexdigest()
+    printMatches(filename, dir, "MD5")
+    shaSum = sha.new()
+    shaSum.update(contents)
+    print "SHA1:"
+    print shaSum.hexdigest()
+    printMatches(filename, dir, "SHA")
+    printMatches(filename, dir, "SHA1")
+
+def checkSignature(filename, dir, gpgCommand):
+    file = join(dir, filename)
+    signatureFile = file + '.asc'
+    if not(exists(signatureFile)):
+       signatureFile = file + '.sig'
+       if not(exists(signatureFile)):
+           print "SIGNATURE IS MISSING"
+    command = gpgCommand + ' --verify ' + signatureFile + ' ' + file
+    input, output = popen4(command)
+    print output.read()
+
+def rat(file, dir, uncompress, ratCommand, baseReportDirectory):
+    if baseReportDirectory == None:
+        reportdir = mkdtemp()
+    else:
+        reportdir = join(baseReportDirectory, file.replace('.', '_'))
+        if exists(reportdir):
+           rmtree(reportdir) 
+        makedirs(reportdir)
+            
+    uncompress(join(dir, file), reportdir)
+    command = ratCommand + " " + reportdir
+    input, output = popen4(command)
+    out = output.read()
+    if not baseReportDirectory == None:
+        f = open(join(baseReportDirectory, file + '.rat'), 'w')
+        f.write(out)
+        f.close()
+    print out
+
+def checkArchive(file, dir, uncompress, ratCommand, gpgCommand, baseReportDirectory):
+    print "."
+    print "."
+    print "."
+    print "###################################################"
+    print "Checking ", file
+    checkSums(file, dir)
+    checkSignature(file, dir, gpgCommand)
+    rat(file, dir, uncompress, ratCommand, baseReportDirectory)
+    print "###################################################"
+    print "."
+    print "."
+    print "."
+        
+def checkFile(file, dir, ratCommand, gpgCommand, baseReportDirectory):
+    '''Checks the given file'''
+    if file.endswith('.jar'):
+        print "Checking jar ", file
+        checkArchive(file, dir, lambda a,b:unzip(a,b), ratCommand, gpgCommand, baseReportDirectory)
+    elif file.endswith('.zip'):
+        print "Checking zip ", file
+        checkArchive(file, dir, lambda a,b:unzip(a,b), ratCommand, gpgCommand, baseReportDirectory)
+    elif file.endswith('.tar.gz') or file.endswith('.tgz'):
+        print "Checking tgz ", file
+        checkArchive(file, dir, lambda a,b:untgz(a,b), ratCommand, gpgCommand, baseReportDirectory)
+
+def ignoreDirectory(dir):
+    '''Is this directory to be ignored?'''
+    if dir == "":
+        return False
+    else:
+        head, tail = split(dir)
+        if tail.startswith('.') and not(tail.startswith('..')):
+            return True
+        elif tail == "":
+            return False
+        else:
+            return ignoreDirectory(head)
+
+def checkDirectory(ratCommand, gpgCommand, dir, files, baseReportDir, check=lambda a,b,c,d: lambda x: checkFile(x,a,b,c,d)):
+    '''Checks a directory'''
+    if not(ignoreDirectory(dir)):
+       print 'Checking directory ', dir
+       map(check(dir, ratCommand, gpgCommand, baseReportDir), files)
+
+def walkDirectories(base, ratCommand, gpgCommand, baseReportDir = None, f=lambda a,b,c,d,e: checkDirectory(a,b,c,d,e)):
+    '''Traverses directories under base and executes checks'''
+    print 'Starting traversal at ', base 
+    walk(base, lambda dummy, dir, files: f(ratCommand, gpgCommand, dir, files, baseReportDir), None)
+    
+def enterRatCommand(rat = None):
+    '''If necessary, prompts user for an acceptable Rat command'''
+    if rat == None:
+        try:
+            rat = raw_input("Please enter Rat command (including path): ")
+        except EOFError:
+            raise UserAbortError()
+        
+        if rat == "":
+            print "Rat command is required"
+            rat = enterRatCommand()       
+             
+    ratResult = popen(rat).close()
+    if not(ratResult == None):
+        print "Cannot execute " + rat
+        rat = enterRatCommand()
+    return rat
+    
+def enterBaseDirectory(base = None):
+    '''If necessary prompts user for an acceptable base directory'''
+    if base == None:
+        try:
+            base = raw_input("Please enter base directory for recursive traversal: ")
+        except EOFError:
+            raise UserAbortError()
+    if not(isdir(base)):
+        print "'" + base + "' is not a directory."
+        base = enterBaseDirectory()
+    return base
+
+def enterGPGCommand(gpgCommand = None):
+    '''If necessary prompts user for the command used to test signatures'''
+    if gpgCommand == None:
+        try:
+            gpgCommand = raw_input("GnuPG is required. Please enter GPG command: ")
+        except EOFError:
+            raise UserAbortError()
+    result = popen(gpgCommand + " --version").close()
+    if not(result == None):
+        print "Cannot execute " + gpgCommand
+        rat = enterGPGCommand()
+    return gpgCommand
+
+def getRatCommand():
+    '''Gets an acceptable value for the Rat command'''
+    if len(argv) == 1:
+        ratCommand = enterRatCommand() 
+    else:
+        ratCommand = enterRatCommand(argv[1])
+    return ratCommand
+
+def getBaseDirectory():
+    '''Gets an acceptable value for the base directory'''
+    if len(argv) < 3:
+        base = enterBaseDirectory()
+    else:
+        base = enterBaseDirectory(argv[2])    
+    return base
+    
+def getGPGCommand():
+    '''Gets an acceptable value for the command used to test signatures'''
+    if len(argv) < 5:
+        gpgCommand = enterGPGCommand('gpg')
+    else:
+        gpgCommand = enterGPGCommand(argv[4])
+    return gpgCommand
+
+def getBaseReportDirectory():
+    if len(argv) < 4:
+        return None
+    else:
+        return argv[3]
+
+def checkArgs(f=lambda a,b,c,d: walkDirectories(a, b, c, d)):
+    '''Prompts user for arguments missing from the command line. Check argument values.'''
+    try:
+        ratCommand = getRatCommand()
+        base = getBaseDirectory()
+        gpgCommand = getGPGCommand()
+        baseReportDirectory = getBaseReportDirectory()
+        
+        f(base, ratCommand, gpgCommand, baseReportDirectory)
+    except UserAbortError, e:
+        print '\n'
+        print e
+    
+checkArgs()
diff --git a/trunk/src/site/apt/index.apt.vm b/trunk/src/site/apt/index.apt.vm
new file mode 100644
index 0000000..3342ae7
--- /dev/null
+++ b/trunk/src/site/apt/index.apt.vm
@@ -0,0 +1,150 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~
+~~       http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+                   --------------------------
+                   A Release Audit Tool
+                   --------------------------
+
+Apache Rat
+
+ In a hurry? Jump to {{{Quick_Start:_Running_Rat}quick start}}
+
+%{toc|fromDepth=2|toDepth=3}
+
+* About Rat
+
+** What Is Rat?
+
+ Apache Rat is a release audit tool, focused on licenses.
+
+** Rat Is Used To...?
+
+ Use Rat to improve accuracy and efficiency
+ when checking releases for licenses.
+
+** Why Develop Rat?
+
+ Reviewing releases in the {{{http://incubator.apache.org/}Apache Incubator}}
+ by hand was error-prone and time-consuming.
+
+ Rat arises from the Apache style, but is used more widely.
+ If your release style isn't supported,
+ {{{./mail-lists.html}talk to us}}.
+
+** How Do I Use Rat?
+
+ Apache Rat ${project.version} ships with tooling for
+
+   * {{{http://ant.apache.org/} Apache Ant}},
+
+   * {{{http://maven.apache.org}Apache Maven}},
+
+   * {{{https://gradle.org}Gradle}} and
+
+   * the command line.
+
+ Rat is extensible. If your build tool isn't supported, please contribute a
+ {{{./issue-tracking.html}patch}} or
+ {{{./mail-lists.html}talk to us}}.
+
+ Rat aspires to be self documenting. Please contribute a
+ {{{./issue-tracking.html}patch}} or
+ {{{./mail-lists.html}talk to us}}
+ whenever Rat falls short.
+
+** Who Develops Rat?
+
+  Apache Rat is part of the {{{http://creadur.apache.org}Apache Creadur}}
+  language- and build-agnostic suite of tools for auditing and comprehending
+  software distributions. Our community develops
+  {{{http://www.opensource.org/} open source software}} the
+  {{{http://www.apache.org/foundation/how-it-works.html} Apache way}}.
+
+  Please feel free to contribute a
+  {{{./issue-tracking.html}patch}},
+  {{{http://c2.com/cgi/wiki?TestDrivenDevelopment}demonstrate}} a
+  {{{./issue-tracking.html}bug}}, or
+  just
+  {{{./mail-lists.html}talk to us}}.
+  All welcome :-)
+
+* Quick Start: Running Rat
+
+** Command Line
+
+ Quick start by
+
++------------------------------------------+
+java -jar apache-rat-${project.version}.jar --help
++------------------------------------------+
+
+ Read more {{{./apache-rat/index.html}here}}.
+
+** Apache Ant
+
+ Use the task library for {{{http://ant.apache.org/} Apache Ant 1.7}} or later
+
+ Read more {{{./apache-rat-tasks/index.html} here}}.
+
+** Apache Maven
+
+ Use the plugin for {{{http://maven.apache.org}Apache Maven ${mavenVersion}}} or later.
+
++------------------------------------------+
+  <plugin>
+    <groupId>org.apache.rat</groupId>
+    <artifactId>apache-rat-plugin</artifactId>
+    <version>${project.version}</version>
+  </plugin>
++------------------------------------------+
+
+ Read more {{{./apache-rat-plugin/index.html} here}}.
+
+** Gradle
+
+ Use the plugin for {{{https://gradle.org}Gradle}}.
+
++------------------------------------------+
+plugins {
+  id "org.apache.rat" version "${version}"
+}
++------------------------------------------+
+
+ Read more {{{./apache-rat-gradle/index.html} here}}.
+
+* Checking Out Rat
+
+  Quick start
+
++------------------------------------------+
+svn co http://svn.apache.org/repos/asf/creadur/rat/trunk/
++------------------------------------------+
+
+ Read more {{{./source-repository.html}here}}.
+
+* Building Rat
+
+ Build Rat with {{{http://maven.apache.org/} Apache Maven}}
+
+ Quick start
+
+ If you want to build RAT just launch 'mvn' inside the root folder. It will automatically perform a 
+
++------------------------------------------+
+mvn clean install
++------------------------------------------+
+
diff --git a/trunk/src/site/apt/site-publish.apt b/trunk/src/site/apt/site-publish.apt
new file mode 100644
index 0000000..244888a
--- /dev/null
+++ b/trunk/src/site/apt/site-publish.apt
@@ -0,0 +1,128 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~   Licensed to the Apache Software Foundation (ASF) under one or more
+~~   contributor license agreements.  See the NOTICE file distributed with
+~~   this work for additional information regarding copyright ownership.
+~~   The ASF licenses this file to You under the Apache License, Version 2.0
+~~   (the "License"); you may not use this file except in compliance with
+~~   the License.  You may obtain a copy of the License at
+~~
+~~       http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~   Unless required by applicable law or agreed to in writing, software
+~~   distributed under the License is distributed on an "AS IS" BASIS,
+~~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~   See the License for the specific language governing permissions and
+~~   limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   --------------------
+   Publishing this site
+   --------------------
+
+How to publish the Rat website
+
+ The {{{http://creadur.apache.org}Apache Creadur}} project, the community
+ that develops {{{http://creadur.apache.org/rat}Apache Rat}},
+ hosts its website on the
+ {{{http://www.apache.org/dev/cms.html}ASF Content Management System}}.
+ {{{http://maven.apache.org}Apache Maven}} builds Rat, and generates this
+ subsite. Here's (one way) to work with these systems.
+
+* Developing Content
+
+ Build and generate the site using Maven the usual way
+
++------------------------------------------+
+mvn clean site
++------------------------------------------+
+
+ Make your changes to the <<<site.xml>>> and/or <<<.apt>>> files then launch
+ a server on <<<localhost:8080>>> using
+
++------------------------------------------+
+ mvn site:run
++------------------------------------------+
+
+ Review {{{http://localhost:8080}<<<localhost:8080>>>}} using a browser, and do more edits.
+ You'll see your changes as soon as you refresh the page.
+
+* Committing and Reviewing Content
+
+ As soon as your changes look okay locally on <<<localhost:8080>>>, commit them.
+ {{{http://ci.apache.org/buildbot.html}Buildbot}} will automatically
+ notice the commit and create a staging site to look at
+ {{{http://ci.apache.org/projects/rat} http://ci.apache.org/projects/rat/}}
+ which is always up to date (within a couple of minutes of any commit).
+
+ Need to make changes? No problem - go back and repeat the cycle as often as you like.
+
+ Happy with changes and ready to go live? Then read on...
+
+* Publishing the Site
+
+ The publishing process updates the main site with any changes committed since the last
+ time the site was published.
+
+ Publishing is a multi-stage process with a mixture of automated
+ and manual processing. End to end, the process is slow - perhaps
+ taking 30 minutes but close supervision is not required.
+
+** Deploy the Site Locally
+
+ Rat declares a local directory (<<<stage>>>) for Maven
+ site deployments. To avoid excessive numbers of commits, the
+ local directory needs to remain ignored by <<<subversion>>>.
+ As well as being the target for <<<mvn site-deploy>>>, this is also
+ the origin for publication.
+
+ Triggering the automated publication pipeline is a two phase process:
+ Maven needs to deploy the latest site locally and then
+ <<<scm-publish>>> pushes this content into version control.
+
+ If you prefer to be prompted to type your subversion passphrase, edit
+ <<<~/.scm/svn-settings.xml>>> to include
+
++------------------------------------------+
+<svn-settings>
+  ...
+  <useNonInteractive>false</useNonInteractive>
+  <useAuthCache>false</useAuthCache>
+  ...
+</svn-settings>
++------------------------------------------+
+
+ Run both steps together using
+
++------------------------------------------+
+
+mvn site-deploy scm-publish:publish-scm
+
++------------------------------------------+
+
+ Publication is slow, and the plugin may wait silently for up to
+ 30 minutes - so please allow the build enough time to complete.
+
+** Automated Staging of the Site
+
+ The content committed by the Maven <<<scm-publish>>> plugin
+ triggers a staging build on
+ {{{http://ci.apache.org/}<<<http://ci.apache.org/>>>}}. To
+ follow its progress, open the
+ {{{http://ci.apache.org/builders/creadur-site-staging}creadur
+ site builder}}.
+
+ When this builds has completed successfully, review the content
+ staged on
+ {{{http://creadur.staging.apache.org/rat/index.html}
+ <<<http://creadur.staging.apache.org/rat/index.html>>>}}. If
+ this looks fine then publish the staged content using the
+ {{{http://www.apache.org/dev/cms.html}ASF Content Management System}}.
+
+ Propagating the content to {{{http://creadur.apache.org/rat}production}} may take a brief while (maybe
+ 30 seconds) so please be patient a little longer.
+
+* Troubleshooting
+
+  * If you have issues with 'mvn site' failing try running 'mvn clean' then 'mvn install' before going back and running 'mvn site' again.
+
+  * If you experience an Out of Memory error <<java.lang.OutOfMemoryError: Java heap space>> when running 'mvn site' try setting 'export MAVEN_OPTS=-Xmx512m'
+     or for Windows 'set MAVEN_OPTS=-Xmx512m' first on the command line (or in your profile) and then try 'mvn site' again.
diff --git a/trunk/src/site/resources/css/site.css b/trunk/src/site/resources/css/site.css
new file mode 100644
index 0000000..3683f87
--- /dev/null
+++ b/trunk/src/site/resources/css/site.css
@@ -0,0 +1,27 @@
+/*
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.    
+*/
+footer {
+    font-family: "Mate SC", "Lucida Console", Monaco, monospace;
+    font-size: 9pt;
+    padding: 5px 10px;
+    text-align: justify;
+    border: thin solid #D0D0D0;
+    background-color: #F8F8F8;
+    color: #404040;
+}
\ No newline at end of file
diff --git a/trunk/src/site/resources/download_rat.cgi b/trunk/src/site/resources/download_rat.cgi
new file mode 100755
index 0000000..4324f76
--- /dev/null
+++ b/trunk/src/site/resources/download_rat.cgi
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Wrapper script around mirrors.cgi script
+# (we must change to that directory in order for python to pick up the
+#  python includes correctly)
+cd /www/www.apache.org/dyn/mirrors
+/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
diff --git a/trunk/src/site/site.xml b/trunk/src/site/site.xml
new file mode 100644
index 0000000..6a6f689
--- /dev/null
+++ b/trunk/src/site/site.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/DECORATION/1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
+         name="Apache Rat&trade;">
+  <bannerRight>
+    <title>The Apache Software Foundation</title>
+    <name>The Apache Software Foundation</name>
+    <src>http://www.apache.org/images/asf_logo_wide.jpg</src>
+    <href>http://www.apache.org/</href>
+  </bannerRight>
+  <poweredBy>
+      <logo name="Maven"
+            href="http://maven.apache.org/"
+            img="http://maven.apache.org/images/logos/maven-feather.png"/>
+
+  </poweredBy>
+
+  <body>
+    <head>
+      <link
+            href='http://fonts.googleapis.com/css?family=Mate+SC'
+            rel='stylesheet'
+            type='text/css'/>
+    </head>
+
+    <breadcrumbs>
+      <item name="Apache" href="http://www.apache.org/"/>
+      <item name="Creadur" href="http://creadur.apache.org/"/>
+      <item name="Rat" href="http://creadur.apache.org/rat/"/>
+    </breadcrumbs>
+
+    <menu name="Apache Rat&trade;" inherit="bottom">
+      <item name="Introducing Rat" href="/index.html"/>
+      <item name="Javadocs" href="/apidocs/index.html"/>
+      <item name="Downloads" href="/download_rat.cgi"/>
+      <item name="Changes" href="/RELEASE_NOTES.txt"/>
+    </menu>
+
+    <menu name="Running Rat" inherit="bottom">
+      <item name="From The Command Line" href="apache-rat/index.html"/>
+      <item name="With Ant" href="apache-rat-tasks/index.html"/>
+      <item name="With Maven" href="apache-rat-plugin/index.html"/>
+      <item name="With Gradle" href="apache-rat-gradle/index.html"/>
+    </menu>
+
+    <menu name="Apache Creadur&trade;" inherit="bottom">
+      <item name='Creadur Project Home' href="http://creadur.apache.org"/>
+      <item name='Apache Tentacles' href="http://creadur.apache.org/tentacles"/>
+      <item name='Apache Whisker' href="http://creadur.apache.org/whisker"/>
+      <item name='Security' href='http://www.apache.org/security/'/>
+      <item name='License' href='http://www.apache.org/licenses/'/>
+      <item name='Sponsorship' href='http://www.apache.org/foundation/sponsorship.html'/>
+      <item name='Thanks' href='http://www.apache.org/foundation/thanks.html'/>
+    </menu>
+
+    <menu name="The Apache Software Foundation" inherit="bottom">
+        <item name='About the Foundation'
+            href="http://www.apache.org/foundation"/>
+        <item name='The projects'
+            href="http://projects.apache.org"/>
+        <item name='The people'
+            href="http://people.apache.org"/>
+        <item name='How we work'
+            href='http://www.apache.org/foundation/how-it-works.html'/>
+        <item name='Our history'
+            href='http://www.apache.org/foundation/how-it-works.html#history'/>
+        <item name='News'
+            href='http://blogs.apache.org/foundation/'/>
+    </menu>
+
+    <menu name="Contribute" inherit="bottom">
+      <item name="Get Involved" href='http://www.apache.org/foundation/getinvolved.html'/>
+    </menu>
+
+    <menu name="Committer Info" inherit="bottom">
+      <item name="Publish this site" href="site-publish.html"/>
+      <item name="Committers' FAQ" href='http://www.apache.org/dev/committers.html'/>
+      <item name='New Committers Guide' href='http://www.apache.org/dev/new-committers-guide.html'/>
+      <item name='Plant Apache' href='http://planet.apache.org/committers/'/>
+      <item name='Community' href='http://community.apache.org/'/>
+      <item name='Legal' href='http://www.apache.org/legal/'/>
+      <item name='Branding' href='http://www.apache.org/foundation/marks/'/>
+      <item name='Media Relations' href='http://www.apache.org/press/'/>
+    </menu>
+
+    <menu ref="modules"/>
+    <menu ref="reports"/>
+
+    <footer>Copyright &#169; 2014 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+      Apache Creadur, Creadur, Apache Rat, Apache Tentacles, Apache Whisker, Apache and the Apache feather logo are trademarks
+      of The Apache Software Foundation.
+      Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+      All other marks mentioned may be trademarks or registered trademarks of their respective owners.</footer>
+
+  </body>
+</project>
diff --git a/trunk/src/site/xdoc/download_rat.xml.vm b/trunk/src/site/xdoc/download_rat.xml.vm
new file mode 100644
index 0000000..4b2903a
--- /dev/null
+++ b/trunk/src/site/xdoc/download_rat.xml.vm
@@ -0,0 +1,129 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<document>
+  <properties>
+    <title>Downloads</title>
+  </properties>
+  <body>
+    <section name="Download ${project.name}">
+      <subsection name="Using a Mirror">
+        <p>
+          We recommend you use a mirror to download our release
+          builds, but you <strong>must</strong> <a href="http://www.apache.org/info/verification.html">verify the integrity</a> of
+          the downloaded files using signatures downloaded from our main
+          distribution directories. Recent releases (48 hours) may not yet
+          be available from the mirrors.
+        </p>
+
+        <p>
+          You are currently using <b>[preferred]</b>.  If you
+          encounter a problem with this mirror, please select another
+          mirror.  If all mirrors are failing, there are <i>backup</i>
+          mirrors (at the end of the mirrors list) that should be
+          available.
+          <br></br>
+          [if-any logo]<a href="[link]"><img align="right" src="[logo]" border="0"></img></a>[end]
+        </p>
+
+        <form action="[location]" method="get" id="SelectMirror">
+          <p>
+            Other mirrors:
+            <select name="Preferred">
+              [if-any http]
+              [for http]<option value="[http]">[http]</option>[end]
+              [end]
+              [if-any ftp]
+              [for ftp]<option value="[ftp]">[ftp]</option>[end]
+              [end]
+              [if-any backup]
+              [for backup]<option value="[backup]">[backup] (backup)</option>[end]
+              [end]
+            </select>
+            <input type="submit" value="Change"></input>
+          </p>
+        </form>
+
+        <p>
+          The <a
+          href="http://www.apache.org/dist/creadur/KEYS">KEYS</a>
+          link links to the code signing keys used to sign the
+          product.  The <code>PGP</code> link downloads the OpenPGP
+          compatible signature from our main site.  The
+          <code>SHA1</code> and <code>MD5</code> links download the
+          checksum from the main site.
+        </p>
+      </subsection>
+    </section>
+    <section name="${project.name} ${project.version}">
+      <subsection name="Binaries">
+        <table>
+          <tr>
+              <td><a href="[preferred]/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.tar.bz2">apache-rat-${project.version}-bin.tar.bz2</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.tar.bz2.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.tar.bz2.sha1">sha1</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.tar.bz2.asc">pgp</a></td>
+          </tr>
+          <tr>
+              <td><a href="[preferred]/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.tar.gz">apache-rat-${project.version}-bin.tar.gz</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.tar.gz.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.tar.gz.sha1">sha1</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.tar.gz.asc">pgp</a></td>
+          </tr>
+          <tr>
+              <td><a href="[preferred]/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.zip">apache-rat-${project.version}-bin.zip</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.zip.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.zip.sha1">sha1</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-bin.zip.asc">pgp</a></td>
+          </tr>
+        </table>
+      </subsection>
+      <subsection name="Source">
+        <table>
+          <tr>
+              <td><a href="[preferred]/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.tar.bz2">apache-rat-${project.version}-src.tar.bz2</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.tar.bz2.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.tar.bz2.sha1">sha1</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.tar.bz2.asc">pgp</a></td>
+          </tr>
+          <tr>
+              <td><a href="[preferred]/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.tar.gz">apache-rat-${project.version}-src.tar.gz</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.tar.gz.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.tar.gz.sha1">sha1</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.tar.gz.asc">pgp</a></td>
+          </tr>
+          <tr>
+              <td><a href="[preferred]/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.zip">apache-rat-${project.version}-src.zip</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.zip.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.zip.sha1">sha1</a></td>
+              <td><a href="http://www.apache.org/dist/creadur/apache-rat-${project.version}/apache-rat-${project.version}-src.zip.asc">pgp</a></td>
+          </tr>
+        </table>
+      </subsection>
+    </section>
+    <section name="Archives">
+        <p>
+          Older releases can be obtained from the archives.
+        </p>
+        <ul>
+          <li class="download"><a href="[preferred]/creadur/">browse download area</a></li>
+          <li><a href="http://archive.apache.org/dist/creadur/">archives...</a></li>
+          <li><a href="http://archive.apache.org/dist/incubator/rat/">Incubator archives...</a></li>
+        </ul>
+    </section>
+  </body>
+</document>