sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1705197 - in /sis: branches/JDK8/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java site/trunk/content/book/book.css site/trunk/content/book/en/developer-guide.html site/trunk/content/book/fr/developer-guide.html
Date Thu, 24 Sep 2015 23:26:00 GMT
Author: desruisseaux
Date: Thu Sep 24 23:26:00 2015
New Revision: 1705197

URL: http://svn.apache.org/viewvc?rev=1705197&view=rev
Log:
Added section numbering.

Modified:
    sis/branches/JDK8/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java
    sis/site/trunk/content/book/book.css
    sis/site/trunk/content/book/en/developer-guide.html
    sis/site/trunk/content/book/fr/developer-guide.html

Modified: sis/branches/JDK8/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java?rev=1705197&r1=1705196&r2=1705197&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java
[UTF-8] (original)
+++ sis/branches/JDK8/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java
[UTF-8] Thu Sep 24 23:26:00 2015
@@ -16,6 +16,7 @@
  */
 package org.apache.sis.internal.book;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -98,6 +99,11 @@ public final class Assembler {
     private final Set<String> writtenAbbreviations = new HashSet<>();
 
     /**
+     * Section numbers, incremented when a new {@code <h1>}, {@code <h2>}, etc.
element is found.
+     */
+    private final int[] sectionNumbering = new int[9];
+
+    /**
      * Creates a new assembler for the given input and output files.
      *
      * @param  input the input file (e.g. {@code "site/book/en/body.html"}).
@@ -284,7 +290,10 @@ public final class Assembler {
                             if (c >= 1 && c <= 9) {
                                 writtenAbbreviations.clear();
                                 if (index) {
+                                    sectionNumbering[c-1]++;
+                                    Arrays.fill(sectionNumbering, c, sectionNumbering.length,
0);
                                     appendToTableOfContent(c, ((Element) node).getAttribute("id"),
node.getTextContent());
+                                    prependSectionNumber(c, node);  // Only after insertion
in TOC.
                                 }
                             }
                         }
@@ -300,6 +309,21 @@ public final class Assembler {
     }
 
     /**
+     * Prepend the current section numbers to the given node.
+     */
+    private void prependSectionNumber(final int level, final Node node) {
+        final Element number = document.createElement("span");
+        number.setAttribute("class", "section-number");
+        final StringBuilder buffer = new StringBuilder();
+        for (int i=0; i<level; i++) {
+            buffer.append(sectionNumbering[i]).append('.');
+        }
+        number.setTextContent(buffer.toString());
+        node.insertBefore(document.createTextNode(" "), node.getFirstChild());
+        node.insertBefore(number, node.getFirstChild());
+    }
+
+    /**
      * Appends the given header to the table of content.
      *
      * @param level level of the {@code <h1>}, {@code <h2>}, {@code <h3>},
etc. element found.

Modified: sis/site/trunk/content/book/book.css
URL: http://svn.apache.org/viewvc/sis/site/trunk/content/book/book.css?rev=1705197&r1=1705196&r2=1705197&view=diff
==============================================================================
--- sis/site/trunk/content/book/book.css (original)
+++ sis/site/trunk/content/book/book.css Thu Sep 24 23:26:00 2015
@@ -62,6 +62,10 @@ section > h4 {
   margin-top: 30px;
 }
 
+span.section-number {
+  margin-right: 9px;
+}
+
 p {
   text-align: justify;
 }

Modified: sis/site/trunk/content/book/en/developer-guide.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/content/book/en/developer-guide.html?rev=1705197&r1=1705196&r2=1705197&view=diff
==============================================================================
--- sis/site/trunk/content/book/en/developer-guide.html (original)
+++ sis/site/trunk/content/book/en/developer-guide.html Thu Sep 24 23:26:00 2015
@@ -67,7 +67,7 @@
 <main>
 <section>
 <header>
-<h1 id="Foreword">Foreward</h1>
+<h1 id="Foreword"><span class="section-number">1.</span> Foreward</h1>
 </header>
 <p>
 A geospatial information community is a collection of systems or individuals capable of exchanging
their geospatial data
@@ -112,7 +112,7 @@ but which risk to hit them before the en
 
 
 
-<h2 id="Standards">Standards and Norms</h2>
+<h2 id="Standards"><span class="section-number">1.1.</span> Standards and
Norms</h2>
 <p>
 Most standards used by Apache <abbr title="Spatial Information System">SIS</abbr>
have been devised by the <a href="http://www.opengeospatial.org">Open Geospatial Consortium</a>
(<abbr>OGC</abbr>),
 sometimes in collaboration with the <a href="http://www.iso.org">International Organization
for Standardization</a> (<abbr>ISO</abbr>).
@@ -220,7 +220,7 @@ Some working groups use other parallel s
 </article>
 
 
-<h3 id="SpecificationTypes">Different Types of Specifications</h3>
+<h3 id="SpecificationTypes"><span class="section-number">1.1.1.</span>
Different Types of Specifications</h3>
 <p>
 <abbr title="Open Geospatial Consortium">OGC</abbr> standards are specified in
several dozen documents.
 Each document outlines a service — for example, the transformation of coordinates.
@@ -434,7 +434,7 @@ Finally, GeoAPI packages will be introdu
 
 
 
-<h2 id="About">Conventions Used in This Guide</h2>
+<h2 id="About"><span class="section-number">1.2.</span> Conventions Used
in This Guide</h2>
 <p>
 The elements defined in a computer language, such as classes and methods in Java or elements
in an <abbr>XML</abbr> document,
 appear in monospaced font.
@@ -465,7 +465,7 @@ Text in gray boxes are for information p
 
 
 
-<h3 id="DefinitionOfTerms">Definition of Terms</h3>
+<h3 id="DefinitionOfTerms"><span class="section-number">1.2.1.</span> Definition
of Terms</h3>
 <p>
 Standards sometimes favour the application of certain generic terms to particular contexts,
 which may differ from the context in which other communities use these terms.
@@ -486,7 +486,7 @@ in order to reduce the risk of confusion
 </section>
 <section>
 <header>
-<h1 id="GeoAPI">GeoAPI</h1>
+<h1 id="GeoAPI"><span class="section-number">2.</span> GeoAPI</h1>
 </header>
 <p>
 The <a href="http://www.geoapi.org">GeoAPI</a> project offers a set of Java interfaces
for geospatial applications.
@@ -562,7 +562,7 @@ This version was the first to be deploye
 </article>
 
 
-<h2 id="SpecificationToInterfaces">Interface Specifications</h2>
+<h2 id="SpecificationToInterfaces"><span class="section-number">2.1.</span>
Interface Specifications</h2>
 <p>
 Since <abbr title="Open Geospatial Consortium">OGC</abbr> standards are defined
by well-tested software engineering methods,
 it is possible to automatically generate Java interfaces using relatively common tools.
@@ -675,7 +675,7 @@ the correspondence between these languag
 
 
 
-<h3 id="UML-annotation">Mapping Given by <code>@UML</code> Annotations</h3>
+<h3 id="UML-annotation"><span class="section-number">2.1.1.</span> Mapping
Given by <code>@UML</code> Annotations</h3>
 <p>
 For each class, method and constant defined by an <abbr title="Open Geospatial Consortium">OGC</abbr>
or <abbr title="International Organization for Standardization">ISO</abbr> standard,
 GeoAPI indicates its provenance using annotations defined in the <code class="GeoAPI">org.opengis.annotation</code>
package.
@@ -746,7 +746,7 @@ The class <code class="SIS">org.apache.s
 
 
 
-<h3 id="MappingToJDK">Implicit Mapping to Standard <abbr>JDK</abbr></h3>
+<h3 id="MappingToJDK"><span class="section-number">2.1.2.</span> Implicit
Mapping to Standard <abbr>JDK</abbr></h3>
 <p>
 Some classes and methods have neither an <code class="GeoAPI">@UML</code> annotation,
nor an entry in the <code class="GeoAPI">class-index.properties</code> file.
 They are either extensions of GeoAPI, or else types defined in other libraries, such as standard
<abbr title="Java Development Kit">JDK</abbr>.
@@ -931,7 +931,7 @@ creates new instances if the name provid
 
 
 
-<h2 id="ServiceLoader">Fetching an Implementation of the Interfaces</h2>
+<h2 id="ServiceLoader"><span class="section-number">2.2.</span> Fetching
an Implementation of the Interfaces</h2>
 <p>
 GeoAPI defines factories (<code class="GeoAPI">Factory</code>) that can create
implementations of interfaces.
 For example, <code class="GeoAPI">DatumFactory</code> provides methods that can
create instances which implement interfaces of the
@@ -966,7 +966,7 @@ for example when multiple libraries coex
 
 
 
-<h3 id="GeoAPI-simple">Defining Custom Implementations</h3>
+<h3 id="GeoAPI-simple"><span class="section-number">2.2.1.</span> Defining
Custom Implementations</h3>
 <p>
 Implementing GeoAPI oneself in order to meet very specific needs is not difficult.
 A developer might concentrate on a handful of interfaces among the hundreds available,
@@ -1031,7 +1031,7 @@ The following table lists a few possible
 
 
 
-<h2 id="GeoAPI-modules">GeoAPI Modules</h2>
+<h2 id="GeoAPI-modules"><span class="section-number">2.3.</span> GeoAPI
Modules</h2>
 <p>
 The GeoAPI project consists of a standardized part (<code class="GeoAPI">geoapi</code>)
 and an experimental part (<code class="GeoAPI">geoapi-pending</code>).
@@ -1086,7 +1086,7 @@ Apache <abbr>SIS</abbr> uses them to tes
 </p></li>
 </ul>
 
-<h3 id="GeoAPI-core">The Interfaces' Definition Modules</h3>
+<h3 id="GeoAPI-core"><span class="section-number">2.3.1.</span> The Interfaces'
Definition Modules</h3>
 <p>
 <code class="GeoAPI">geoapi</code> and <code class="GeoAPI">geoapi-pending</code>
modules
 provide interfaces derived from <abbr title="Unified Modeling Language">UML</abbr>
schemas of international standards.
@@ -1097,7 +1097,7 @@ However, we can get an overview of its c
 
 
 
-<h3 id="GeoAPI-conformance">The Conformance Tests Module</h3>
+<h3 id="GeoAPI-conformance"><span class="section-number">2.3.2.</span>
The Conformance Tests Module</h3>
 <p>
 The <code class="GeoAPI">geoapi-conformance</code> module provides <i>validators</i>,
a JUnit <i>test suite</i>, and <i>report generators</i>
 in the form of <abbr title="Hypertext Markup Language">HTML</abbr> pages.
@@ -1113,7 +1113,7 @@ since <code class="GeoAPI">geoapi-confor
 
 
 
-<h4 id="GeoAPI-validators">Instance Validations</h4>
+<h4 id="GeoAPI-validators"><span class="section-number">2.3.2.1.</span>
Instance Validations</h4>
 <p>
 GeoAPI can validate an instance of its interfaces by checking that certain constraints are
observed.
 Many constraints can not be expressed in the method signature. Those constraints
@@ -1199,7 +1199,7 @@ This approach requires the creation of a
 
 
 
-<h4 id="GeoAPI-tests">Executing Pre-defined Tests</h4>
+<h4 id="GeoAPI-tests"><span class="section-number">2.3.2.2.</span> Executing
Pre-defined Tests</h4>
 <p>
 JUnit tests are defined in the <code class="GeoAPI">org.opengis.test</code> sub-packages.
 All test classes bear a name ending in "<code>Test</code>".
@@ -1255,7 +1255,7 @@ However, this example adds a supplementa
 
 
 
-<h3 id="GeoAPI-examples">Example Modules</h3>
+<h3 id="GeoAPI-examples"><span class="section-number">2.3.3.</span> Example
Modules</h3>
 <p>
 The <code class="GeoAPI">geoapi-examples</code> module provides examples of simple
implementations.
 Many of these classes implement more than one interface at a time in order to provide a simpler
conceptual model.
@@ -1282,7 +1282,7 @@ while retaining the ability to switch ea
 </section>
 <section>
 <header>
-<h1 id="XML-ISO">Representing Objects in <abbr>XML</abbr></h1>
+<h1 id="XML-ISO"><span class="section-number">3.</span> Representing Objects
in <abbr>XML</abbr></h1>
 </header>
 <p>
 Objects defined by <abbr title="Open Geospatial Consortium">OGC</abbr>/<abbr
title="International Organization for Standardization">ISO</abbr> standards must
be able to communicate with remote machines via the Internet,
@@ -1374,7 +1374,7 @@ when the <abbr>XML</abbr> elements do no
 
 
 
-<h2 id="XML-ISO-19115">Representing Metadata According to <abbr title="International
Organization for Standardization">ISO</abbr> 19115-3</h2>
+<h2 id="XML-ISO-19115"><span class="section-number">3.1.</span> Representing
Metadata According to <abbr title="International Organization for Standardization">ISO</abbr>
19115-3</h2>
 <p>
 For each metadata class, there is an <abbr>XML</abbr> type with the same name
than in the abstract specification
 (for example, <code class="OGC">gmd:MD_Metadata</code> and <code class="OGC">gmd:CI_Citation</code>).
@@ -1475,7 +1475,7 @@ These attributes do not have dedicated J
 </aside>
 
 
-<h3 id="gco-id">Identification of Already-Defined Instances</h3>
+<h3 id="gco-id"><span class="section-number">3.1.1.</span> Identification
of Already-Defined Instances</h3>
 <p>
 The parent element may contain an <code class="OGC">id</code>, <code class="OGC">uuid</code>
or
 <code>xlink:href</code> attribute.
@@ -1559,7 +1559,7 @@ where all types of identifiers (not only
 
 
 
-<h3 id="nilReason">Representing Missing Values</h3>
+<h3 id="nilReason"><span class="section-number">3.1.2.</span> Representing
Missing Values</h3>
 <p>
 When a property is not defined, the corresponding GeoAPI method usually returns <code>null</code>.
 However, things become complicated when the missing property is a value considered mandatory
by <abbr title="International Organization for Standardization">ISO</abbr> 19115
standard.
@@ -1612,14 +1612,14 @@ But when a <code class="OGC">nilReason</
 </section>
 <section>
 <header>
-<h1 id="Utilities">Utility Classes and Methods</h1>
+<h1 id="Utilities"><span class="section-number">4.</span> Utility Classes
and Methods</h1>
 </header>
 <p>
 This chapter describes aspects of Apache <abbr title="Spatial Information System">SIS</abbr>
that apply to the entire library.
 Most of these utilities are not specific to spatial information systems.
 </p>
 
-<h2 id="ComparisonMode">Comparison Modes of Objects</h2>
+<h2 id="ComparisonMode"><span class="section-number">4.1.</span> Comparison
Modes of Objects</h2>
 <p>
 There are various opinions on how to implement Java standard's <code>Object.equals(Object)</code>
method.
 According to some, it should be possible to compare different implementations of the same
interface or base class.
@@ -1692,7 +1692,7 @@ regardless of whether <code>B</code> kno
 
 
 
-<h2 id="Internationalization">Internationalization</h2>
+<h2 id="Internationalization"><span class="section-number">4.2.</span>
Internationalization</h2>
 <p>
 In an architecture where a program executed on a server provides its data to multiple clients,
 the server's locale conventions are not necessarily the same as those of the clients.
@@ -1704,7 +1704,7 @@ or at the level of the objects that crea
 The approach used also determines whether it is possible to share the same instance of an
object for all languages.
 </p>
 
-<h3 id="LocalizedString">Distinct Character Sequences for Each Locale</h3>
+<h3 id="LocalizedString"><span class="section-number">4.2.1.</span> Distinct
Character Sequences for Each Locale</h3>
 <p>
 Some classes are only designed to function according to one locale convention at a time.
 This is of course true for the standard implementations of <code>java.text.Format</code>,
@@ -1745,7 +1745,7 @@ according to the conventions of a given
 
 
 
-<h3 id="InternationalString">Single instance for all supported locales</h3>
+<h3 id="InternationalString"><span class="section-number">4.2.2.</span>
Single instance for all supported locales</h3>
 <p>
 The <abbr title="Application Programming Interface">API</abbr> conventions defined
by <abbr title="Spatial Information System">SIS</abbr> or inherited by GeoAPI
favour the use of the
 <code class="GeoAPI">InternationalString</code> type when the value of a <code>String</code>
type would likely be localized.
@@ -1771,7 +1771,7 @@ so sharing a single instance becomes eve
 
 
 
-<h3 id="Locale.ROOT"><code>Locale.ROOT</code> Convention</h3>
+<h3 id="Locale.ROOT"><span class="section-number">4.2.3.</span> <code>Locale.ROOT</code>
Convention</h3>
 <p>
 All <abbr title="Spatial Information System">SIS</abbr> methods receiving or
returning the value of a <code>Locale</code> type accept the <code>Locale.ROOT</code>
value.
 This value is interpreted as specifying not to localize the text.
@@ -1797,7 +1797,7 @@ use of exponential notation and the abse
 
 
 
-<h3 id="UnicodePoint">Treatment of Characters</h3>
+<h3 id="UnicodePoint"><span class="section-number">4.2.4.</span> Treatment
of Characters</h3>
 <p>
 In Java, sequences of characters use UTF-16 encoding.
 There is a direct correspondence between the values of the <code>char</code>
type and the great majority of characters,
@@ -1844,7 +1844,7 @@ even if some may be present in the seque
 
 
 
-<h4 id="Whitespaces">The Interpretation of Blank Spaces</h4>
+<h4 id="Whitespaces"><span class="section-number">4.2.4.1.</span> The Interpretation
of Blank Spaces</h4>
 <p>
 Standard Java provides two methods for determining whether a character is a blank space:
 <code>Character.isWhitespace(…)</code> and <code>Character.isSpaceChar(…)</code>.
@@ -1877,7 +1877,7 @@ or the use of <code>isWhitespace(…)
 </section>
 <section>
 <header>
-<h1 id="Geometry">Geometries</h1>
+<h1 id="Geometry"><span class="section-number">5.</span> Geometries</h1>
 </header>
 <p>
 This chapter introduces a few aspects of <abbr title="International Organization for Standardization">ISO</abbr>
19107 standard (<i>Spatial schema</i>)
@@ -1886,7 +1886,7 @@ and the Apache <abbr title="Spatial Info
 
 
 
-<h2 id="Geometry-root">Base Classes</h2>
+<h2 id="Geometry-root"><span class="section-number">5.1.</span> Base Classes</h2>
 <p>
 Each geometric object is considered an infinite set of points.
 As a set, their most fundamental operations are of the same nature as the standard operations
of Java collections.
@@ -1908,7 +1908,7 @@ prefix (as prescribed in GeoAPI conventi
 
 
 
-<h3 id="DirectPosition">Direct Points and Positions</h3>
+<h3 id="DirectPosition"><span class="section-number">5.1.1.</span> Direct
Points and Positions</h3>
 <p>
 <abbr title="International Organization for Standardization">ISO</abbr> 19107
defines two types of structures to represent a point:
 <code class="OGC">GM_Point</code> and <code class="OGC">DirectPosition</code>.
@@ -1930,7 +1930,7 @@ or occasionally on <code class="GeoAPI">
 
 
 
-<h3 id="Envelope">Envelopes</h3>
+<h3 id="Envelope"><span class="section-number">5.1.2.</span> Envelopes</h3>
 <p>
 Envelopes store minimal and maximal coordinate values of a geometry.
 Envelopes are <em>not</em> geometries themselves; they are not infinite sets
of points (<code class="OGC">TransfiniteSet</code>).
@@ -1961,7 +1961,7 @@ The expressions <i>lower corner</i> and
 
 
 
-<h4 id="AntiMeridian">Envelopes that Cross the Antimeridian</h4>
+<h4 id="AntiMeridian"><span class="section-number">5.1.2.1.</span> Envelopes
that Cross the Antimeridian</h4>
 <p>
 Minimums and maximums are the values most often assigned to <code class="OGC">lowerCorner</code>
 and <code class="OGC">upperCorner</code>.
@@ -2054,7 +2054,7 @@ then it is guaranteed that the envelope
 </section>
 <section>
 <header>
-<h1 id="Coverage">Data Coverages</h1>
+<h1 id="Coverage"><span class="section-number">6.</span> Data Coverages</h1>
 </header>
 <p>
 Images, or <i>rasters</i>, are a particular case of a data structure called a
<i>coverage</i>.

Modified: sis/site/trunk/content/book/fr/developer-guide.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/content/book/fr/developer-guide.html?rev=1705197&r1=1705196&r2=1705197&view=diff
==============================================================================
--- sis/site/trunk/content/book/fr/developer-guide.html [UTF-8] (original)
+++ sis/site/trunk/content/book/fr/developer-guide.html [UTF-8] Thu Sep 24 23:26:00 2015
@@ -67,7 +67,7 @@
 <main>
 <section>
 <header>
-<h1 id="Foreword">Préface</h1>
+<h1 id="Foreword"><span class="section-number">1.</span> Préface</h1>
 </header>
 <p>
 Une communauté d’informations géospatiales est un ensemble de systèmes ou d’individus
capables d’échanger
@@ -115,7 +115,7 @@ mais qui risquent de le rattraper avant
 
 
 
-<h2 id="Standards">Standards et normes</h2>
+<h2 id="Standards"><span class="section-number">1.1.</span> Standards et
normes</h2>
 <p>
 La majorité des standards utilisés par Apache <abbr title="Spatial Information System">SIS</abbr>
ont été élaborés
 par le <a href="http://www.opengeospatial.org">consortium <i>Open Geospatial</i></a>
(<abbr>OGC</abbr>),
@@ -236,7 +236,7 @@ hébergés en dehors des structures de l
 
 
 
-<h3 id="SpecificationTypes">Les différents types de spécifications</h3>
+<h3 id="SpecificationTypes"><span class="section-number">1.1.1.</span>
Les différents types de spécifications</h3>
 <p>
 Les standards <abbr title="Open Geospatial Consortium">OGC</abbr> sont spécifiés
dans plusieurs dizaines de documents.
 Chaque document élabore un service, par exemple les transformations de coordonnées.
@@ -463,7 +463,7 @@ Enfin, les paquets GeoAPI seront introdu
 
 
 
-<h2 id="About">Conventions utilisées dans ce guide</h2>
+<h2 id="About"><span class="section-number">1.2.</span> Conventions utilisées
dans ce guide</h2>
 <p>
 Les éléments définis dans un langage informatique, tels que les classes ou méthodes en
Java
 ainsi que les éléments dans un fichier <abbr>XML</abbr>, apparaissent avec
une police de caractères mono-espacée.
@@ -496,7 +496,7 @@ Le lecteur peut ignorer ces boîtes gris
 
 
 
-<h3 id="DefinitionOfTerms">Définitions des termes</h3>
+<h3 id="DefinitionOfTerms"><span class="section-number">1.2.1.</span> Définitions
des termes</h3>
 <p>
 Les standards privilégient parfois l’application de certains termes génériques à des
contextes particuliers,
 qui peuvent différer du contexte dans lequel d’autres communautés emploient ces termes.
@@ -517,7 +517,7 @@ Mais un soin particulier doit être appo
 </section>
 <section>
 <header>
-<h1 id="GeoAPI">GeoAPI</h1>
+<h1 id="GeoAPI"><span class="section-number">2.</span> GeoAPI</h1>
 </header>
 <p>
 Le projet <a href="http://www.geoapi.org">GeoAPI</a> offre un ensemble d’interfaces
Java pour les applications géo-spatiales.
@@ -596,7 +596,7 @@ Cette version a été la première à ê
 </article>
 
 
-<h2 id="SpecificationToInterfaces">Des spécifications aux interfaces</h2>
+<h2 id="SpecificationToInterfaces"><span class="section-number">2.1.</span>
Des spécifications aux interfaces</h2>
 <p>
 Les standards de l’<abbr title="Open Geospatial Consortium">OGC</abbr> étant
définis par des moyens bien éprouvés en génie logiciel,
 il est possible de générer automatiquement des interfaces Java à l’aide d’outils relativement
répandus.
@@ -711,7 +711,7 @@ et des fichiers de propriétés, décrit
 
 
 
-<h3 id="UML-annotation">Correspondances explicitées par l’annotation <code>@UML</code></h3>
+<h3 id="UML-annotation"><span class="section-number">2.1.1.</span> Correspondances
explicitées par l’annotation <code>@UML</code></h3>
 <p>
 Pour chaque classe, méthode et constante définie à partir d’un standard <abbr title="Open
Geospatial Consortium">OGC</abbr> ou <abbr title="International Organization for
Standardization">ISO</abbr>,
 GeoAPI indique sa provenance à l’aide d’annotations définies dans le paquet <code
class="GeoAPI">org.opengis.annotation</code>.
@@ -787,7 +787,7 @@ La classe <code class="SIS">org.apache.s
 
 
 
-<h3 id="MappingToJDK">Correspondances implicites avec le <abbr>JDK</abbr>
standard</h3>
+<h3 id="MappingToJDK"><span class="section-number">2.1.2.</span> Correspondances
implicites avec le <abbr>JDK</abbr> standard</h3>
 <p>
 Certaines classes et méthodes n’ont ni annotation <code class="GeoAPI">@UML</code>,
 ni entrée dans le fichier <code class="GeoAPI">class-index.properties</code>.
@@ -974,7 +974,7 @@ contrairement à celle de <code>Enum</co
 
 
 
-<h2 id="ServiceLoader">Obtenir une implémentation des interfaces</h2>
+<h2 id="ServiceLoader"><span class="section-number">2.2.</span> Obtenir
une implémentation des interfaces</h2>
 <p>
 GeoAPI définit des fabriques (<code class="GeoAPI">Factory</code>) permettant
de créer des implémentations de ses interfaces.
 Par exemple <code class="GeoAPI">DatumFactory</code> fournit des méthodes permettant
de créer des instances
@@ -1009,7 +1009,7 @@ par exemple lorsque plusieurs bibliothè
 
 
 
-<h3 id="GeoAPI-simple">Fournir sa propre implémentation</h3>
+<h3 id="GeoAPI-simple"><span class="section-number">2.2.1.</span> Fournir
sa propre implémentation</h3>
 <p>
 Implémenter soi-même GeoAPI n’est pas si difficile si on se contente de besoins bien
précis.
 Un développeur peut se concentrer sur une poignée d’interfaces parmi les centaines de
disponibles,
@@ -1075,7 +1075,7 @@ Le tableau suivant énumère quelques co
 
 
 
-<h2 id="GeoAPI-modules">Les modules de GeoAPI</h2>
+<h2 id="GeoAPI-modules"><span class="section-number">2.3.</span> Les modules
de GeoAPI</h2>
 <p>
 Le projet GeoAPI est composé d’une partie standardisée (<code class="GeoAPI">geoapi</code>)
et
 d’une partie expérimentale (<code class="GeoAPI">geoapi-pending</code>). Ces
deux parties étant
@@ -1139,7 +1139,7 @@ un <i>add-in</i> pour les suites bureaut
 </p></li>
 </ul>
 
-<h3 id="GeoAPI-core">Les modules de définition des interfaces</h3>
+<h3 id="GeoAPI-core"><span class="section-number">2.3.1.</span> Les modules
de définition des interfaces</h3>
 <p>
 Les modules <code class="GeoAPI">geoapi</code> et <code class="GeoAPI">geoapi-pending</code>
 fournissent les interfaces dérivées des schémas <abbr title="Unified Modeling Language">UML</abbr>
des standards internationaux.
@@ -1150,7 +1150,7 @@ On peut toutefois avoir un aperçu de so
 
 
 
-<h3 id="GeoAPI-conformance">Le module de tests de conformité</h3>
+<h3 id="GeoAPI-conformance"><span class="section-number">2.3.2.</span>
Le module de tests de conformité</h3>
 <p>
 Le module <code class="GeoAPI">geoapi-conformance</code> fournit des <i>validateurs</i>,
une <i>suite de tests</i> JUnit
 et des <i>générateurs de rapports</i> sous forme de pages <abbr title="Hypertext
Markup Language">HTML</abbr>.
@@ -1166,7 +1166,7 @@ a lui-même sa propre suite de tests et
 
 
 
-<h4 id="GeoAPI-validators">Validations des instances</h4>
+<h4 id="GeoAPI-validators"><span class="section-number">2.3.2.1.</span>
Validations des instances</h4>
 <p>
 GeoAPI peut valider une instance de ses interfaces en vérifiant que certaines contraintes
sont respectées.
 Certaines contraintes ne peuvent pas être exprimées dans la signature de la méthode. Ces
contraintes sont
@@ -1256,7 +1256,7 @@ Cette approche nécessite de créer une
 
 
 
-<h4 id="GeoAPI-tests">Exécution des tests pré-définis</h4>
+<h4 id="GeoAPI-tests"><span class="section-number">2.3.2.2.</span> Exécution
des tests pré-définis</h4>
 <p>
 Des classes de tests JUnit sont définies dans des sous-paquets de <code class="GeoAPI">org.opengis.test</code>.
 Toutes les classes de tests portent un nom se terminant en "<code>Test</code>".
@@ -1313,7 +1313,7 @@ qui sera exécutée après chacun des te
 
 
 
-<h3 id="GeoAPI-examples">Les modules d’exemples</h3>
+<h3 id="GeoAPI-examples"><span class="section-number">2.3.3.</span> Les
modules d’exemples</h3>
 <p>
 Le module <code class="GeoAPI">geoapi-examples</code> fournit des exemples d’implémentations
simples.
 Plusieurs de ces classes implémentent plus d’une interface à la fois afin de proposer
un modèle conceptuel plus simple.
@@ -1341,7 +1341,7 @@ tout en se gardant la possibilité de ba
 </section>
 <section>
 <header>
-<h1 id="XML-ISO">Représentation des objets en <abbr>XML</abbr></h1>
+<h1 id="XML-ISO"><span class="section-number">3.</span> Représentation
des objets en <abbr>XML</abbr></h1>
 </header>
 <p>
 Les objets définis par les standards <abbr title="Open Geospatial Consortium">OGC</abbr>/<abbr
title="International Organization for Standardization">ISO</abbr> doivent pouvoir
être échangés sur internet
@@ -1436,7 +1436,7 @@ Les <i>features</i> en sont un exemple,
 
 
 
-<h2 id="XML-ISO-19115">Représentation des méta-données selon <abbr title="International
Organization for Standardization">ISO</abbr> 19115-3</h2>
+<h2 id="XML-ISO-19115"><span class="section-number">3.1.</span> Représentation
des méta-données selon <abbr title="International Organization for Standardization">ISO</abbr>
19115-3</h2>
 <p>
 Pour chaque classe de méta-donnée, il existe un type <abbr>XML</abbr> portant
le même nom que dans la spécification abstraite
 (par exemple <code class="OGC">gmd:MD_Metadata</code> et <code class="OGC">gmd:CI_Citation</code>).
@@ -1541,7 +1541,7 @@ Ces attributs n’ont pas de méthodes J
 </aside>
 
 
-<h3 id="gco-id">Identification d’instances déjà définies</h3>
+<h3 id="gco-id"><span class="section-number">3.1.1.</span> Identification
d’instances déjà définies</h3>
 <p>
 L’élément englobant peut contenir un attribut <code class="OGC">id</code>,
 <code class="OGC">uuid</code> ou <code>xlink:href</code>.
@@ -1626,7 +1626,7 @@ où peuvent être manipulés tous types
 
 
 
-<h3 id="nilReason">Représentation de valeurs manquantes</h3>
+<h3 id="nilReason"><span class="section-number">3.1.2.</span> Représentation
de valeurs manquantes</h3>
 <p>
 Lorsqu’une propriété n’est pas définie, la méthode correspondante de GeoAPI retourne
généralement <code>null</code>.
 Toutefois les choses se compliquent lorsque la propriété manquante est une valeur considérée
comme obligatoire par le standard <abbr title="International Organization for Standardization">ISO</abbr>
19115.
@@ -1680,14 +1680,14 @@ et dont la méthode <code class="SIS">ge
 </section>
 <section>
 <header>
-<h1 id="Utilities">Classes et méthodes utilitaires</h1>
+<h1 id="Utilities"><span class="section-number">4.</span> Classes et méthodes
utilitaires</h1>
 </header>
 <p>
 Ce chapitre décrit des aspects de Apache <abbr title="Spatial Information System">SIS</abbr>
qui s’appliquent à l’ensemble de la bibliothèque.
 La plupart de ces utilitaires ne sont pas spécifiques aux systèmes d’information spatiales.
 </p>
 
-<h2 id="ComparisonMode">Modes de comparaisons des objets</h2>
+<h2 id="ComparisonMode"><span class="section-number">4.1.</span> Modes
de comparaisons des objets</h2>
 <p>
 Il existe différentes opinions sur la façon d’implémenter la méthode <code>Object.equals(Object)</code>
du Java standard.
 Selon certains, il doit être possible de comparer différentes implémentations d’une
même interface ou classe de base.
@@ -1757,7 +1757,7 @@ sans se soucier de savoir si <code>B</co
 
 
 
-<h2 id="Internationalization">Internationalisation</h2>
+<h2 id="Internationalization"><span class="section-number">4.2.</span>
Internationalisation</h2>
 <p>
 Dans une architecture où un programme exécuté sur un serveur fournit ses données à plusieurs
clients,
 les conventions locales du serveur ne sont pas nécessairement les mêmes que celles des
clients.
@@ -1769,7 +1769,7 @@ ou au niveau des objets produisant les m
 possible de partager une même instance d’un objet pour toutes les langues.
 </p>
 
-<h3 id="LocalizedString">Chaînes de caractères distinctes pour chaque conventions
locales</h3>
+<h3 id="LocalizedString"><span class="section-number">4.2.1.</span> Chaînes
de caractères distinctes pour chaque conventions locales</h3>
 <p>
 Certaines classes ne sont conçues que pour fonctionner selon une convention locale à la
fois.
 C’est évidemment le cas des implémentations standards de <code>java.text.Format</code>,
@@ -1811,7 +1811,7 @@ lorsque cette information est disponible
 
 
 
-<h3 id="InternationalString">Instance unique pour toutes les conventions locales</h3>
+<h3 id="InternationalString"><span class="section-number">4.2.2.</span>
Instance unique pour toutes les conventions locales</h3>
 <p>
 Les <abbr title="Application Programming Interface">API</abbr> définit par <abbr
title="Spatial Information System">SIS</abbr> ou hérités de GeoAPI privilégient
plutôt l’utilisation du type
 <code class="GeoAPI">InternationalString</code> là où une valeur de type <code>String</code>
serait susceptible d’être localisée.
@@ -1839,7 +1839,7 @@ pour des raisons d’économie de mémoi
 
 
 
-<h3 id="Locale.ROOT">Convention <code>Locale.ROOT</code></h3>
+<h3 id="Locale.ROOT"><span class="section-number">4.2.3.</span> Convention
<code>Locale.ROOT</code></h3>
 <p>
 Toutes les méthodes <abbr title="Spatial Information System">SIS</abbr> recevant
ou retournant une valeur de type <code>Locale</code>
 acceptent la valeur <code>Locale.ROOT</code>. Cette valeur est interprétée
comme signifiant de ne pas localiser le texte.
@@ -1864,7 +1864,7 @@ Il en résulte des différences dans le
 
 
 
-<h3 id="UnicodePoint">Traitement des caractères</h3>
+<h3 id="UnicodePoint"><span class="section-number">4.2.4.</span> Traitement
des caractères</h3>
 <p>
 Les chaînes de caractères en Java utilisent l’encodage UTF-16. Il existe une correspondance
directe
 entre les valeurs de type <code>char</code> et la très grande majorité des
caractères, ce
@@ -1912,7 +1912,7 @@ pas des caractères supplémentaires, m�
 
 
 
-<h4 id="Whitespaces">Interprétation des espaces blancs</h4>
+<h4 id="Whitespaces"><span class="section-number">4.2.4.1.</span> Interprétation
des espaces blancs</h4>
 <p>
 Le Java standard fournit deux méthodes pour déterminer si un caractères est un espace
blanc:
 <code>Character.isWhitespace(…)</code> et <code>Character.isSpaceChar(…)</code>.
@@ -1948,7 +1948,7 @@ de la bibliothèque <abbr>SIS</abbr>.
 </section>
 <section>
 <header>
-<h1 id="Geometry">Géométries</h1>
+<h1 id="Geometry"><span class="section-number">5.</span> Géométries</h1>
 </header>
 <p>
 Ce chapitre introduit quelques aspects de la norme <abbr title="International Organization
for Standardization">ISO</abbr> 19107 (<i>Spatial schema</i>)
@@ -1957,7 +1957,7 @@ et les classes de Apache <abbr title="Sp
 
 
 
-<h2 id="Geometry-root">Classes de base</h2>
+<h2 id="Geometry-root"><span class="section-number">5.1.</span> Classes
de base</h2>
 <p>
 Chaque objet géométrique est considéré comme un ensemble infini de points.
 En tant qu’ensemble, leurs opérations les plus fondamentales sont de même nature que
les opérations standards des collections du Java.
@@ -1978,7 +1978,7 @@ Les interfaces de GeoAPI utilisent plut�
 
 
 
-<h3 id="DirectPosition">Points et positions directes</h3>
+<h3 id="DirectPosition"><span class="section-number">5.1.1.</span> Points
et positions directes</h3>
 <p>
 <abbr title="International Organization for Standardization">ISO</abbr> 19107
définit deux types de structures pour représenter un point:
 <code class="OGC">GM_Point</code> et <code class="OGC">DirectPosition</code>.
@@ -2002,7 +2002,7 @@ Dans la pratique, la grande majorité de
 
 
 
-<h3 id="Envelope">Enveloppes</h3>
+<h3 id="Envelope"><span class="section-number">5.1.2.</span> Enveloppes</h3>
 <p>
 Les enveloppes stockent les valeurs minimales et maximales des coordonnées d’une géométrie.
 Les enveloppes <em>ne sont pas</em> elles-mêmes des géométries; ce ne sont
pas des ensembles
@@ -2035,7 +2035,7 @@ doivent être comprises au sens mathéma
 
 
 
-<h4 id="AntiMeridian">Enveloppes traversant l’antiméridien</h4>
+<h4 id="AntiMeridian"><span class="section-number">5.1.2.1.</span> Enveloppes
traversant l’antiméridien</h4>
 <p>
 Les minimums et maximums sont les valeurs les plus souvent assignées aux <code class="OGC">lowerCorner</code>
 et <code class="OGC">upperCorner</code>. Mais les choses se compliquent dans
le cas d’une enveloppe traversant
@@ -2129,7 +2129,7 @@ est vrai, alors il est garanti que l’e
 </section>
 <section>
 <header>
-<h1 id="Coverage">Couvertures de données (<i>Coverages</i>)</h1>
+<h1 id="Coverage"><span class="section-number">6.</span> Couvertures de
données (<i>Coverages</i>)</h1>
 </header>
 <p>
 Les images, souvent nommées <i>rasters</i> en anglais, sont des cas particuliers



Mime
View raw message