sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1490723 [1/2] - in /sis/trunk: ./ core/sis-build-helper/src/main/java/org/apache/sis/internal/taglet/ core/sis-build-helper/src/site/apt/ core/sis-metadata/src/main/java/org/apache/sis/metadata/ core/sis-metadata/src/main/java/org/apache/s...
Date Fri, 07 Jun 2013 16:54:17 GMT
Author: desruisseaux
Date: Fri Jun  7 16:54:16 2013
New Revision: 1490723

URL: http://svn.apache.org/r1490723
Log:
Merge from the JDK6 branch.

Added:
    sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/taglet/Example.java
      - copied unchanged from r1490719, sis/branches/JDK6/core/sis-build-helper/src/main/java/org/apache/sis/internal/taglet/Example.java
    sis/trunk/core/sis-utility/src/test/java/org/apache/sis/internal/test/TestUtilitiesTest.java
      - copied unchanged from r1490719, sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/internal/test/TestUtilitiesTest.java
    sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/index/GeoHashCoder.java
      - copied unchanged from r1490719, sis/branches/JDK6/storage/sis-storage/src/main/java/org/apache/sis/index/GeoHashCoder.java
    sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java
      - copied unchanged from r1490719, sis/branches/JDK6/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java
    sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/index/GeoHashCoderTest.java
      - copied unchanged from r1490719, sis/branches/JDK6/storage/sis-storage/src/test/java/org/apache/sis/index/GeoHashCoderTest.java
    sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/storage/StorageConnectorTest.java
      - copied unchanged from r1490719, sis/branches/JDK6/storage/sis-storage/src/test/java/org/apache/sis/storage/StorageConnectorTest.java
Removed:
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/util/
    sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/util/
    sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractDataStore.java
    sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreConnection.java
    sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/storage/DataStoreConnectionTest.java
Modified:
    sis/trunk/   (props changed)
    sis/trunk/core/sis-build-helper/src/site/apt/index.apt
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java
    sis/trunk/core/sis-metadata/src/site/apt/index.apt
    sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java
    sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
    sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/jdk7/JDK7.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/io/CompoundFormat.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/FunctionProperty.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Deprecable.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverter.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTable.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/LoggerAdapter.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListener.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/package-info.java
    sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java
    sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java
    sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
    sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java
    sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java
    sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java
    sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java
    sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java
    sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/test/suite/NetcdfTestSuite.java
    sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelDataInput.java
    sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java
    sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
    sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/package-info.java
    sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/test/suite/StorageTestSuite.java

Propchange: sis/trunk/
------------------------------------------------------------------------------
  Merged /sis/branches/JDK7:r1490193-1490712
  Merged /sis/branches/JDK6:r1490194-1490719

Modified: sis/trunk/core/sis-build-helper/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-build-helper/src/site/apt/index.apt?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-build-helper/src/site/apt/index.apt [UTF-8] (original)
+++ sis/trunk/core/sis-build-helper/src/site/apt/index.apt [UTF-8] Fri Jun  7 16:54:16 2013
@@ -33,6 +33,9 @@ Building Apache SIS
 | <<<\{@note\}>>>      | An inline taglet for a remark that readers can safely ignore.                             |
 |                      | Notes appear as indented paragraphs with a smaller font.                                  |
 *----------------------+-------------------------------------------------------------------------------------------+
+| <<<\{@example\}>>>   | An inline taglet for an example.                                                          |
+|                      | Examples appear as indented paragraphs with a smaller font.                               |
+*----------------------+-------------------------------------------------------------------------------------------+
 | <<<\{@preformat\}>>> | An inline taglet for pre-formatted text. The first word inside the taglet shall be one of |
 |                      | <<<java>>>, <<<xml>>>, <<<sql>>>, <<<wkt>>>, <<<text>>>, <<<math>>> or <<<shell>>>.       |
 *----------------------+-------------------------------------------------------------------------------------------+

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -70,6 +70,8 @@ import org.apache.sis.util.logging.Loggi
  * @since   0.3 (derived from geotk-2.4)
  * @version 0.3
  * @module
