<!DOCTYPE html>


<!--
 | Generated by Apache Maven Doxia Site Renderer 2.0.0 from src/site/markdown/development/document_name.md at 2025-09-23
 | Rendered using Apache Maven Fluido Skin 2.1.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0" />
    <title>Document Names – Apache RAT™ Core</title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-2.1.0.min.css" />
    <link rel="stylesheet" href="../css/site.css" />
    <link rel="stylesheet" href="../css/print.css" media="print" />
    <script src="../js/apache-maven-fluido-2.1.0.min.js"></script>
<link href="https://creadur.apache.org/font/matesc.css" type="text/css" rel="stylesheet" />
  </head>
  <body>
    <a class="github-fork-ribbon right-top" href="https://github.com/apache/creadur-rat" data-ribbon="Fork me on GitHub">Fork me on GitHub</a>
    <div class="container-fluid container-fluid-top">
      <header>
        <div id="banner">
          <div class="pull-left"><div id="bannerLeft"><h1><a href="https://www.apache.org/"><img src="https://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" /> Apache RAT</a></h1></div></div>
          <div class="pull-right"></div>
          <div class="clear"><hr/></div>
        </div>

        <div id="breadcrumbs">
          <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2025-09-23<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 0.17-SNAPSHOT<span class="divider">|</span></li>
      <li><a href="https://www.apache.org/">Apache</a><span class="divider">/</span></li>
      <li><a href="../../../">Creadur</a><span class="divider">/</span></li>
      <li><a href="../../">RAT</a><span class="divider">/</span></li>
      <li><a href="../index.html">Apache RAT™ Core</a><span class="divider">/</span></li>
    <li class="active">Document Names</li>
          </ul>
        </div>
      </header>
      <div class="row-fluid">
        <header id="leftColumn" class="span2">
          <nav class="well sidebar-nav">
  <ul class="nav nav-list">
   <li class="nav-header">Parent Project</li>
    <li><a href="../../index.html">Apache Creadur RAT</a></li>
   <li class="nav-header">Project Documentation</li>
    <li><a href="../project-info.html"><span class="icon-chevron-right"></span>Project Information</a></li>
    <li><a href="../project-reports.html"><span class="icon-chevron-right"></span>Project Reports</a></li>
   <li class="nav-header">Apache RAT™</li>
    <li><a href="../../index.html">Introducing RAT</a></li>
    <li><a href="../../download_rat.cgi">Downloads</a></li>
    <li><a href="../../changes.html">Changes</a></li>
   <li class="nav-header">RAT from the Command Line</li>
    <li><a href="../../apache-rat/index.html">Command Line Introduction</a></li>
    <li><a href="../../apache-rat/cli_options.html">Command Line Options</a></li>
    <li><a href="../../apache-rat/env_vars.html">Environment Variables</a></li>
    <li><a href="../../apache-rat-core/exclusion_expression.html">Exclusion Expressions</a></li>
    <li><a href="../../apache-rat/standard_collections.html">Standard Collections</a></li>
   <li class="nav-header">RAT from Ant</li>
    <li><a href="../../apache-rat-tasks/index.html">Ant Task Introduction</a></li>
    <li><a href="../../apache-rat-tasks/ant_options.html">Ant Elements and Attributes</a></li>
   <li class="nav-header">RAT from Maven</li>
    <li><a href="../../apache-rat-plugin/index.html">Maven Plugin Introduction</a></li>
    <li><a href="../../apache-rat-plugin/mvn_options.html">Maven Options</a></li>
    <li><a href="../../apache-rat-plugin/examples/index.html">Maven Examples</a></li>
   <li class="nav-header">Configuring RAT</li>
    <li><a href="../../apache-rat/name_xref.html">Option Name Cross Reference</a></li>
    <li><a href="../../apache-rat/default_licenses.html">Default Licenses</a></li>
    <li><a href="../../apache-rat/default_matchers.html">Default Matchers</a></li>
    <li><a href="../../license_def.html">Defining New Licenses</a></li>
    <li><a href="../../apache-rat/xsd.html">Configuration XSD</a></li>
    <li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/default.xml">Default Configuration</a></li>
    <li><a href="../../apache-rat/detecting_generated_files.html">Detecting Generated Files</a></li>
   <li class="nav-header">RAT Output</li>
    <li><a href="../../apache-rat/output/example.html">Standard Output Example</a></li>
    <li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/rat-report.xsd">Output XSD</a></li>
    <li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl">XSLT - Plain text</a></li>
    <li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/missing-headers.xsl">XSLT - Missing headers list</a></li>
    <li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl">XSLT - Unapproved licenses list</a></li>
   <li class="nav-header">Developing RAT</li>
    <li><a href="../../architecture.html">Architecture</a></li>
    <li><a href="../../apidocs/index.html">Javadocs</a></li>
    <li><a href="../../apache-rat-core/development/document_name.html">Document Name concept</a></li>
    <li><a href="../../development/ui_implementation.html">UI Development</a></li>
    <li><a href="../../apache-rat-core/development/write_file_processor.html">Writing a File Processor</a></li>
   <li class="nav-header">Apache Creadur™</li>
    <li><a href="../../..">Creadur Project Home</a></li>
    <li><a href="../../../tentacles">Apache Tentacles</a></li>
    <li><a href="../../../whisker">Apache Whisker</a></li>
    <li><a href="https://www.apache.org/security/">Security</a></li>
    <li><a href="https://www.apache.org/licenses/">License</a></li>
    <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy</a></li>
    <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
    <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
   <li class="nav-header">The Apache Software Foundation</li>
    <li><a href="https://www.apache.org/foundation">About the Foundation</a></li>
    <li><a href="https://projects.apache.org">The projects</a></li>
    <li><a href="https://people.apache.org">The people</a></li>
    <li><a href="https://www.apache.org/foundation/how-it-works.html">How we work</a></li>
    <li><a href="https://www.apache.org/foundation/how-it-works.html#history">Our history</a></li>
    <li><a href="https://blogs.apache.org/foundation/">News</a></li>
   <li class="nav-header">Contribute</li>
    <li><a href="https://www.apache.org/foundation/getinvolved.html">Get Involved</a></li>
   <li class="nav-header">Committer Info</li>
    <li><a href="https://www.apache.org/dev/committers.html">ASF Committers&apos; FAQ</a></li>
    <li><a href="https://www.apache.org/dev/new-committers-guide.html">New Committers Guide</a></li>
    <li><a href="https://gitbox.apache.org/repos/asf/creadur-site/blob/asf-site/README.md">How to publish this site</a></li>
    <li><a href="https://community.apache.org/">Community</a></li>
    <li><a href="https://www.apache.org/legal/">Legal</a></li>
    <li><a href="https://www.apache.org/foundation/marks/">Branding</a></li>
    <li><a href="https://www.apache.org/press/">Media Relations</a></li>
  </ul>
          </nav>
          <div class="well sidebar-nav">
            <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