+ *
+ * @see MetadataStandard
  */
 public abstract class AbstractMetadata implements LenientComparable {
     /**

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -83,6 +83,8 @@ import static org.apache.sis.util.Argume
  * @since   0.3 (derived from geotk-2.4)
  * @version 0.3
  * @module
+ *
+ * @see AbstractMetadata
  */
 @ThreadSafe
 public class MetadataStandard implements Serializable {

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -17,6 +17,8 @@
 package org.apache.sis.metadata;
 
 import java.util.List;
+import java.util.Locale;
+import java.util.TimeZone;
 import java.text.Format;
 import java.io.Serializable;
 import java.io.IOException;
@@ -127,7 +129,8 @@ final class TreeTableView implements Tre
     public String toString() {
         synchronized (TreeTableView.class) {
             if (format == null) {
-                final TreeTableFormat f = new TreeTableFormat(null, null);
+                final TreeTableFormat f = new TreeTableFormat(
+                        Locale.getDefault(), TimeZone.getDefault());
                 f.setColumns(TableColumn.NAME, TableColumn.VALUE);
                 format = f;
             }

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -23,6 +23,9 @@
  * {@section Overview}
  * For a global overview of metadata in SIS, see the
  * <a href="{@docRoot}/../sis-metadata/index.html">Metadata page on the project web site</a>.
+ * For some explanation about how to use various ISO 19115 elements for scientific dataset, the
+ * <a href="https://geo-ide.noaa.gov/wiki/index.php?title=Category:ISO_19115">NOAA wiki page</a>
+ * is a good source of information.
  *
  * <table class="sis"><tr>
  *   <th>Class hierarchy</th>

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -19,22 +19,107 @@
  * Root package for various metadata implementations. For a global overview of metadata in SIS,
  * see the <a href="{@docRoot}/../sis-metadata/index.html">Metadata page on the project web site</a>.
  *
- * <p>This root package can work with different {@linkplain org.apache.sis.metadata.MetadataStandard
- * metadata standards}, not just ISO 19115. In this package, a metadata standard is defined by a
- * collection of Java interfaces defined in a specific package and its sub-packages. For example
- * the {@linkplain org.apache.sis.metadata.MetadataStandard#ISO_19115 ISO 19115} standard is
- * defined by the interfaces in the {@link org.opengis.metadata} package and sub-packages.
- * This {@code org.apache.sis.metadata} package uses Java reflection for performing basic
- * operations like comparisons and copies.</p>
- *
- * <p>All metadata can be view {@linkplain org.apache.sis.metadata.AbstractMetadata#asMap() as a map}
- * for use with Java collections, or {@linkplain org.apache.sis.metadata.AbstractMetadata#asTreeTable()
- * as a tree table} for use in GUI applications.</p>
+ * {@section Foreword}
+ * Many metadata standards exist, including <cite>Dublin core</cite>, <cite>ISO 19115</cite> and the Image I/O
+ * metadata defined in {@link javax.imageio.metadata}. The SIS implementation focuses on ISO 19115 (including
+ * its ISO 19115-2 extension), but the classes are designed in a way that allow the usage of different standards.
+ * This genericity goal should be keept in mind in the discussion below.
  *
- * <p>ISO 19115 metadata can be marshalled and unmarshalled in XML using the
- * {@link org.apache.sis.xml.XML} convenience methods.</p>
+ * {@section How Metadata are defined}
+ * A metadata standard is defined by a set of Java interfaces belonging to a specific package and its sub-packages.
+ * For example the ISO 19115 standard is defined by the <a href="http://www.geoapi.org">GeoAPI</a> interfaces
+ * defined in the {@link org.opengis.metadata} package and sub-packages. That standard is identified in SIS by the
+ * {@link org.apache.sis.metadata.MetadataStandard#ISO_19115} constant. Other standards are defined as well,
+ * for example the {@link org.apache.sis.metadata.MetadataStandard#ISO_19119} constant stands for the standards
+ * defined by the interfaces in the {@link org.opengis.service} package and sub-packages.
+ *
+ * <p>For each interface, the collection of declared getter methods defines its <cite>properties</cite>
+ * (or <cite>attributes</cite>). If a {@link org.opengis.annotation.UML} annotation is attached to the getter method,
+ * the identifier declared in that annotation is taken as the property name. This is typically the name defined by the
+ * International Standard from which the interface is derived. Otherwise (if there is no {@code UML} annotation)
+ * the property name is inferred from the method name like what the <cite>Java Beans</cite> framework does.</p>
+ *
+ * <p>The implementation classes, if they exist, are defined in different packages than the interfaces.
+ * For example the ISO 19115 interfaces, declared in {@code org.opengis.metadata}, are implemented by
+ * SIS in {@link org.apache.sis.metadata.iso}. The subpackages hierarchy is the same, and the names
+ * of implementation classes are the name of the implemented interfaces prefixed with {@code Abstract}
+ * or {@code Default}.</p>
+ *
+ * <p><b>Notes:</b></p>
+ * <ul>
+ *   <li>The {@code Abstract} prefix means that the class is abstract in the sense of the implemented standard.
+ *       It it not necessarily abstract in the sense of Java. Because incomplete metadata are common in practice,
+ *       sometime we wish to instantiate an "abstract" class despite the lack of knowledge about the exact sub-type.</li>
+ *   <li>The properties are determined by the getter methods declared in the interfaces.
+ *       Getter methods declared in the implementation classes are ignored.</li>
+ *   <li>Setter methods, if any, can be declared in the implementation classes without the need for declarations
+ *       in the interfaces. In other words, interfaces are assumed read-only unless a specific implementation provide
+ *       setter methods.</li>
+ *   <li>The implementation is not required to exist as source code. They can be generated on the fly with
+ *       {@link java.lang.reflect.Proxy}. This is the approach taken by the {@link org.apache.sis.metadata.sql}
+ *       package for generating metadata implementations backed by the content of a database.</li>
+ * </ul>
+ *
+ * {@section How Metadata are handled}
+ * Metadata objects in SIS are mostly containers: they provide getter and setter methods for manipulating the values
+ * associated to properties (for example the {@code title} property of a {@code Citation} object), but provide few logic.
+ * The package {@code org.apache.sis.metadata.iso} and its sub-packages are the main examples of such containers.
+ *
+ * <p>In addition, the metadata modules provide support methods for handling the metadata objects through Java Reflection.
+ * This is an approach similar to <cite>Java Beans</cite>, in that users are encouraged to use directly the API of
+ * <cite>Plain Old Java</cite> objects (actually interfaces) everytime their type is known at compile time,
+ * and fallback on the reflection technic when the type is known only at runtime.</p>
+ *
+ * <p>Using Java reflection, a metadata can be viewed in many different ways:</p>
+ * <ul>
+ *   <li><b>As a {@link java.util.Map}</b><br>
+ *       The {@link org.apache.sis.metadata.MetadataStandard} class provides various methods returning a view
+ *       of an arbitrary metadata implementation as a {@code Map}, where the key are the property names and the
+ *       values are the return values, types or descriptions of getter methods. The map is writable if the
+ *       underlying metadata implementation has setter methods, otherwise attempts to set a value throw an
+ *       {@code UnmodifiableMetadataException}.</li>
+ *
+ *   <li><b>As a {@link org.apache.sis.util.collection.TreeTable}</b><br>
+ *       The metadata are organized as a tree. For example the {@code Citation} metadata contains one or many
+ *       {@code ResponsibleParty} elements, each of them containing a {@code Contact} element, which contains
+ *       a {@code Telephone} element, <i>etc</i>. For each node, there is many information that can be displayed
+ *       in columns:
+ *       <ul>
+ *         <li>A description of the element.</li>
+ *         <li>The type of values ({@code String}, {@code double}, <i>etc</i>).</li>
+ *         <li>The range of valid values (if the type is numeric),
+ *             or an enumeration of valid values (if the type is a code list).</li>
+ *         <li>The value stored in the element, or the default value.</li>
+ *       </ul></li>
+ *
+ *   <li><b>As a table record in a database (using {@link org.apache.sis.metadata.sql})</b><br>
+ *       It is possible to establish the following mapping between metadata and a SQL database:
+ *       <ul>
+ *         <li>Each metadata interface maps to a table of the same name in the database.</li>
+ *         <li>Each property in the above interface maps to a column of the same name in the above table.</li>
+ *         <li>Each instance of the above interface is a record in the above table.</li>
+ *       </ul>
+ *       Using Java reflection, it is possible to generate implementations of the metadata interfaces
+ *       where each call to a getter method is translated into a SQL query for the above database.</li>
+ * </ul>
+ *
+ * {@section How Metadata are marshalled}
+ * The ISO 19139 standard defines how ISO 19115 metadata shall be represented in XML.
+ * The SIS library supports XML marshalling and unmarshalling with JAXB annotations.
+ *
+ * <p>Only the implementation classes defined in the {@link org.apache.sis.metadata.iso} packages and sub-packages
+ * are annotated for JAXB marshalling. If a metadata is implemented by an other package (for example
+ * {@code org.apache.sis.metadata.sql}), then it shall be converted to an annotated class before to be marshalled.
+ * All SIS annotated classes provide a copy constructor for this purpose. A shallow copy is sufficient;
+ * JAXB adapters will convert the elements on-the-fly when needed.</p>
+ *
+ * <p>The annotated classes can be given to a JAXB {@code Marshaller}. For best results, it shall be a marshaller
+ * obtained from the {@link org.apache.sis.xml.MarshallerPool}, otherwise some XML outputs may be incomplete
+ * (missing namespaces for instance). The {@link org.apache.sis.xml.XML} class provides convenience methods
+ * for this purpose.</p>
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Adrian Custer (Geomatys)
  * @since   0.3 (derived from geotk-2.0)
  * @version 0.3
  * @module

Modified: sis/trunk/core/sis-metadata/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/site/apt/index.apt?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/site/apt/index.apt [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/site/apt/index.apt [UTF-8] Fri Jun  7 16:54:16 2013
@@ -5,128 +5,40 @@
 
 Apache SIS Metadata
 
-  Group of packages related to handling metadata. This group contains the ISO 19115 metadata classes
-  (in <<<org.apache.sis.metadata.iso>>>) and various support classes.
+  Implementations of metadata derived from ISO 19115. This module provides both an implementation
+  of the metadata interfaces defined in GeoAPI, and a framework for handling those metadata through
+  Java reflection.
 
-  * {{{./faq.html}Frequently Asked Questions}}
+   * {{{./faq.html}Frequently Asked Questions}}
 
+   * {{{https://geo-ide.noaa.gov/wiki/index.php?title=Category:ISO_19115}ISO 19115 wiki at NOAA}}
 
-* Overview of Metadata handling in Apache SIS
 
-** Foreword
+* Overview of Metadata handling in Apache SIS
 
   Many metadata standards exist, including <Dublin core>, <ISO 19115> and the Image I/O metadata
   defined in <<<javax.imageio.metadata>>>. The SIS implementation focuses on ISO 19115 (including
   its ISO 19115-2 extension), but the classes are designed in a way that allow the usage of different
-  standards. This genericity goal should be keept in mind in the discussion below.
-
-
-** How Metadata are defined
-
-  A metadata standard is defined by a set of Java interfaces belonging to a specific package and its
-  sub-packages. For example the ISO 19115 standard is defined by the {{{http://www.geoapi.org}GeoAPI}}
-  interfaces defined in the <<<org.opengis.metadata>>> package and sub-packages. That standard is
-  identified in SIS by the <<<MetadataStandard.ISO_19115>>> constant. Other standards are defined
-  as well, for example the <<<MetadataStandard.ISO_19119>>> constant stands for the standards defined
-  by the interfaces in the <<<org.opengis.service>>> package and sub-packages.
-
-  For each interface, the collection of declared getter methods defines its <properties> (or <attributes>).
-  If a <<<@UML>>> annotation is attached to the getter method, the identifier declared in that annotation
-  is taken as the property name. This is typically the name defined by the International Standard from
-  which the interface is derived. Otherwise (if there is no <<<@UML>>> annotation) the property name is
-  inferred from the method name like what the <Java Beans> framework does.
-
-  The implementation classes, if they exist, are defined in different packages than the interfaces.
-  For example the ISO 19115 interfaces, declared in <<<org.opengis.metadata>>>, are implemented by
-  SIS in <<<org.apache.sis.metadata.iso>>>. The subpackages hierarchy is the same, and the names
-  of implementation classes are the name of the implemented interfaces prefixed with <<<Abstract>>>
-  or <<<Default>>>.
-
-  <<Notes:>>
-
-  * The <<<Abstract>>> prefix means that the class is abstract in the sense of the implemented
-    standard. It it not necessarily abstract in the sense of Java. Because incomplete metadata are
-    common in practice, sometime we wish to instantiate an "abstract" class despite the lack of
-    knowledge about the exact sub-type.
-
-  * The properties are determined by the getter methods declared in the interfaces.
-    Getter methods declared in the implementation classes are ignored.
-
-  * Setter methods, if any, can be declared in the implementation classes without the need for
-    declarations in the interfaces. In other words, interfaces are assumed read-only unless a
-    specific implementation provide setter methods.
-
-  * The implementation is not required to exist as source code. They can be generated
-    on the fly with <<<java.lang.reflect.Proxy>>>. This is the approach taken by the
-    <<<org.apache.sis.metadata.sql>>> package for generating metadata implementations
-    backed by the content of a database (see also the {{{./faq.html#proxy}FAQ entry}}).
-
-
-** How Metadata are handled
+  standards.
 
   Metadata objects in SIS are mostly containers: they provide getter and setter methods for
   manipulating the values associated to properties (for example the <title> properties of an
   <Citation> object), but provide few logic. The package <<<org.apache.sis.metadata.iso>>> and
   its sub-packages are the main examples of such containers.
 
-  In addition, the metadata modules provide support classes for handling the metadata objects
+  In addition, the metadata modules provide support methods for handling the metadata objects
   through Java Reflection. This is an approach similar to <Java Beans>, in that users are encouraged
   to use directly the API of <Plain Old Java> objects (actually interfaces) everytime their type is
-  known at compile time, and fallback on the support classes when the type is known only at runtime.
-
+  known at compile time, and fallback on the reflection technic when the type is known only at runtime.
   Using Java reflection, a metadata can be viewed in many different ways:
 
+   * As a <<<Map>>> (from <<<java.util>>>)
 
-*** As a <<<Map>>> (from <<<java.util>>>)
-
-  The <<<MetadataStandard>>> class provides various methods returning a view of an arbitrary
-  metadata implementation as a <<<java.util.Map>>>, where the key are the property names and
-  the values are the return values of getter methods. The map is writable if the underlying
-  metadata implementation has setter methods, otherwise attempts to set a value throw an
-  <<<UnmodifiableMetadataException>>>.
-
+   * As a <<<TreeTable>>> (from <<<org.apache.sis.util.collection>>>)
 
-*** As a <<<IIOMetadata>>> (from <<<javax.imageio.metadata>>>)
+   * As a <<<IIOMetadata>>> (from <<<javax.imageio.metadata>>>)
 
-  The ISO 19115-2 standard defines metadata for gridded data, which are good candidates for
-  Image I/O metadata with spatial data. The <<<org.apache.sis.image.io.metadata>>> package
-  provides a framework for converting an ISO metadata like <<<ImageDescription>>> into an
-  <<<IIOMetadata>>> object, and conversely.
-
-
-*** As a <<<TreeTableModel>>> (from <<<org.jdesktop.swingx.treetable>>>)
-
-  The metadata are organized as a tree. For example the <<<Citation>>> metadata contains one
-  or many <<<ResponsibleParty>>> elements, each of them containing a <<<Contact>>> element,
-  which contains a <<<Telephone>>> element, <etc>. For each node, there is many information
-  that can be displayed in columns:
-
-   * A description of the element.
-
-   * The type of values (<<<String>>>, <<<double>>>, <etc>).
-
-   * The range of valid values (if the type is numeric),
-     or an enumeration of valid values (if the type is a code list).
-
-   * The value stored in the element, or the default value.
-
-  The current SIS library provides an indirect way to view metadata in such tree table:
-  create an <<<IIOMetadata>>> view from the metadata, then create a <<<TreeTableModel>>>
-  view from the <<<IIOMetadata>>>. A more direct way may be provided in a future version.
-
-
-*** As a table record in a database (using <<<org.apache.sis.metadata.sql>>>)
-
-  It is possible to establish the following mapping between metadata and a SQL database:
-
-   * Each metadata interface maps to a table of the same name in the database.
-
-   * Each property in the above interface maps to a column of the same name in the above table.
-
-   * Each instance of the above interface is a record in the above table.
-
-  Using Java reflection, it is possible to generate implementations of the metadata interfaces
-  where each call to a getter method is translated into a SQL query for the above database.
+   * As a table record in a database (using <<<org.apache.sis.metadata.sql>>>)
 
 
 ** How Metadata are marshalled
@@ -140,7 +52,3 @@ Apache SIS Metadata
   before to be marshalled. All SIS annotated classes provide a copy constructor for this
   purpose. A shallow copy is sufficient; JAXB adapters will convert the elements on-the-fly
   when needed.
-
-  The annotated classes can be given to a JAXB <<<Marshaller>>>. For best results, it shall
-  be a marshaller obtained from the <<<org.apache.sis.xml.MarshallerPool>>>, otherwise some
-  XML outputs may be incomplete (missing namespaces for instance).

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -26,6 +26,8 @@ import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
 import static org.apache.sis.test.Assert.*;
+import static org.apache.sis.test.TestUtilities.toTreeStructure;
+import static org.apache.sis.test.TestUtilities.formatNameAndValue;
 
 
 /**
@@ -47,10 +49,10 @@ public final strictfp class TreeTableVie
     }
 
     /**
-     * Asserts that the given metadata object has the expected string representation.
+     * The expected string representation of the tree created by {@link #create(ValueExistencePolicy)}
+     * with {@link ValueExistencePolicy#NON_EMPTY}.
      */
-    private static void assertExpectedString(final TreeTableView metadata) {
-        assertMultilinesEquals("toString()",
+    private static final String EXPECTED =
                 "DefaultCitation\n" +
                 "  ├─Title…………………………………………………………………………………… Some title\n" +
                 "  ├─Alternate title (1 of 2)………………………………… First alternate title\n" +
@@ -67,16 +69,18 @@ public final strictfp class TreeTableVie
                 "  │   └─Role…………………………………………………………………………… Point of contact\n" +
                 "  ├─Presentation form (1 of 2)…………………………… Map digital\n" +
                 "  ├─Presentation form (2 of 2)…………………………… Map hardcopy\n" +
-                "  └─Other citation details……………………………………… Some other details\n",
-                metadata.toString());
-    }
+                "  └─Other citation details……………………………………… Some other details\n";
 
     /**
      * Tests {@link TreeTableView#toString()}.
+     * Since the result is locale-dependant, we can not compare against an exact string.
+     * We will only compare the beginning of each line.
      */
     @Test
     public void testToString() {
-        assertExpectedString(create(ValueExistencePolicy.NON_EMPTY));
+        final TreeTableView metadata = create(ValueExistencePolicy.NON_EMPTY);
+        assertMultilinesEquals(EXPECTED, formatNameAndValue(metadata)); // Locale-independent
+        assertArrayEquals(toTreeStructure(EXPECTED), toTreeStructure(metadata.toString())); // Locale-dependent.
     }
 
     /**
@@ -104,6 +108,6 @@ public final strictfp class TreeTableVie
         } finally {
             in.close();
         }
-        assertExpectedString((TreeTableView) deserialized);
+        assertMultilinesEquals(EXPECTED, formatNameAndValue((TreeTableView) deserialized));
     }
 }

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -56,7 +56,7 @@ import org.junit.BeforeClass;
 public final strictfp class MetadataTestSuite extends TestSuite {
     /**
      * Verifies the list of tests before to run the suite.
-     * See {@link #verifyTestList(Class, Class<?>[])} for more information.
+     * See {@link #verifyTestList(Class, Class[])} for more information.
      */
     @BeforeClass
     public static void verifyTestList() {

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -43,7 +43,7 @@ import org.junit.BeforeClass;
 public final strictfp class ReferencingTestSuite extends TestSuite {
     /**
      * Verifies the list of tests before to run the suite.
-     * See {@link #verifyTestList(Class, Class<?>[])} for more information.
+     * See {@link #verifyTestList(Class, Class[])} for more information.
      */
     @BeforeClass
     public static void verifyTestList() {

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/jdk7/JDK7.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/jdk7/JDK7.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/jdk7/JDK7.java (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/jdk7/JDK7.java Fri Jun  7 16:54:16 2013
@@ -105,6 +105,8 @@ public final class JDK7 {
 
     /**
      * Simulates the {@code ((AutoCloseable) object).close()} method call.
+     * The given object shall be an instance of which {@link #isAutoCloseable(Object)}
+     * returned {@code true}, otherwise a {@link ClassCastException} will be thrown.
      *
      * @param  object The object to close.
      * @throws Exception If an error occurred while closing the object.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/io/CompoundFormat.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/io/CompoundFormat.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/io/CompoundFormat.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/io/CompoundFormat.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -83,13 +83,17 @@ public abstract class CompoundFormat<T> 
     /**
      * The locale given at construction time, or {@link Locale#ROOT} (never {@code null}) for
      * unlocalized format. See {@link #getLocale()} for more information on {@code ROOT} locale.
+     *
+     * @see #getLocale()
      */
-    protected final Locale locale;
+    private final Locale locale;
 
     /**
      * The timezone given at construction time, or {@code null} for UTC.
+     *
+     * @see #getTimeZone()
      */
-    protected final TimeZone timezone;
+    private final TimeZone timezone;
 
     /**
      * The formats for smaller unit of information.
@@ -107,12 +111,12 @@ public abstract class CompoundFormat<T> 
      * @param timezone The timezone, or {@code null} for UTC.
      */
     protected CompoundFormat(final Locale locale, final TimeZone timezone) {
-        this.locale   = (locale != null) ? locale : Locale.ROOT;
+        this.locale   = (locale   != null) ? locale   : Locale.ROOT;
         this.timezone = timezone;
     }
 
     /**
-     * Returns the locale given at construction time. The returned value may be {@link Locale#ROOT}
+     * Returns the locale used by this format. The returned value may be {@link Locale#ROOT}
      * if this format does not apply any localization. The definition of "unlocalized string"
      * is implementation-dependent, but some typical examples are:
      *
@@ -129,6 +133,15 @@ public abstract class CompoundFormat<T> 
     }
 
     /**
+     * Returns the timezone used by this format.
+     *
+     * @return The timezone used for this format, or UTC for unlocalized format.
+     */
+    public TimeZone getTimeZone() {
+        return timezone != null ? (TimeZone) timezone.clone() : TimeZone.getTimeZone("UTC");
+    }
+
+    /**
      * Returns the base type of values parsed and formatted by this {@code Format} instance.
      * The returned type may be a subclass of {@code <T>} if the format is configured in a way
      * that restrict the kind value to be parsed.
@@ -160,12 +173,10 @@ public abstract class CompoundFormat<T> 
      *       error index</var> + <var>{@code ParseException} error offset</var>.</li>
      * </ul>
      *
-     * <blockquote><font size="-1"><b>Example:</b>
-     * If parsing of the {@code "30.0 40,0"} coordinate fails on the coma in the last number,
-     * then the {@code pos} error index will be set to 5 (the beginning of the {@code "40.0"}
-     * character sequence) while the {@code ParseException} error offset will be set to 2
-     * (the coma position relative the the beginning of the {@code "40.0"} character sequence).
-     * </font></blockquote>
+     * {@example If parsing of the <code>"30.0 40,0"</code> coordinate fails on the coma in the last number, then the
+     * <code>pos</code> error index will be set to 5 (the beginning of the <code>"40.0"</code> character sequence)
+     * while the <code>ParseException</code> error offset will be set to 2 (the coma position relative the beginning
+     * of the <code>"40.0"</code> character sequence).}
      *
      * This error offset policy is a consequence of the compound nature of {@code CompoundFormat},
      * since the exception may have been produced by a call to {@link Format#parseObject(String)}.
@@ -248,7 +259,7 @@ public abstract class CompoundFormat<T> 
             } while (Character.isSpaceChar(c) || Character.isISOControl(c));
             pos.setErrorIndex(i);
         }
-        throw new LocalizedParseException(locale, getValueType(), text, pos);
+        throw new LocalizedParseException(getLocale(), getValueType(), text, pos);
     }
 
     /**
@@ -370,6 +381,7 @@ public abstract class CompoundFormat<T> 
          * documented in this method javadoc. But actually it is not, since the call to
          * DefaultFormat.getInstance(…) will indirectly perform this kind of comparison.
          */
+        final Locale locale = getLocale();
         if (Number.class.isAssignableFrom(valueType)) {
             if (Locale.ROOT.equals(locale)) {
                 return DefaultFormat.getInstance(valueType);
@@ -383,7 +395,7 @@ public abstract class CompoundFormat<T> 
             } else {
                 format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.ROOT);
             }
-            format.setTimeZone(timezone != null ? timezone : TimeZone.getTimeZone("UTC"));
+            format.setTimeZone(getTimeZone());
             return format;
         } else if (valueType == Angle.class) {
             return AngleFormat.getInstance(locale);

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/FunctionProperty.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/FunctionProperty.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/FunctionProperty.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/FunctionProperty.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -78,10 +78,8 @@ public enum FunctionProperty {
      * A function is <cite>injective</cite> if each value of <var>T</var> is either unrelated
      * to <var>S</var>, or is the output of exactly one value of <var>S</var>.
      *
-     * <blockquote><font size="-1"><b>Example:</b>
-     * A {@code ObjectConverter} doing conversions from {@code Integer} to {@code String} is an
-     * injective function, because no pair of integers can produce the same string.
-     * </font></blockquote>
+     * {@example A <code>ObjectConverter</code> doing conversions from <code>Integer</code> to <code>String</code>
+     * is an injective function, because no pair of integers can produce the same string.}
      *
      * A function which is both injective and {@linkplain #SURJECTIVE surjective} is a
      * <cite>bijective</cite> function. In such functions, there is a one-to-one relationship
@@ -96,12 +94,9 @@ public enum FunctionProperty {
      * A function is <cite>surjective</cite> if any value of <var>T</var> can be created
      * from one or many values of <var>S</var>.
      *
-     * <blockquote><font size="-1"><b>Example:</b>
-     * A {@code ObjectConverter} doing conversions from {@link String} to {@link Integer} is a
-     * surjective function, since there is always at least one string for each integer value.
-     * Note that such function can not be {@linkplain #INJECTIVE injective} since many different
-     * strings can represent the same integer value.
-     * </font></blockquote>
+     * {@example A <code>ObjectConverter</code> doing conversions from <code>String</code> to <code>Integer</code>
+     * is a surjective function, since there is always at least one string for each integer value. Note that such
+     * function can not be injective since many different strings can represent the same integer value.}
      *
      * A function which is both {@linkplain #INJECTIVE injective} and surjective is a
      * <cite>bijective</cite> function. In such functions, there is a one-to-one relationship

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -222,13 +222,12 @@ public final class MathFunctions extends
      *       increases the number of needed fraction digits in order to prevent the rounded
      *       number to be collapsed into the next integer value.
      *
-     *       <blockquote><font size="-1"><b>Example:</b>
+     *       {@example
      *       If {@code accuracy} is 0.95, then a return value of 1 is not sufficient since the
      *       rounded value of 0.95 with 1 fraction digit would be 1.0. Such value would be a
      *       violation of this method contract since the difference between 0 and that formatted
      *       value would be greater than the accuracy. Note that this is not an artificial rule;
-     *       this is related to the fact that 0.9999… is mathematically strictly equals to 1.
-     *       </font></blockquote></li>
+     *       this is related to the fact that 0.9999… is mathematically strictly equals to 1.}</li>
      * </ul>
      *
      * <p>Invoking this method is equivalent to computing <code>(int)

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -31,7 +31,7 @@ import org.apache.sis.internal.jdk7.Obje
  *
  * <ul>
  *   <li>The {@link #resize(Object[], int) resize} methods, which are very similar to the
- *       {@link Arrays#copyOf(Object[], int) Arrays.copyOf} methods except that they accept
+ *       {@link Arrays#copyOf(Object[], int) Arrays.copyOf(…)} methods except that they accept
  *       {@code null} arrays and do not copy anything if the given array already has the
  *       requested length.</li>
  *   <li>The {@link #insert(Object[], int, Object[], int, int) insert} and {@link #remove(Object[],

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -52,14 +52,12 @@ import static org.apache.sis.internal.jd
  *       feeds or tabulations are entity boundaries.</li>
  * </ul>
  *
- * <blockquote><font size="-1"><b>Example:</b> Numbers formatted in the French locale use no-break
- * spaces as group separators. When parsing a list of numbers, ordinary spaces around the numbers
- * may need to be ignored, but no-break spaces shall be considered as part of the numbers.
- * Consequently {@code isWhitespace(…)} is appropriate for skipping spaces <em>between</em> the numbers.
- * But if there is spaces to skip <em>inside</em> a single number, then {@code isSpaceChar(…)} is a
- * good choice for accepting no-break spaces and for stopping the parse operation at tabulations or
- * line feed character. A tabulation or line feed between two characters is very likely to separate
- * two distinct values.</font></blockquote>
+ * {@example Numbers formatted in the French locale use no-break spaces as group separators. When parsing a list
+ * of numbers, ordinary spaces around the numbers may need to be ignored, but no-break spaces shall be considered as
+ * part of the numbers. Consequently <code>isWhitespace(…)</code> is appropriate for skipping spaces <em>between</em>
+ * the numbers. But if there is spaces to skip <em>inside</em> a single number, then <code>isSpaceChar(…)</code> is a
+ * good choice for accepting no-break spaces and for stopping the parse operation at tabulations or line feed character.
+ * A tabulation or line feed between two characters is very likely to separate two distinct values.}
  *
  * In practice, the {@link java.text.Format} implementations in the SIS library typically use
  * {@code isSpaceChar(…)} while most of the rest of the SIS library, including this

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Deprecable.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Deprecable.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Deprecable.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Deprecable.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -20,8 +20,16 @@ import org.opengis.util.InternationalStr
 
 
 /**
- * Interface of classes for which deprecated instances may exist. Deprecated instances exist in some
- * {@linkplain org.opengis.referencing.AuthorityFactory authority factories} like the EPSG database.
+ * Interface of classes for which deprecated instances may exist. Despite the name, the entities deprecated
+ * by this interface are unrelated to the entities deprecated by the Java {@link Deprecated} annotation.
+ * This interface is for identifying deprecated <em>data</em> rather than language constructs.
+ *
+ * {@example When an error is discovered in the definition of a Coordinate Reference System (CRS) in the EPSG
+ * database, the EPSG maintainers do not change the data. Instead, they deprecate the erroneous definition
+ * and create a new one with a new EPSG code. The <code>isDeprecated()</code> method in this interface allows
+ * users to identify CRS instances created from such deprecated database records, for example in order to log
+ * a warning when data are projected to a deprecated CRS.}
+ *
  * Some examples of deprecated instances are:
  *
  * <ul>

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverter.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverter.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverter.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverter.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -54,6 +54,12 @@ import org.apache.sis.internal.jdk8.Func
  *       a sequence of decreasing <var>T</var> values.</li>
  * </ul>
  *
+ * {@example The function properties regarding order is important when converting <code>Range</code> objects.
+ * For example if the converter reverses the value ordering (e.g. reverses the sign of numerical values), then the
+ * minimum and maximum values in each <code>Range</code> instance need to be interchanged. If the ordering is not
+ * preserved at all (neither directly or reversed), as for example in the conversion from <code>Number</code> to
+ * <code>String</code>, then we can not convert ranges at all.}
+ *
  * Below are some guidelines about the function properties that a converter can declare:
  *
  * <ul>
@@ -71,6 +77,8 @@ import org.apache.sis.internal.jdk8.Func
  * @since   0.3
  * @version 0.3
  * @module
+ *
+ * @see ObjectConverters
  */
 public interface ObjectConverter<S,T> extends Function<S,T> {
     /**

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -61,6 +61,8 @@ import org.apache.sis.internal.converter
  * @since   0.3 (derived from geotk-3.00)
  * @version 0.3
  * @module
+ *
+ * @see ObjectConverter
  */
 public final class ObjectConverters extends Static {
     /**

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -48,6 +48,8 @@ package org.apache.sis.util;
  *         and test if a unit is angular, linear or temporal.</td></tr>
  *
  * <tr><th colspan="2" class="hsep">OGC/ISO objects (metadata, referencing, geometries)</th></tr>
+ * <tr><td>{@link org.apache.sis.util.iso.Types}</td>
+ *     <td>Provide UML identifier and description for GeoAPI types.</td></tr>
  * <tr><td>{@link org.apache.sis.metadata.iso.extent.Extents}</td>
  *     <td>Extract information from {@link org.opengis.metadata.extent.Extent} objects.</td></tr>
  * <tr><td>{@link org.apache.sis.geometry.Envelopes}</td>
@@ -58,6 +60,8 @@ package org.apache.sis.util;
  *     <td>Methods working on {@link Appendable} instances.</td></tr>
  * <tr><td>{@link org.apache.sis.xml.XML}</td>
  *     <td>Marshal or unmarshal ISO 19115 objects.</td></tr>
+ * <tr><td>{@link org.apache.sis.xml.Namespaces}</td>
+ *     <td>{@code String} constants for commonly used namespaces.</td></tr>
  *
  * <tr><th colspan="2" class="hsep">Loggings and exceptions</th></tr>
  * <tr><td>{@link ArgumentChecks}</td>

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -28,7 +28,7 @@ import org.apache.sis.internal.jdk7.Obje
 
 
 /**
- * Miscellaneous static methods.
+ * Static methods for object comparisons in different ways (deeply, approximatively, <i>etc</i>).
  *
  * @author Martin Desruisseaux (IRD, Geomatys)
  * @since   0.3 (derived from geotk-1.2)

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTable.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTable.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTable.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTable.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -225,11 +225,9 @@ public interface TreeTable {
          * The user object is for information purpose only and does not appear in the rendered tree.
          * It is typically a Java object whose content is splitted into the various table columns.
          *
-         * <blockquote><font size="-1"><b>Example:</b>
-         * If a {@code CityLocation} class is defined as a (<var>city name</var>, <var>latitude</var>,
-         * <var>longitude</var>) tuple, then a {@code TreeTable.Node} could be defined to have
-         * 3 columns for the above 3 tuple components, and the user object could be the original
-         * {@code CityLocation} instance.</font></blockquote>
+         * {@example If a <code>CityLocation</code> class is defined as a (<var>city name</var>, <var>latitude</var>,
+         * <var>longitude</var>) tuple, then a <code>TreeTable.Node</code> could be defined to have 3 columns for the
+         * above 3 tuple components, and the user object could be the original <code>CityLocation</code> instance.}
          *
          * @return Any object stored at this node by the user, or {@code null} if none.
          * @category tree

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -407,7 +407,7 @@ public class TreeTableFormat extends Tab
                      */
                     if (--indentationLevel < 0) {
                         pos.setErrorIndex(indexOfLineStart);
-                        throw new LocalizedParseException(locale,
+                        throw new LocalizedParseException(getLocale(),
                                 Errors.Keys.NodeHasNoParent_1, new Object[] {node}, 0);
                     }
                     lastNode = lastNode.getParent();
@@ -421,7 +421,7 @@ public class TreeTableFormat extends Tab
                     final TreeTable.Node parent = lastNode.getParent();
                     if (parent == null) {
                         pos.setErrorIndex(indexOfLineStart);
-                        throw new LocalizedParseException(locale,
+                        throw new LocalizedParseException(getLocale(),
                                 Errors.Keys.NodeHasNoParent_1, new Object[] {node}, 0);
                     }
                     parent.getChildren().add(node);
@@ -586,9 +586,9 @@ public class TreeTableFormat extends Tab
                 }
                 text = format.format(value);
             } else if (value instanceof InternationalString) {
-                text = ((InternationalString) value).toString(locale);
+                text = ((InternationalString) value).toString(getLocale());
             } else if (value instanceof CodeList<?>) {
-                text = Types.getCodeTitle((CodeList<?>) value).toString(locale);
+                text = Types.getCodeTitle((CodeList<?>) value).toString(getLocale());
             } else if (value instanceof Enum<?>) {
                 text = CharSequences.upperCaseToSentence(((Enum<?>) value).name());
             } else {

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/LoggerAdapter.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/LoggerAdapter.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/LoggerAdapter.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/LoggerAdapter.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -137,7 +137,8 @@ public abstract class LoggerAdapter exte
     public abstract Level getLevel();
 
     /**
-     * Returns the level for {@link #entering}, {@link #exiting} and {@link #throwing} methods.
+     * Returns the level for {@link #entering(String, String) entering(…)}, {@link #exiting(String, String) exiting(…)}
+     * and {@link #throwing(String, String, Throwable) throwing(…)} methods.
      * The default implementation returns {@link Level#FINER}, which is consistent with the
      * value used in the JDK logging framework. Subclasses should override this method if
      * a different debug level is wanted.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListener.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListener.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListener.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListener.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -41,6 +41,7 @@ import java.util.logging.LogRecord;
  * @version 0.3
  * @module
  *
+ * @see WarningListeners
  * @see org.apache.sis.storage.DataStore#addWarningListener(WarningListener)
  */
 public interface WarningListener<S> extends EventListener {

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -48,6 +48,9 @@ import org.apache.sis.util.resources.Err
  * @since   0.3
  * @version 0.3
  * @module
+ *
+ * @see WarningListener
+ * @see org.apache.sis.storage.DataStore#listeners
  */
 @ThreadSafe
 public class WarningListeners<S> implements Localized {

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/package-info.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/package-info.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -16,23 +16,25 @@
  */
 
 /**
- * Simple data objects and miscellaneous utilities. This package provides:
+ * Simple data objects and miscellaneous utilities.
+ * This package provides general purpose static methods working on primitive or basic Java types
+ * ({@link org.apache.sis.util.Characters},
+ *  {@link org.apache.sis.util.CharSequences},
+ *  {@link org.apache.sis.util.StringBuilders},
+ *  {@link org.apache.sis.util.Locales},
+ *  {@link org.apache.sis.util.Numbers},
+ *  {@link org.apache.sis.util.Classes}), arrays
+ * ({@link org.apache.sis.util.ArraysExt}) or other standard Java types
+ * ({@link org.apache.sis.util.Exceptions}).
  *
+ * It defines also general purpose annotations, enumerations and exceptions.
+ *
+ * <p>Some other noticeable services are:</p>
  * <ul>
- *   <li>General purpose static methods working on:
- *   <ul>
- *     <li>Primitive or basic Java types:
- *         {@link org.apache.sis.util.Characters},
- *         {@link org.apache.sis.util.CharSequences},
- *         {@link org.apache.sis.util.StringBuilders},
- *         {@link org.apache.sis.util.Locales},
- *         {@link org.apache.sis.util.Numbers},
- *         {@link org.apache.sis.util.Classes}.</li>
- *     <li>Arrays:
- *         {@link org.apache.sis.util.ArraysExt}.</li>
- *     <li>Other standard Java types:
- *         {@link org.apache.sis.util.Exceptions}.</li>
- *   </ul></li>
+ *   <li>{@link org.apache.sis.util.ObjectConverters}, together with the
+ *       {@link org.apache.sis.util.ObjectConverter} interface, for converting various kind of objects.</li>
+ *   <li>{@link org.apache.sis.util.Utilities}, together with the
+ *       {@link org.apache.sis.util.LenientComparable} interface, for comparing objects in various ways.</li>
  * </ul>
  *
  * @author Martin Desruisseaux (Geomatys)

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -37,7 +37,7 @@ import static org.junit.Assert.*;
 public abstract strictfp class TestSuite {
     /**
      * The default set of base classes that all test cases are expected to extends.
-     * This is the usual argument value to the {@link #verifyTestList(Class, Class<?>[])} method.
+     * This is the usual argument value to the {@link #verifyTestList(Class, Class[])} method.
      */
     protected static final Class<?>[] BASE_TEST_CLASSES = {
         TestCase.class,

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -29,7 +29,11 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import org.apache.sis.util.Static;
+import org.apache.sis.util.CharSequences;
 import org.apache.sis.util.ArgumentChecks;
+import org.apache.sis.util.collection.TreeTable;
+import org.apache.sis.util.collection.TableColumn;
+import org.apache.sis.util.collection.TreeTableFormat;
 import org.apache.sis.internal.util.X364;
 
 import static org.junit.Assert.*;
@@ -69,6 +73,12 @@ public final strictfp class TestUtilitie
     };
 
     /**
+     * The {@link TreeTableFormat} to use for unlocalized string representations.
+     * Created when first needed.
+     */
+    private static Format tableFormat;
+
+    /**
      * The thread group for every threads created for testing purpose.
      */
     public static final ThreadGroup THREADS = new ThreadGroup("SIS-Tests");
@@ -200,6 +210,68 @@ public final strictfp class TestUtilitie
     }
 
     /**
+     * Returns a unlocalized string representation of {@code NAME} and {@code VALUE} columns of the given tree table.
+     * This method is used mostly as a convenient way to verify the content of an ISO 19115 metadata object.
+     *
+     * @param  table The table for which to get a string representation.
+     * @return A unlocalized string representation of the given tree table.
+     */
+    public static String formatNameAndValue(final TreeTable table) {
+        synchronized (TestUtilities.class) {
+            if (tableFormat == null) {
+                final TreeTableFormat f = new TreeTableFormat(null, null);
+                f.setColumns(TableColumn.NAME, TableColumn.VALUE);
+                tableFormat = f;
+            }
+            return tableFormat.format(table);
+        }
+    }
+
+    /**
+     * Returns the tree structure of the given string representation, without the localized text.
+     * For example given the following string:
+     *
+     * {@preformat
+     *   Citation
+     *     ├─Title…………………………………………………… Some title
+     *     └─Cited responsible party
+     *         └─Individual name……………… Some person of contact
+     * }
+     *
+     * this method returns an array containing the following elements:
+     *
+     * {@preformat
+     *   "",
+     *   "  ├─",
+     *   "  └─",
+     *   "      └─"
+     * }
+     *
+     * This method is used for comparing two tree having string representation in different locales.
+     * In such case, we can not compare the actual text content. The best we can do is to compare
+     * the tree structure.
+     *
+     * @param  tree The string representation of a tree.
+     * @return The structure of the given tree, without text.
+     */
+    public static CharSequence[] toTreeStructure(final CharSequence tree) {
+        final CharSequence[] lines = CharSequences.split(tree, '\n');
+        for (int i=0; i<lines.length; i++) {
+            final CharSequence line = lines[i];
+            final int length = line.length();
+            for (int j=0; j<length;) {
+                final int c = Character.codePointAt(line, j);
+                if (Character.isLetterOrDigit(c)) {
+                    lines[i] = line.subSequence(0, j);
+                    break;
+                }
+                j += Character.charCount(c);
+            }
+        }
+        return lines;
+    }
+
+    /**
      * Returns the single element from the given array. If the given array is null or
      * does not contains exactly one element, then an {@link AssertionError} is thrown.
      *

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -32,6 +32,7 @@ import org.junit.BeforeClass;
 @Suite.SuiteClasses({
     // Following are testing the test tools.
     org.apache.sis.internal.test.AssertTest.class,
+    org.apache.sis.internal.test.TestUtilitiesTest.class,
     org.apache.sis.internal.test.XMLComparatorTest.class,
 
     // Most basic functions of SIS library.
@@ -116,7 +117,7 @@ import org.junit.BeforeClass;
 public final strictfp class UtilityTestSuite extends TestSuite {
     /**
      * Verifies the list of tests before to run the suite.
-     * See {@link #verifyTestList(Class, Class<?>[])} for more information.
+     * See {@link #verifyTestList(Class, Class[])} for more information.
      */
     @BeforeClass
     public static void verifyTestList() {

Modified: sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -19,15 +19,15 @@ package org.apache.sis.storage.netcdf;
 import java.io.IOException;
 import org.opengis.metadata.Metadata;
 import org.apache.sis.util.ArgumentChecks;
-import org.apache.sis.storage.AbstractDataStore;
+import org.apache.sis.storage.DataStore;
 import org.apache.sis.storage.DataStoreException;
-import org.apache.sis.storage.DataStoreConnection;
+import org.apache.sis.storage.StorageConnector;
 import org.apache.sis.internal.netcdf.Decoder;
 
 
 /**
  * A data store backed by NetCDF files.
- * Instances of this data store are created by {@link NetcdfStoreProvider#open(DataStoreConnection)}.
+ * Instances of this data store are created by {@link NetcdfStoreProvider#open(StorageConnector)}.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
@@ -36,7 +36,7 @@ import org.apache.sis.internal.netcdf.De
  *
  * @see NetcdfStoreProvider
  */
-public class NetcdfStore extends AbstractDataStore {
+public class NetcdfStore extends DataStore {
     /**
      * The object to use for decoding the NetCDF file content. There is two different implementations,
      * depending on whether we are using the embedded SIS decoder or a wrapper around the UCAR library.
@@ -50,13 +50,13 @@ public class NetcdfStore extends Abstrac
 
     /**
      * Creates a new NetCDF store from the given file, URL, stream or {@link ucar.nc2.NetcdfFile} object.
-     * This constructor invokes {@link DataStoreConnection#closeAllExcept(Object)}, keeping open only the
+     * This constructor invokes {@link StorageConnector#closeAllExcept(Object)}, keeping open only the
      * needed resource.
      *
      * @param  storage Information about the storage (URL, stream, {@link ucar.nc2.NetcdfFile} instance, <i>etc</i>).
      * @throws DataStoreException If an error occurred while opening the NetCDF file.
      */
-    public NetcdfStore(final DataStoreConnection storage) throws DataStoreException {
+    public NetcdfStore(final StorageConnector storage) throws DataStoreException {
         ArgumentChecks.ensureNonNull("storage", storage);
         try {
             decoder = NetcdfStoreProvider.decoder(listeners, storage);
@@ -86,6 +86,8 @@ public class NetcdfStore extends Abstrac
 
     /**
      * Closes this NetCDF store and releases any underlying resources.
+     *
+     * @throws DataStoreException If an error occurred while closing the NetCDF file.
      */
     @Override
     public void close() throws DataStoreException {

Modified: sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -28,13 +28,13 @@ import org.apache.sis.internal.netcdf.uc
 import org.apache.sis.internal.storage.ChannelDataInput;
 import org.apache.sis.storage.DataStore;
 import org.apache.sis.storage.DataStoreProvider;
-import org.apache.sis.storage.DataStoreConnection;
+import org.apache.sis.storage.StorageConnector;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.util.logging.WarningListeners;
 
 
 /**
- * The provider of {@link NetcdfStore} instances. Given a {@link DataStoreConnection} input,
+ * The provider of {@link NetcdfStore} instances. Given a {@link StorageConnector} input,
  * this class tries to instantiate a {@code NetcdfStore} using the embedded NetCDF decoder.
  * If the embedded decoder can not decode the given input and the UCAR library is reachable
  * on the classpath, then this class tries to instantiate a {@code NetcdfStore} backed by
@@ -88,7 +88,7 @@ public class NetcdfStoreProvider extends
      * Returns {@code TRUE} if the given storage appears to be supported by {@link NetcdfStore}.
      * Returning {@code TRUE} from this method does not guarantee that reading or writing will succeed,
      * only that there appears to be a reasonable chance of success based on a brief inspection of the
-     * {@linkplain DataStoreConnection#getStorage() storage object} or contents.
+     * {@linkplain StorageConnector#getStorage() storage object} or contents.
      *
      * @param  storage Information about the storage (URL, stream, {@link ucar.nc2.NetcdfFile} instance, <i>etc</i>).
      * @return {@link Boolean#TRUE} if the given storage seems to be usable by the {@code NetcdfStore} instances,
@@ -97,7 +97,7 @@ public class NetcdfStoreProvider extends
      * @throws DataStoreException if an I/O error occurred.
      */
     @Override
-    public Boolean canOpen(DataStoreConnection storage) throws DataStoreException {
+    public Boolean canOpen(StorageConnector storage) throws DataStoreException {
         final ByteBuffer buffer = storage.getStorageAs(ByteBuffer.class);
         if (buffer != null) {
             if (buffer.remaining() < Integer.SIZE / Byte.SIZE) {
@@ -142,19 +142,19 @@ public class NetcdfStoreProvider extends
 
     /**
      * Returns a {@link NetcdfStore} implementation associated with this provider. This method invokes
-     * {@link DataStoreConnection#closeAllExcept(Object)} after data store creation, keeping open only
+     * {@link StorageConnector#closeAllExcept(Object)} after data store creation, keeping open only
      * the needed resource.
      *
      * @param storage Information about the storage (URL, stream, {@link ucar.nc2.NetcdfFile} instance, <i>etc</i>).
      */
     @Override
-    public DataStore open(final DataStoreConnection storage) throws DataStoreException {
+    public DataStore open(final StorageConnector storage) throws DataStoreException {
         return new NetcdfStore(storage);
     }
 
     /**
      * Creates a decoder for the given input. This method invokes
-     * {@link DataStoreConnection#closeAllExcept(Object)} after the decoder has been created.
+     * {@link StorageConnector#closeAllExcept(Object)} after the decoder has been created.
      *
      * @param  listeners Where to send the warnings.
      * @param  storage Information about the input (file, input stream, <i>etc.</i>)
@@ -162,7 +162,7 @@ public class NetcdfStoreProvider extends
      * @throws IOException If an error occurred while opening the NetCDF file.
      * @throws DataStoreException If a logical error (other than I/O) occurred.
      */
-    static Decoder decoder(final WarningListeners<?> listeners, final DataStoreConnection storage)
+    static Decoder decoder(final WarningListeners<?> listeners, final StorageConnector storage)
             throws IOException, DataStoreException
     {
         Decoder decoder;

Modified: sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -24,10 +24,12 @@ import org.apache.sis.internal.netcdf.De
 import org.apache.sis.internal.netcdf.IOTestCase;
 import org.apache.sis.internal.netcdf.ucar.DecoderWrapper;
 import org.apache.sis.internal.netcdf.impl.ChannelDecoderTest;
+import org.apache.sis.metadata.iso.DefaultMetadata;
 import org.apache.sis.test.DependsOn;
 import org.junit.Test;
 
 import static org.apache.sis.test.Assert.*;
+import static org.apache.sis.test.TestUtilities.formatNameAndValue;
 
 
 /**
@@ -150,6 +152,6 @@ public final strictfp class MetadataRead
             "      └─Lineage\n" +
             "          └─Statement…………………………………………………………………… 2003-04-07 12:12:50 - created by gribtocdl" +
             "              2005-09-26T21:50:00 - edavis - add attributes for dataset discovery\n",
-        actual.toString());
+        formatNameAndValue(DefaultMetadata.castOrCopy(actual).asTreeTable()));
     }
 }

Modified: sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -24,7 +24,7 @@ import org.apache.sis.internal.netcdf.De
 import org.apache.sis.internal.netcdf.ucar.DecoderWrapper;
 import org.apache.sis.internal.netcdf.impl.ChannelDecoder;
 import org.apache.sis.internal.netcdf.impl.ChannelDecoderTest;
-import org.apache.sis.storage.DataStoreConnection;
+import org.apache.sis.storage.StorageConnector;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.test.DependsOn;
 import org.junit.Test;
@@ -45,21 +45,21 @@ import static org.opengis.test.Assert.*;
 })
 public final strictfp class NetcdfStoreProviderTest extends IOTestCase {
     /**
-     * Tests {@link NetcdfStoreProvider#canOpen(DataStoreConnection)} for an input stream which shall
+     * Tests {@link NetcdfStoreProvider#canOpen(StorageConnector)} for an input stream which shall
      * be recognized as a classic NetCDF file.
      *
      * @throws DataStoreException Should never happen.
      */
     @Test
     public void testCanOpenFromStream() throws DataStoreException {
-        final DataStoreConnection c = new DataStoreConnection(IOTestCase.getResourceAsStream(NCEP));
+        final StorageConnector c = new StorageConnector(IOTestCase.getResourceAsStream(NCEP));
         final NetcdfStoreProvider provider = new NetcdfStoreProvider();
         assertTrue(provider.canOpen(c));
         c.closeAllExcept(null);
     }
 
     /**
-     * Tests {@link NetcdfStoreProvider#canOpen(DataStoreConnection)} for a UCAR {@link NetcdfFile} object.
+     * Tests {@link NetcdfStoreProvider#canOpen(StorageConnector)} for a UCAR {@link NetcdfFile} object.
      *
      * @throws IOException If an error occurred while opening the NetCDF file.
      * @throws DataStoreException Should never happen.
@@ -67,14 +67,14 @@ public final strictfp class NetcdfStoreP
     @Test
     public void testCanOpenFromUCAR() throws IOException, DataStoreException {
         final NetcdfFile file = open(NCEP);
-        final DataStoreConnection c = new DataStoreConnection(file);
+        final StorageConnector c = new StorageConnector(file);
         final NetcdfStoreProvider provider = new NetcdfStoreProvider();
         assertTrue(provider.canOpen(c));
         file.close();
     }
 
     /**
-     * Tests {@link NetcdfStoreProvider#decoder(WarningListeners, DataStoreConnection)} for an input stream which
+     * Tests {@link NetcdfStoreProvider#decoder(WarningListeners, StorageConnector)} for an input stream which
      * shall be recognized as a classic NetCDF file. The provider shall instantiate a {@link ChannelDecoder}.
      *
      * @throws IOException If an error occurred while opening the NetCDF file.
@@ -82,14 +82,14 @@ public final strictfp class NetcdfStoreP
      */
     @Test
     public void testDecoderFromStream() throws IOException, DataStoreException {
-        final DataStoreConnection c = new DataStoreConnection(IOTestCase.getResourceAsStream(NCEP));
+        final StorageConnector c = new StorageConnector(IOTestCase.getResourceAsStream(NCEP));
         final Decoder decoder = NetcdfStoreProvider.decoder(TestCase.LISTENERS, c);
         assertInstanceOf(NCEP, ChannelDecoder.class, decoder);
         decoder.close();
     }
 
     /**
-     * Tests {@link NetcdfStoreProvider#decoder(WarningListeners, DataStoreConnection)} for a UCAR
+     * Tests {@link NetcdfStoreProvider#decoder(WarningListeners, StorageConnector)} for a UCAR
      * {@link NetcdfFile} object. The provider shall instantiate a {@link DecoderWrapper}.
      *
      * @throws IOException If an error occurred while opening the NetCDF file.
@@ -97,7 +97,7 @@ public final strictfp class NetcdfStoreP
      */
     @Test
     public void testDecoderFromUCAR() throws IOException, DataStoreException {
-        final DataStoreConnection c = new DataStoreConnection(open(NCEP));
+        final StorageConnector c = new StorageConnector(open(NCEP));
         final Decoder decoder = NetcdfStoreProvider.decoder(TestCase.LISTENERS, c);
         assertInstanceOf(NCEP, DecoderWrapper.class, decoder);
         decoder.close();

Modified: sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -18,7 +18,7 @@ package org.apache.sis.storage.netcdf;
 
 import org.opengis.metadata.Metadata;
 import org.apache.sis.internal.netcdf.IOTestCase;
-import org.apache.sis.storage.DataStoreConnection;
+import org.apache.sis.storage.StorageConnector;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.test.DependsOn;
 import org.junit.Test;
@@ -46,7 +46,7 @@ public final strictfp class NetcdfStoreT
      * @throws DataStoreException If an error occurred while reading the NetCDF file.
      */
     private static NetcdfStore create(final String dataset) throws DataStoreException {
-        return new NetcdfStore(new DataStoreConnection(IOTestCase.getResource(dataset)));
+        return new NetcdfStore(new StorageConnector(IOTestCase.getResource(dataset)));
     }
 
     /**

Modified: sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/test/suite/NetcdfTestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/test/suite/NetcdfTestSuite.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/test/suite/NetcdfTestSuite.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/test/suite/NetcdfTestSuite.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -45,7 +45,7 @@ import org.junit.BeforeClass;
 public final strictfp class NetcdfTestSuite extends TestSuite {
     /**
      * Verifies the list of tests before to run the suite.
-     * See {@link #verifyTestList(Class, Class<?>[])} for more information.
+     * See {@link #verifyTestList(Class, Class[])} for more information.
      */
     @BeforeClass
     public static void verifyTestList() {

Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelDataInput.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelDataInput.java?rev=1490723&r1=1490722&r2=1490723&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelDataInput.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelDataInput.java [UTF-8] Fri Jun  7 16:54:16 2013
@@ -684,8 +684,8 @@ public class ChannelDataInput {
             /*
              * Requested position is outside the current limits of the buffer,
              * but we can set the new position directly in the channel. Note
-             * that DataStoreConnection.rewind() needs the buffer content to
-             * be valid as a result of this seek, so we reload it immediately.
+             * that StorageConnector.rewind() needs the buffer content to be
+             * valid as a result of this seek, so we reload it immediately.
              */
             ((FileChannel) channel).position(channelOffset + position);
             bufferOffset = position;



Mime
View raw message