<a href="https://maven.apache.org/" class="builtBy"><img class="builtBy" src="https://maven.apache.org/images/logos/maven-feather.png" /> Maven</a>
            </div>
          </div>
        </header>
        <main id="bodyColumn" class="span10">
<!---
 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.
-->
<section><a id="Document_Names"></a>
<h1>Document Names</h1>
<p>RAT must be able to distinguish files in multiple file systems; most notably Windows&#xae; and Linux&#xae;. In addition, we want RAT to produce reports that are comparable across the platforms. To achieve these goals the <code>org.apache.rat.document.impl.DocumentName</code> class was developed.</p>
<p>All documents in the RAT system have a base directory. Different UIs will set the base directory differently. For example:</p>
<ul>

<li>The command line sets the base directory to the directory or archive  specified on the command line.</li>
<li>Ant UI sets the base directory to the directory where the <code>build.xml</code> file is located.</li>
<li>Maven UI sets the base directory to the directory where the project is located.</li>
<li>Other UIs may define the base directory as it fits the underlying build system.</li>
</ul>
<p>When reporting a document RAT will report the path from the base directory to the file; the path relative to the base directory.</p>
<p>The <code>DocumentName</code> comprises:</p>
<ul>

<li><code>name</code>: The fully qualified file name as provided by the underlying file system.</li>
<li><code>baseName</code>: The fully qualified base directory name as provided by the underlying file system.</li>
<li><code>dirSeparator</code>: The directory separator string used by the underlying file system.</li>
<li><code>isCaseSensitive</code>: The case-sensitive flag for the underlying file system.</li>
</ul>
<p>The class <code>DocumentName</code> also provides a static value that identifies the case-sensitivity of the underlying operating system.</p>
<p><code>DocumentName</code> also provides methods to:</p>
<ul>

<li>Resolve a name: This method takes a path relative to the DocumentName and creates a new DocumentName instance with the same baseName, dirSeparator and case-sensitivity flag is the original DocumentName.</li>
<li>Localize a name: This method returns the path from the baseName to the file. It utilizes the dirSeparator to separate the directories.</li>
<li>Localize with separator: This method returns the path from the baseName to the file but utilizes a specified string as the directory separator.</li>
<li>Short name: This method returns the last segment of the name.</li>
</ul><section><a id="Notes"></a>
<h2>Notes</h2>
<ul>

<li><code>DocumentName</code> implements
<ul>

<li><code>equals()</code>,</li>
<li><code>hashCode()</code></li>
<li><code>Comparable&lt;DocumentName&gt;</code>.</li>
</ul></li>
<li>Base directories within the system are identified with DocumentNames that have the <code>name</code> and <code>baseName</code> set to the same underlying file system value.</li>
</ul></section></section>        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
Copyright &copy; 2016-2025 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
      Apache Creadur, Creadur, Apache RAT, Apache Tentacles, Apache Whisker, Apache and the ASF 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.
        </div>
      </div>
    </footer>
  </body>
</html>
