sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1773274 [6/9] - in /sis/trunk: ./ application/sis-console/src/main/artifact/ application/sis-openoffice/src/main/unopkg/ core/sis-build-helper/src/main/javadoc/ core/sis-feature/src/main/java/org/apache/sis/feature/ core/sis-feature/src/ma...
Date Thu, 08 Dec 2016 17:42:52 GMT
Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -18,15 +18,13 @@ package org.apache.sis.internal.util;
 
 import java.util.List;
 import java.util.Arrays;
+import java.util.Objects;
 import java.util.Iterator;
 import java.util.ServiceLoader;
 import java.util.NoSuchElementException;
 import org.apache.sis.util.Workaround;
 import org.apache.sis.internal.system.DefaultFactories;
 
-// Branch-specific imports
-import java.util.Objects;
-
 
 /**
  * An immutable set built from an iterator, which will be filled only when needed.
@@ -58,9 +56,8 @@ public class LazySet<E> extends SetOfUnk
     private final Class<E> service;
 
     /**
-     * The iterator to use for filling this set, or {@code null} if the iteration did not started yet
-     * or is finished. Those two cases can be distinguished by looking whether the {@link #cachedElements}
-     * array is null or not.
+     * The iterator to use for filling this set, or {@code null} if the iteration did not started yet or is finished.
+     * Those two cases can be distinguished by looking whether the {@link #cachedElements} array is null or not.
      *
      * @see #sourceIterator()
      */
@@ -82,11 +79,10 @@ public class LazySet<E> extends SetOfUnk
     private int numCached;
 
     /**
-     * Constructs a set to be filled by the elements from the specified source. Iteration will starts
-     * only when first needed, and at most one iteration will be performed (unless {@link #reload()}
-     * is invoked).
+     * Constructs a set to be filled by the elements from the specified source. Iteration will start only when
+     * first needed, and at most one iteration will be performed (unless {@link #reload()} is invoked).
      *
-     * @param  service  the type of service to request with {@link ServiceLoader}, or {@code null} if unknown.
+     * @param  service  the type of service to request with {@link ServiceLoader}.
      */
     public LazySet(final Class<E> service) {
         Objects.requireNonNull(service);
@@ -139,7 +135,7 @@ public class LazySet<E> extends SetOfUnk
      */
     @SuppressWarnings("unchecked")
     private boolean createCache() {
-        cachedElements = initialValues();   // No need to clone.
+        cachedElements = initialValues();                   // No need to clone.
         if (cachedElements != null) {
             numCached = cachedElements.length;
             if (numCached != 0) {
@@ -229,6 +225,7 @@ public class LazySet<E> extends SetOfUnk
      * negative index and for skipped elements.</p>
      */
     final boolean exists(final int index) {
+        assert index <= numCached : index;
         return (index < numCached) || canPullMore();
     }
 
@@ -239,6 +236,8 @@ public class LazySet<E> extends SetOfUnk
      * @return the element at the requested index.
      */
     final E get(final int index) {
+        assert numCached <= cachedElements.length : numCached;
+        assert index <= numCached : index;
         if (index >= numCached) {
             if (canPullMore()) {
                 cache(sourceIterator.next());

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySynchronizedIterator.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySynchronizedIterator.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySynchronizedIterator.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySynchronizedIterator.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -58,7 +58,7 @@ public final class LazySynchronizedItera
      * Creates a new iterator over all elements returned by the given providers.
      * Null elements in the given array will be ignored.
      *
-     * @param providers The providers of iterators. This array is <strong>not</strong> cloned.
+     * @param  providers  the providers of iterators. This array is <strong>not</strong> cloned.
      */
     public LazySynchronizedIterator(final Iterable<? extends E>[] providers) {
         this.providers = providers;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -209,7 +209,7 @@ public final class Fraction extends Numb
      * Returns the simplified result of dividing this fraction by the given fraction.
      *
      * @param  other  the fraction by which to divide this fraction.
-     * @return the simplified result of {@code this} ÷ {@code other}.
+     * @return the simplified result of {@code this} ∕ {@code other}.
      * @throws ArithmeticException if the result overflows.
      */
     public Fraction divide(final Fraction other) {

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -391,7 +391,7 @@ final class ConventionalUnit<Q extends Q
      * Returns the quotient of this unit with the one specified.
      *
      * @param  divisor  the unit divisor.
-     * @return {@code this} ÷ {@code divisor}
+     * @return {@code this} ∕ {@code divisor}
      */
     @Override
     public Unit<?> divide(final Unit<?> divisor) {

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -589,7 +589,7 @@ public class RangeFormat extends Format
             int startPosition = toAppendTo.length();
             if (value == null) {
                 switch (field) {
-                    case MIN_VALUE_FIELD: toAppendTo.append(minusSign);             // Fall through
+                    case MIN_VALUE_FIELD: toAppendTo.append(minusSign != '-' ? minusSign : '−');    // Fall through
                     case MAX_VALUE_FIELD: toAppendTo.append(infinity); break;
                 }
             } else {
@@ -770,9 +770,8 @@ public class RangeFormat extends Format
     {
         final int length = source.length();
         /*
-         * Skip leading whitespace and find the first non-blank character.  It is usually
-         * an opening bracket, except if minimal and maximal values are the same in which
-         * case the brackets may be omitted.
+         * Skip leading whitespace and find the first non-blank character. It is usually an opening bracket,
+         * except if minimal and maximal values are the same in which case the brackets may be omitted.
          */
         int index, c;
         for (index = pos.getIndex(); ; index += Character.charCount(c)) {
@@ -787,9 +786,8 @@ public class RangeFormat extends Format
         final boolean isMinIncluded, isMaxIncluded;
         if (!isOpen(c)) {
             /*
-             * No bracket, or curly bracket. We have eigher an empty range (as in "{}")
-             * or a single value for the range. The braces are optional for single value.
-             * In other words, this block parses all of the following cases:
+             * No bracket, or curly bracket. We have eigher an empty range (as in "{}") or a single value for the range.
+             * The braces are optional for single value. In other words, this block parses all of the following cases:
              *
              *  - {}
              *  - {value}
@@ -838,13 +836,12 @@ public class RangeFormat extends Format
             }
         } else {
             /*
-             * We found an opening bracket. Skip the whitespaces. If the next
-             * character is a closing bracket, then we have an empty range.
-             * The later case is an extension to the standard format, since
-             * empty ranges are usually represented by {} instead than [].
+             * We found an opening bracket. Skip the whitespaces. If the next character is a closing bracket,
+             * then we have an empty range. The later case is an extension to the standard format since empty
+             * ranges are usually represented by {} instead than [].
              */
             isMinIncluded = (c == openInclusive);
-            do { // Skip whitespaces.
+            do {                                            // Skip whitespaces.
                 index += Character.charCount(c);
                 if (index >= length) {
                     pos.setErrorIndex(length);
@@ -859,16 +856,16 @@ public class RangeFormat extends Format
                 index += Character.charCount(c);
             } else {
                 /*
-                 * At this point, we have determined that the range is non-empty and there
-                 * is at least one value to parse. First, parse the minimal value. If we
-                 * fail to parse, check if it was the infinity value (note that infinity
-                 * should have been parsed successfully if the format is DecimalFormat).
+                 * At this point, we have determined that the range is non-empty and there is at least one value to parse.
+                 * First, parse the minimal value. If we fail to parse, check if it was the infinity value. Note that "-∞"
+                 * and "∞" should have been parsed successfully if the format is DecimalFormat, but not necessarily "−∞".
+                 * The difference is in the character used for the minus sign (ASCII hyphen versus Unicode minus sign).
                  */
                 pos.setIndex(index);
                 int savedIndex = index;
                 Object value = elementFormat.parseObject(source, pos);
                 if (value == null) {
-                    if (c == minusSign) {
+                    if (c == minusSign || c == '−') {
                         index += Character.charCount(c);
                     }
                     if (!source.regionMatches(index, infinity, 0, infinity.length())) {
@@ -879,11 +876,10 @@ public class RangeFormat extends Format
                 pos.setErrorIndex(savedIndex);              // In case of failure during the conversion.
                 minValue = convert(value);
                 /*
-                 * Parsing of minimal value succeed and its type is valid. Now look for the
-                 * separator. If it is not present, then assume that we have a single value
-                 * for the range. The default RangeFormat implementation does not format
-                 * brackets in such case (see the "No bracket" case above), but we make the
-                 * parser tolerant to the case where the brackets are present.
+                 * Parsing of 'minValue' succeed and its type is valid. Now look for the separator. If it is not present,
+                 * then assume that we have a single value for the range. The default RangeFormat implementation does not
+                 * format brackets in such case (see the "No bracket" case above), but we make the parser tolerant to the
+                 * case where the brackets are present.
                  */
                 for (index = pos.getIndex(); ; index += Character.charCount(c)) {
                     if (index >= length) {
@@ -904,6 +900,10 @@ public class RangeFormat extends Format
                         c = source.codePointAt(index);
                         if (!Character.isWhitespace(c)) break;
                     }
+                    /*
+                     * Now parse the maximum value. A special case is applied for infinity value
+                     * in a similar way than we did for the minimal value.
+                     */
                     pos.setIndex(index);
                     value = elementFormat.parseObject(source, pos);
                     if (value == null) {
@@ -915,9 +915,8 @@ public class RangeFormat extends Format
                     pos.setErrorIndex(index);               // In case of failure during the conversion.
                     maxValue = convert(value);
                     /*
-                     * Skip one last time the whitespaces. The check for the closing bracket
-                     * (which is mandatory) is performed outside the "if" block since it is
-                     * common to the two "if ... else" cases.
+                     * Skip one last time the whitespaces. The check for the closing bracket (which is mandatory)
+                     * is performed outside the "if" block since it is common to the two "if ... else" cases.
                      */
                     for (index = pos.getIndex(); ; index += Character.charCount(c)) {
                         if (index >= length) {
@@ -972,8 +971,8 @@ public class RangeFormat extends Format
                 min  = Numbers.cast(min, type);
                 max  = Numbers.cast(max, type);
             }
-            if (min.doubleValue() == Double.NEGATIVE_INFINITY) min = null;
-            if (max.doubleValue() == Double.POSITIVE_INFINITY) max = null;
+            if (min != null && min.doubleValue() == Double.NEGATIVE_INFINITY) min = null;
+            if (max != null && max.doubleValue() == Double.POSITIVE_INFINITY) max = null;
             if (unit != null) {
                 final MeasurementRange<?> range = new MeasurementRange(type, min, isMinIncluded, max, isMaxIncluded, unit);
                 return range;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -399,7 +399,7 @@ final class SystemUnit<Q extends Quantit
      * Returns the quotient of this unit with the one specified.
      *
      * @param  divisor  the unit divisor.
-     * @return {@code this} ÷ {@code divisor}
+     * @return {@code this} ∕ {@code divisor}
      */
     @Override
     public Unit<?> divide(final Unit<?> divisor) {

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -296,7 +296,7 @@ public class UnitFormat extends Format i
     /**
      * Creates a new format for the given locale.
      *
-     * @param   locale  the locale to use for parsing and formatting units.
+     * @param  locale  the locale to use for parsing and formatting units.
      */
     public UnitFormat(final Locale locale) {
         ArgumentChecks.ensureNonNull("locale", locale);
@@ -857,6 +857,7 @@ public class UnitFormat extends Format i
                 case '⋅': // Fallthrough
                 case '×': next = MULTIPLY; break;
                 case '÷':
+                case '⁄': // Fraction slash
                 case '/':
                 case '∕': next = DIVIDE; break;
                 default:  continue;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -22,8 +22,9 @@ import javax.measure.UnitConverter;
 import javax.measure.format.ParserException;
 import javax.measure.Quantity;
 import javax.measure.quantity.*;
-import javax.measure.quantity.Angle;            // Because of name collision with Angle in this SIS package.
-import org.opengis.geometry.DirectPosition;     // For javadoc
+import javax.measure.quantity.Angle;                // Because of name collision with Angle in this SIS package.
+import org.opengis.geometry.DirectPosition;         // For javadoc
+import org.opengis.referencing.cs.AxisDirection;    // For javadoc
 
 import org.apache.sis.util.Static;
 import org.apache.sis.util.Workaround;
@@ -86,7 +87,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI units:</td>         <td style="word-spacing:1em"><u>{@code NANOMETRE}</u>, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #METRES_PER_SECOND}.</td></tr>
      * </table></div>
      *
@@ -104,7 +105,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, <u>{@code MILLIMETRE}</u>, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #METRES_PER_SECOND}.</td></tr>
      * </table></div>
      *
@@ -120,7 +121,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, <u>{@code CENTIMETRE}</u>, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #METRES_PER_SECOND}.</td></tr>
      * </table></div>
      *
@@ -136,7 +137,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <u><b>{@code METRE}</b></u>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #METRES_PER_SECOND}.</td></tr>
      * </table></div>
      *
@@ -152,7 +153,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, <u>{@code KILOMETRE}</u>.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #KILOMETRES_PER_HOUR}.</td></tr>
      * </table></div>
      *
@@ -174,7 +175,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, <u>{@code NAUTICAL_MILE}</u>.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, <u>{@code NAUTICAL_MILE}</u>.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #KILOMETRES_PER_HOUR}.</td></tr>
      * </table></div>
      *
@@ -194,7 +195,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #US_SURVEY_FOOT}, <u>{@code STATUTE_MILE}</u>, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, <u>{@code STATUTE_MILE}</u>, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #KILOMETRES_PER_HOUR}.</td></tr>
      * </table></div>
      *
@@ -211,7 +212,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, <u>{@code US_SURVEY_FOOT}</u>, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, {@link #CLARKE_FOOT}, <u>{@code US_SURVEY_FOOT}</u>, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #METRES_PER_SECOND}.</td></tr>
      * </table></div>
      *
@@ -220,6 +221,22 @@ public final class Units extends Static
     public static final Unit<Length> US_SURVEY_FOOT;
 
     /**
+     * Unit of measurement defined as 0.3047972654 metres.
+     * The {@linkplain ConventionalUnit#getSystemUnit() system unit} is {@link #METRE},
+     * the unlocalized name is “Clarke’s foot” and the identifier is EPSG:9005.
+     *
+     * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
+     * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
+     *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, {@link #FOOT}, <u>{@code CLARKE_FOOT}</u>, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #METRES_PER_SECOND}.</td></tr>
+     * </table></div>
+     *
+     * @since 0.8
+     */
+    public static final Unit<Length> CLARKE_FOOT;
+
+    /**
      * Unit of measurement defined as exactly 0.3048 metres (1 ft).
      * The {@linkplain ConventionalUnit#getSystemUnit() system unit} is {@link #METRE},
      * the unlocalized name is “foot” and the identifier is EPSG:9002.
@@ -227,7 +244,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, <u>{@code FOOT}</u>, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, {@link #INCH}, <u>{@code FOOT}</u>, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #METRES_PER_SECOND}.</td></tr>
      * </table></div>
      *
@@ -243,7 +260,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, <u>{@code INCH}</u>, {@link #FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #POINT}, <u>{@code INCH}</u>, {@link #FOOT}, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #METRES_PER_SECOND}.</td></tr>
      * </table></div>
      *
@@ -260,7 +277,7 @@ public final class Units extends Static
      * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p>
      * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25">
      *   <tr><td>SI length units:</td>  <td style="word-spacing:1em">{@link #NANOMETRE}, {@link #MILLIMETRE}, {@link #CENTIMETRE}, <b>{@link #METRE}</b>, {@link #KILOMETRE}.</td></tr>
-     *   <tr><td>In other systems:</td> <td style="word-spacing:1em"><u>{@code POINT}</u>, {@link #INCH}, {@link #FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
+     *   <tr><td>In other systems:</td> <td style="word-spacing:1em"><u>{@code POINT}</u>, {@link #INCH}, {@link #FOOT}, {@link #CLARKE_FOOT}, {@link #US_SURVEY_FOOT}, {@link #STATUTE_MILE}, {@link #NAUTICAL_MILE}.</td></tr>
      *   <tr><td>Derived units:</td>    <td style="word-spacing:1em">{@link #SQUARE_METRE}, {@link #CUBIC_METRE}, {@link #METRES_PER_SECOND}.</td></tr>
      * </table></div>
      *
@@ -1078,7 +1095,7 @@ public final class Units extends Static
         /*
          * All Unit<Length>.
          */
-        m.related(6);
+        m.related(7);
         METRE          = m;
         NANOMETRE      = add(m, nano,                                     "nm",    UnitRegistry.SI,       (short) 0);
         MILLIMETRE     = add(m, milli,                                    "mm",    UnitRegistry.SI,       (short) 1025);
@@ -1086,7 +1103,8 @@ public final class Units extends Static
         KILOMETRE      = add(m, kilo,                                     "km",    UnitRegistry.SI,       (short) 9036);
         NAUTICAL_MILE  = add(m, LinearConverter.scale(   1852,        1), "M",     UnitRegistry.OTHER,    (short) 9030);
         STATUTE_MILE   = add(m, LinearConverter.scale(1609344,      100), "mi",    UnitRegistry.IMPERIAL, (short) 9093);
-        US_SURVEY_FOOT = add(m, LinearConverter.scale(   1200,     3937), "ft_US", UnitRegistry.OTHER,    (short) 9003);
+        US_SURVEY_FOOT = add(m, LinearConverter.scale(   1200,     3937), "ftUS",  UnitRegistry.OTHER,    (short) 9003);
+        CLARKE_FOOT    = add(m, LinearConverter.scale(3047972654d, 1E10), "ftCla", UnitRegistry.OTHER,    (short) 9005);
         FOOT           = add(m, LinearConverter.scale(   3048,    10000), "ft",    UnitRegistry.IMPERIAL, (short) 9002);
         INCH           = add(m, LinearConverter.scale(    254,    10000), "in",    UnitRegistry.IMPERIAL, (short) 0);
         POINT          = add(m, LinearConverter.scale( 996264, 72000000), "pt",    UnitRegistry.OTHER,    (short) 0);
@@ -1681,6 +1699,8 @@ public final class Units extends Static
      * @return the EPSG code of the given units, or {@code null} if unknown.
      *
      * @since 0.4
+     *
+     * @see org.apache.sis.referencing.cs.CoordinateSystems#getEpsgCode(Unit, AxisDirection...)
      */
     public static Integer getEpsgCode(Unit<?> unit, final boolean inAxis) {
         if (unit != null) {

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Classes.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Classes.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Classes.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Classes.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -403,7 +403,7 @@ next:       for (final Class<?> candidat
      *         at least one non-null element.
      */
     public static Class<?> findSpecializedClass(final Iterable<?> objects) {
-        final Set<Class<?>> types = getClasses(objects);
+        final Set<Class<?>> types = (Set<Class<?>>) getClasses(objects);
         types.remove(null);
         /*
          * Removes every classes in the types collection which are assignable from an other
@@ -455,7 +455,7 @@ next:       for (final Class<?> candidat
      *         given collection does not contain at least one non-null element.
      */
     public static Class<?> findCommonClass(final Iterable<?> objects) {
-        final Set<Class<?>> types = getClasses(objects);
+        final Set<Class<?>> types = (Set<Class<?>>) getClasses(objects);
         types.remove(null);
         return common(types);
     }

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=1773274&r1=1773273&r2=1773274&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] Thu Dec  8 17:42:51 2016
@@ -60,9 +60,8 @@ public interface Deprecable {
      *
      * <div class="note"><b>Example:</b> "superseded by code XYZ".</div>
      *
-     * @return Comments about this instance, or {@code null} if none. Shall be the
-     *         reason for deprecation or the alternative to use if this instance
-     *         {@linkplain #isDeprecated() is deprecated}.
+     * @return comments about this instance, or {@code null} if none. Shall be the reason for deprecation
+     *         or the alternative to use if this instance {@linkplain #isDeprecated() is deprecated}.
      */
     InternationalString getRemarks();
 }

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=1773274&r1=1773273&r2=1773274&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] Thu Dec  8 17:42:51 2016
@@ -22,10 +22,8 @@ import java.util.Collection;
 import java.util.LinkedList;
 import java.util.Map;
 import java.util.Set;
-import org.apache.sis.util.collection.CheckedContainer;
-
-// Branch-dependent imports
 import java.util.Objects;
+import org.apache.sis.util.collection.CheckedContainer;
 
 
 /**
@@ -69,8 +67,8 @@ public final class Utilities extends Sta
      *     return deepEquals(object1, object2, ComparisonMode.IGNORE_METADATA);
      * }
      *
-     * @param  object1 The first object to compare (may be null).
-     * @param  object2 The second object to compare (may be null).
+     * @param  object1  the first object to compare (may be null).
+     * @param  object2  the second object to compare (may be null).
      * @return {@code true} if both objects are equal, ignoring metadata.
      *
      * @see #deepEquals(Object, Object, ComparisonMode)
@@ -103,8 +101,8 @@ public final class Utilities extends Sta
      *     return deepEquals(object1, object2, ComparisonMode.APPROXIMATIVE);
      * }
      *
-     * @param  object1 The first object to compare (may be null).
-     * @param  object2 The second object to compare (may be null).
+     * @param  object1  the first object to compare (may be null).
+     * @param  object2  the second object to compare (may be null).
      * @return {@code true} if both objects are approximatively equal.
      *
      * @see #deepEquals(Object, Object, ComparisonMode)
@@ -123,9 +121,9 @@ public final class Utilities extends Sta
      *
      * <p>If both arguments are arrays or collections, then the elements are compared recursively.</p>
      *
-     * @param  object1 The first object to compare, or {@code null}.
-     * @param  object2 The second object to compare, or {@code null}.
-     * @param  mode    The strictness level of the comparison.
+     * @param  object1  the first object to compare, or {@code null}.
+     * @param  object2  the second object to compare, or {@code null}.
+     * @param  mode     the strictness level of the comparison.
      * @return {@code true} if both objects are equal for the given level of strictness.
      *
      * @see #equalsIgnoreMetadata(Object, Object)
@@ -285,9 +283,9 @@ public final class Utilities extends Sta
     /**
      * Returns an assertion error message for mismatched types.
      *
-     * @param  expected The expected type.
-     * @param  actual The actual object (not its type).
-     * @return The error message to use in assertions.
+     * @param  expected  the expected type.
+     * @param  actual  the actual object (not its type).
+     * @return the error message to use in assertions.
      */
     private static String mismatchedType(final Class<?> expected, final Object actual) {
         return "Expected " + expected + " but got " + actual.getClass();
@@ -324,8 +322,8 @@ public final class Utilities extends Sta
      * exactly as {@code Object}, not as some subtype like {@code Object[]}, {@code String} or
      * {@code float[]}. In the later cases, use the appropriate {@link Arrays} method instead.
      *
-     * @param object The object to compute hash code. May be {@code null}.
-     * @return The hash code of the given object.
+     * @param  object  the object to compute hash code. May be {@code null}.
+     * @return the hash code of the given object.
      */
     public static int deepHashCode(final Object object) {
         if (object == null) {
@@ -359,8 +357,8 @@ public final class Utilities extends Sta
      * exactly as {@code Object}, not as some subtype like {@code Object[]}, {@code Number} or
      * {@code float[]}. In the later cases, use the appropriate {@link Arrays} method instead.
      *
-     * @param object The object to format as a string. May be {@code null}.
-     * @return A string representation of the given object.
+     * @param  object  the object to format as a string. May be {@code null}.
+     * @return a string representation of the given object.
      */
     public static String deepToString(final Object object) {
         if (object instanceof Object[])  return Arrays.deepToString((Object[]) object);

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/BackingStoreException.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/BackingStoreException.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/BackingStoreException.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/BackingStoreException.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -21,10 +21,10 @@ import java.sql.SQLException;
 
 
 /**
- * Thrown to indicate that an operation could not complete because of a failure in the backing
- * store (a file or a database). This exception is thrown by collection implementations that are
- * not allowed to throw checked exceptions. This exception usually has an {@link IOException} or
- * a {@link SQLException} as its {@linkplain #getCause() cause}.
+ * Thrown to indicate that an operation could not complete because of a failure in the backing store
+ * (a file or a database). This exception is thrown by implementations of API (collection, streams,
+ * <i>etc.</i> that are not allowed to throw checked exceptions.
+ * This exception usually has an {@link IOException} or a {@link SQLException} as its {@linkplain #getCause() cause}.
  *
  * <p>This method provides a {@link #unwrapOrRethrow(Class)} convenience method which can be used
  * for re-throwing the cause as in the example below. This allows client code to behave as if a

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -138,8 +138,8 @@ public final class Types extends Static
      * annotations are not inherited). If no annotation is found, then this method does not fallback
      * on the Java name since, as the name implies, this method is about standard names.
      *
-     * @param  type The GeoAPI interface or code list from which to get the ISO name, or {@code null}.
-     * @return The ISO name for the given type, or {@code null} if none or if the given type is {@code null}.
+     * @param  type  the GeoAPI interface or code list from which to get the ISO name, or {@code null}.
+     * @return the ISO name for the given type, or {@code null} if none or if the given type is {@code null}.
      *
      * @see #forStandardName(String)
      */
@@ -695,7 +695,7 @@ public final class Types extends Static
         boolean isSorted = false;
         if (properties instanceof SortedMap<?,?>) {
             final SortedMap<String,?> sorted = (SortedMap<String,?>) properties;
-            if (sorted.comparator() == null) { // We want natural ordering.
+            if (sorted.comparator() == null) {                                      // We want natural ordering.
                 properties = sorted.tailMap(prefix);
                 isSorted = true;
             }
@@ -711,10 +711,10 @@ public final class Types extends Static
         for (final Map.Entry<String,?> entry : properties.entrySet()) {
             final String key = entry.getKey();
             if (key == null) {
-                continue; // Tolerance for Map that accept null keys.
+                continue;                       // Tolerance for Map that accept null keys.
             }
             if (!key.startsWith(prefix)) {
-                if (isSorted) break; // If the map is sorted, there is no need to check next entries.
+                if (isSorted) break;            // If the map is sorted, there is no need to check next entries.
                 continue;
             }
             final Locale locale;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/Logging.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/Logging.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/Logging.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/Logging.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -124,7 +124,7 @@ public final class Logging extends Stati
      * Factory changes will take effect only if this method is invoked before the initialization
      * of such classes.
      *
-     * @param factory The new logger factory, or {@code null} if none.
+     * @param  factory  the new logger factory, or {@code null} if none.
      */
     @Configuration
     public static void setLoggerFactory(final LoggerFactory<?> factory) {
@@ -148,8 +148,8 @@ public final class Logging extends Stati
      * Only if no factory was found or if the factory choose to not redirect the loggings, then this
      * method delegate to <code>{@linkplain Logger#getLogger(String) Logger.getLogger}(name)</code>.
      *
-     * @param  name The logger name.
-     * @return A logger for the specified name.
+     * @param  name  the logger name.
+     * @return a logger for the specified name.
      */
     public static Logger getLogger(final String name) {
         final LoggerFactory<?> factory = Logging.factory;
@@ -166,8 +166,8 @@ public final class Logging extends Stati
      * Returns a logger for the specified class. This convenience method invokes
      * {@link #getLogger(String)} with the package name as the logger name.
      *
-     * @param  classe The class for which to obtain a logger.
-     * @return A logger for the specified class.
+     * @param  classe  the class for which to obtain a logger.
+     * @return a logger for the specified class.
      */
     static Logger getLogger(Class<?> classe) {
         Class<?> outer;
@@ -200,9 +200,9 @@ public final class Logging extends Stati
      *   <li>{@linkplain Logger#log(LogRecord) Log} the modified record.</li>
      * </ul>
      *
-     * @param classe The class for which to obtain a logger.
-     * @param method The name of the method which is logging a record.
-     * @param record The record to log.
+     * @param  classe  the class for which to obtain a logger.
+     * @param  method  the name of the method which is logging a record.
+     * @param  record  the record to log.
      */
     public static void log(final Class<?> classe, final String method, final LogRecord record) {
         record.setSourceClassName(classe.getCanonicalName());
@@ -244,10 +244,10 @@ public final class Logging extends Stati
      * trace element where the fully qualified class name starts with {@code "org.apache.sis.image"} or
      * {@code "org.apache.sis.image.io"}, but not {@code "org.apache.sis.imageio"}.</div>
      *
-     * @param logger  Where to log the error, or {@code null} for inferring a default value from other arguments.
-     * @param classe  The class where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param method  The method where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param error   The error, or {@code null} if none.
+     * @param  logger  where to log the error, or {@code null} for inferring a default value from other arguments.
+     * @param  classe  the class where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  method  the method where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  error   the error, or {@code null} if none.
      * @return {@code true} if the error has been logged, or {@code false} if the given {@code error}
      *         was null or if the logger does not log anything at {@link Level#WARNING}.
      *
@@ -264,11 +264,11 @@ public final class Logging extends Stati
     /**
      * Implementation of {@link #unexpectedException(Logger, Class, String, Throwable)}.
      *
-     * @param logger  Where to log the error, or {@code null} for inferring a default value from other arguments.
-     * @param classe  The fully qualified class name where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param method  The method where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param error   The error, or {@code null} if none.
-     * @param level   The logging level.
+     * @param  logger  where to log the error, or {@code null} for inferring a default value from other arguments.
+     * @param  classe  the fully qualified class name where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  method  the method where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  error   the error, or {@code null} if none.
+     * @param  level   the logging level.
      * @return {@code true} if the error has been logged, or {@code false} if the given {@code error}
      *         was null or if the logger does not log anything at the specified level.
      */
@@ -396,10 +396,10 @@ public final class Logging extends Stati
      * {@code jre/lib/logging.properties} file is illegal, then {@link MonolineFormatter} will log
      * this problem and use a default time pattern.</div>
      *
-     * @param logger  Where to log the error, or {@code null} for inferring a default value from other arguments.
-     * @param classe  The class where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param method  The method name where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param error   The error, or {@code null} if none.
+     * @param  logger  where to log the error, or {@code null} for inferring a default value from other arguments.
+     * @param  classe  the class where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  method  the method name where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  error   the error, or {@code null} if none.
      * @return {@code true} if the error has been logged, or {@code false} if the given {@code error}
      *         was null or if the logger does not log anything at {@link Level#CONFIG}.
      *
@@ -415,10 +415,10 @@ public final class Logging extends Stati
      * {@link #unexpectedException(Logger,Class,String,Throwable) unexpectedException(…)}
      * except that it does not log the stack trace and uses a lower logging level.
      *
-     * @param logger  Where to log the error, or {@code null} for inferring a default value from other arguments.
-     * @param classe  The class where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param method  The method name where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param error   The error, or {@code null} if none.
+     * @param  logger  where to log the error, or {@code null} for inferring a default value from other arguments.
+     * @param  classe  the class where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  method  the method name where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  error   the error, or {@code null} if none.
      * @return {@code true} if the error has been logged, or {@code false} if the given {@code error}
      *         was null or if the logger does not log anything at {@link Level#FINE}.
      *
@@ -437,10 +437,10 @@ public final class Logging extends Stati
      * {@link #unexpectedException(Logger,Class,String,Throwable) unexpectedException}
      * except that it logs the message at the {@link Level#SEVERE SEVERE} level.
      *
-     * @param logger  Where to log the error, or {@code null} for inferring a default value from other arguments.
-     * @param classe  The class where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param method  The method name where the error occurred, or {@code null} for inferring a default value from other arguments.
-     * @param error   The error, or {@code null} if none.
+     * @param  logger  where to log the error, or {@code null} for inferring a default value from other arguments.
+     * @param  classe  the class where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  method  the method name where the error occurred, or {@code null} for inferring a default value from other arguments.
+     * @param  error   the error, or {@code null} if none.
      * @return {@code true} if the error has been logged, or {@code false} if the given {@code error}
      *         was null or if the logger does not log anything at {@link Level#SEVERE}.
      *

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=1773274&r1=1773273&r2=1773274&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] Thu Dec  8 17:42:51 2016
@@ -46,11 +46,11 @@ import org.apache.sis.util.resources.Err
  * on the part of the caller. Subclasses should make sure that any overridden methods remain safe to call
  * from multiple threads.
  *
- * @param <S> The type of the source of warnings.
+ * @param  <S>  the type of the source of warnings.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
- * @version 0.4
+ * @version 0.8
  * @module
  *
  * @see WarningListener
@@ -79,7 +79,7 @@ public class WarningListeners<S> impleme
 
     /**
      * Creates a new instance with initially no listener.
-     * Warnings will be logger to the given logger, unless at least one listener is registered.
+     * Warnings will be logger to the logger, unless at least one listener is registered.
      *
      * @param source  the declared source of warnings. This is not necessarily the real source,
      *                but this is the source that the implementor wants to declare as public API.
@@ -90,6 +90,22 @@ public class WarningListeners<S> impleme
     }
 
     /**
+     * Creates a new instance initialized with the same listeners than the given instance.
+     *
+     * @param source  the declared source of warnings. This is not necessarily the real source,
+     *                but this is the source that the implementor wants to declare as public API.
+     * @param other   the existing instance from which to copy the listeners, or {@code null} if none.
+     *
+     * @since 0.8
+     */
+    public WarningListeners(final S source, final WarningListeners<? super S> other) {
+        this(source);
+        if (other != null) {
+            listeners = other.listeners;
+        }
+    }
+
+    /**
      * The locale to use for formatting warning messages, or {@code null} for the default locale.
      * If the {@code source} object given to the constructor implements the {@link Localized} interface,
      * then this method delegates to its {@code getLocale()} method. Otherwise this method returns {@code null}.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -166,7 +166,7 @@ public final class Errors extends Indexe
         public static final short ClosedReader_1 = 19;
 
         /**
-         * Database error while creating a ‘{0}’ object for code “{1}”.
+         * Database error while creating a ‘{0}’ object for the “{1}” identifier.
          */
         public static final short DatabaseError_2 = 20;
 
@@ -670,6 +670,11 @@ public final class Errors extends Indexe
         public static final short RecordAlreadyDefined_2 = 116;
 
         /**
+         * No record found in “{0}” table for “{1}” key.
+         */
+        public static final short RecordNotFound_2 = 164;
+
+        /**
          * Recursive call while creating an object for the “{0}” key.
          */
         public static final short RecursiveCreateCallForKey_1 = 117;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties [ISO-8859-1] Thu Dec  8 17:42:51 2016
@@ -44,7 +44,7 @@ CircularReference                 = Circ
 ClassNotFinal_1                   = Class \u2018{0}\u2019 is not final.
 CloneNotSupported_1               = Can not clone an object of type \u2018{0}\u2019.
 ClosedReader_1                    = This {0} reader is closed.
-DatabaseError_2                   = Database error while creating a \u2018{0}\u2019 object for code \u201c{1}\u201d.
+DatabaseError_2                   = Database error while creating a \u2018{0}\u2019 object for the \u201c{1}\u201d identifier.
 DeadThread_1                      = Thread \u201c{0}\u201d is dead.
 DisposedInstanceOf_1              = This instance of \u2018{0}\u2019 has been disposed.
 DuplicatedElement_1               = Element \u201c{0}\u201d is duplicated.
@@ -145,6 +145,7 @@ OddArrayLength_1                  = Arra
 OutsideDomainOfValidity           = Coordinate is outside the domain of validity.
 PropertyNotFound_2                = No property named \u201c{1}\u201d has been found in \u201c{0}\u201d.
 RecordAlreadyDefined_2            = Record \u201c{1}\u201d is already defined in schema \u201c{0}\u201d.
+RecordNotFound_2                  = No record found in \u201c{0}\u201d table for \u201c{1}\u201d key.
 RecursiveCreateCallForKey_1       = Recursive call while creating an object for the \u201c{0}\u201d key.
 RequireDecimalSeparator           = A decimal separator is required.
 StalledThread_1                   = Thread \u201c{0}\u201d seems stalled.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties [ISO-8859-1] Thu Dec  8 17:42:51 2016
@@ -41,7 +41,7 @@ CircularReference                 = R\u0
 ClassNotFinal_1                   = La classe \u2018{0}\u2019 n\u2019est pas finale.
 CloneNotSupported_1               = Un objet de type \u2018{0}\u2019 ne peut pas \u00eatre clon\u00e9.
 ClosedReader_1                    = Ce lecteur {0} est ferm\u00e9.
-DatabaseError_2                   = Erreur de base de donn\u00e9es lors de la cr\u00e9ation d\u2019un objet \u2018{0}\u2019 pour le code \u00ab\u202f{1}\u202f\u00bb.
+DatabaseError_2                   = Erreur de base de donn\u00e9es lors de la cr\u00e9ation d\u2019un objet \u2018{0}\u2019 pour l\u2019identifiant \u00ab\u202f{1}\u202f\u00bb.
 DeadThread_1                      = La t\u00e2che \u00ab\u202f{0}\u202f\u00bb est morte.
 DisposedInstanceOf_1              = Cette instance de \u2018{0}\u2019 a \u00e9t\u00e9 dispos\u00e9e.
 DuplicatedElement_1               = L\u2019\u00e9lement \u00ab\u202f{0}\u202f\u00bb est dupliqu\u00e9.
@@ -141,6 +141,7 @@ OddArrayLength_1                  = La l
 OutsideDomainOfValidity           = La coordonn\u00e9e est en dehors du domaine de validit\u00e9.
 PropertyNotFound_2                = Aucune propri\u00e9t\u00e9 nomm\u00e9e \u00ab\u202f{1}\u202f\u00bb n\u2019a \u00e9t\u00e9 trouv\u00e9e dans \u00ab\u202f{0}\u202f\u00bb.
 RecordAlreadyDefined_2            = L\u2019enregistrement \u00ab\u202f{1}\u202f\u00bb est d\u00e9j\u00e0 d\u00e9finit dans le sch\u00e9ma \u00ab\u202f{0}\u202f\u00bb.
+RecordNotFound_2                  = Aucune entr\u00e9e n\u2019a \u00e9t\u00e9 trouv\u00e9e dans la table \u00ab\u202f{0}\u202f\u00bb pour la cl\u00e9 \u00ab\u202f{1}\u202f\u00bb.
 RecursiveCreateCallForKey_1       = Appel r\u00e9cursif lors de la cr\u00e9ation d\u2019un objet pour la cl\u00e9 \u00ab\u202f{0}\u202f\u00bb.
 RequireDecimalSeparator           = Un s\u00e9parateur d\u00e9cimal est requis.
 StalledThread_1                   = La t\u00e2che \u00ab\u202f{0}\u202f\u00bb semble bloqu\u00e9e.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -81,6 +81,11 @@ public final class Messages extends Inde
         public static final short ConfigurationOf_3 = 4;
 
         /**
+         * Connected to geospatial database on “{0}”.
+         */
+        public static final short ConnectedToGeospatialDatabase_1 = 30;
+
+        /**
          * Created an instance of ‘{0}’ from the “{1}” identifier in {2} seconds.
          */
         public static final short CreateDurationFromIdentifier_3 = 5;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties [ISO-8859-1] Thu Dec  8 17:42:51 2016
@@ -19,6 +19,7 @@ CanNotCreateSchema_1             = Can n
 # In following message, the first characters of parameter {2} should be a line separator ("\r", "\n" or "\r\n").
 CanNotInstantiateForIdentifier_3 = Can not instantiate the object of type \u2018{0}\u2019 identified by \u201c{1}\u201d. Reason is:{2}
 ChangedContainerCapacity_2       = Changed the container capacity from {0} to {1} elements.
+ConnectedToGeospatialDatabase_1  = Connected to geospatial database on \u201c{0}\u201d.
 ConfigurationOf_3                = Configuration of \u201c{0}\u201d received on {1} in {2} seconds.
 CreatedNamedObject_2             = Created an instance of \u2018{0}\u2019 named \u201c{1}\u201d.
 CreatedIdentifiedObject_3        = Created an instance of \u2018{0}\u2019 named \u201c{1}\u201d with the \u201c{2}\u201d identifier.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties [ISO-8859-1] Thu Dec  8 17:42:51 2016
@@ -26,6 +26,7 @@ CanNotCreateSchema_1             = Ne pe
 # In following message, the first characters of parameter {2} should be a line separator ("\r", "\n" or "\r\n").
 CanNotInstantiateForIdentifier_3 = Ne peut pas cr\u00e9er l\u2019objet de type \u2018{0}\u2019 identifi\u00e9 par \u00ab\u202f{1}\u202f\u00bb. La raison est\u00a0:{2}
 ChangedContainerCapacity_2       = Changement de la capacit\u00e9 du conteneur de {0} vers {1} \u00e9l\u00e9ments.
+ConnectedToGeospatialDatabase_1  = Connect\u00e9 \u00e0 la base de donn\u00e9es g\u00e9ospatiales sur \u00ab\u202f{0}\u202f\u00bb.
 ConfigurationOf_3                = Configuration de \u00ab\u202f{0}\u202f\u00bb re\u00e7ue le {1} en {2} secondes.
 CreatedNamedObject_2             = Cr\u00e9ation d\u2019une instance de \u2018{0}\u2019 nomm\u00e9e \u00ab\u202f{1}\u202f\u00bb.
 CreatedIdentifiedObject_3        = Cr\u00e9ation d\u2019une instance de \u2018{0}\u2019 nomm\u00e9e \u00ab\u202f{1}\u202f\u00bb avec l\u2019identifiant \u00ab\u202f{2}\u202f\u00bb.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -197,6 +197,11 @@ public final class Vocabulary extends In
         public static final short DefaultValue = 71;
 
         /**
+         * Deprecated
+         */
+        public static final short Deprecated = 117;
+
+        /**
          * Derived from {0}
          */
         public static final short DerivedFrom_1 = 108;
@@ -487,6 +492,11 @@ public final class Vocabulary extends In
         public static final short Quoted_1 = 86;
 
         /**
+         * Remarks
+         */
+        public static final short Remarks = 116;
+
+        /**
          * Remote configuration
          */
         public static final short RemoteConfiguration = 93;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties [ISO-8859-1] Thu Dec  8 17:42:51 2016
@@ -42,6 +42,7 @@ Datum                   = Datum
 DatumShift              = Datum shift
 DaylightTime            = Daylight time
 DefaultValue            = Default value
+Deprecated              = Deprecated
 DerivedFrom_1           = Derived from {0}
 Description             = Description
 Destination             = Destination
@@ -100,6 +101,7 @@ Others                  = Others
 OtherSurface            = Other surface
 Paths                   = Paths
 Quoted_1                = \u201c{0}\u201d
+Remarks                 = Remarks
 RemoteConfiguration     = Remote configuration
 Root                    = Root
 RootMeanSquare          = Root Mean Square

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties [ISO-8859-1] Thu Dec  8 17:42:51 2016
@@ -49,6 +49,7 @@ Datum                   = R\u00e9f\u00e9
 DatumShift              = Changement de r\u00e9f\u00e9rentiel
 DaylightTime            = Heure normale
 DefaultValue            = Valeur par d\u00e9faut
+Deprecated              = Obsol\u00e8te
 DerivedFrom_1           = D\u00e9riv\u00e9 de {0}
 Description             = Description
 Destination             = Destination
@@ -107,6 +108,7 @@ Others                  = Autres
 OtherSurface            = Autre surface
 Paths                   = Chemins
 Quoted_1                = \u00ab\u202f{0}\u202f\u00bb
+Remarks                 = Remarques
 RemoteConfiguration     = Configuration distante
 Root                    = Racine
 RootMeanSquare          = Moyenne quadratique

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/MarshallerPool.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/MarshallerPool.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/MarshallerPool.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/MarshallerPool.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -160,8 +160,8 @@ public class MarshallerPool {
      * for the {@code Unmarshaller}, then consider overriding the {@link #createMarshaller()}
      * or {@link #createUnmarshaller()} methods instead.</p>
      *
-     * @param  properties The properties to be given to the (un)marshaller, or {@code null} if none.
-     * @throws JAXBException If the JAXB context can not be created.
+     * @param  properties  the properties to be given to the (un)marshaller, or {@code null} if none.
+     * @throws JAXBException if the JAXB context can not be created.
      */
     public MarshallerPool(final Map<String,?> properties) throws JAXBException {
         this(TypeRegistration.getSharedContext(), properties);
@@ -177,11 +177,11 @@ public class MarshallerPool {
      * for the {@code Unmarshaller}, then consider overriding the {@link #createMarshaller()}
      * or {@link #createUnmarshaller()} methods instead.</p>
      *
-     * @param  context The JAXB context.
-     * @param  properties The properties to be given to the (un)marshaller, or {@code null} if none.
-     * @throws JAXBException If the marshaller pool can not be created.
+     * @param  context     the JAXB context.
+     * @param  properties  the properties to be given to the (un)marshaller, or {@code null} if none.
+     * @throws JAXBException if the marshaller pool can not be created.
      */
-    @SuppressWarnings({"unchecked", "rawtypes"}) // Generic array creation
+    @SuppressWarnings({"unchecked", "rawtypes"})          // Generic array creation
     public MarshallerPool(final JAXBContext context, final Map<String,?> properties) throws JAXBException {
         ArgumentChecks.ensureNonNull("context", context);
         this.context = context;
@@ -276,7 +276,7 @@ public class MarshallerPool {
     final void removeExpired() {
         isRemovalScheduled.set(false);
         final long now = System.nanoTime();
-        if (!removeExpired(marshallers, now) | // Really |, not ||
+        if (!removeExpired(marshallers, now) |                      // Really |, not ||
             !removeExpired(unmarshallers, now))
         {
             scheduleRemoval();
@@ -286,9 +286,9 @@ public class MarshallerPool {
     /**
      * Removes expired (un)marshallers from the given queue.
      *
-     * @param  <T>   Either {@code Marshaller} or {@code Unmarshaller} type.
-     * @param  queue The queue from which to remove expired (un)marshallers.
-     * @param  now   Current value of {@link System#nanoTime()}.
+     * @param  <T>    either {@code Marshaller} or {@code Unmarshaller} type.
+     * @param  queue  the queue from which to remove expired (un)marshallers.
+     * @param  now    current value of {@link System#nanoTime()}.
      * @return {@code true} if the queue became empty as a result of this method call.
      */
     private static <T> boolean removeExpired(final Deque<T> queue, final long now) {
@@ -333,8 +333,8 @@ public class MarshallerPool {
      * Note that {@link #recycle(Marshaller)} shall not be invoked in case of exception,
      * since the marshaller may be in an invalid state.
      *
-     * @return A marshaller configured for formatting OGC/ISO XML.
-     * @throws JAXBException If an error occurred while creating and configuring a marshaller.
+     * @return a marshaller configured for formatting OGC/ISO XML.
+     * @throws JAXBException if an error occurred while creating and configuring a marshaller.
      */
     public Marshaller acquireMarshaller() throws JAXBException {
         Marshaller marshaller = marshallers.poll();
@@ -359,8 +359,8 @@ public class MarshallerPool {
      * Note that {@link #recycle(Unmarshaller)} shall not be invoked in case of exception,
      * since the unmarshaller may be in an invalid state.
      *
-     * @return A unmarshaller configured for parsing OGC/ISO XML.
-     * @throws JAXBException If an error occurred while creating and configuring the unmarshaller.
+     * @return a unmarshaller configured for parsing OGC/ISO XML.
+     * @throws JAXBException if an error occurred while creating and configuring the unmarshaller.
      */
     public Unmarshaller acquireUnmarshaller() throws JAXBException {
         Unmarshaller unmarshaller = unmarshallers.poll();
@@ -388,7 +388,7 @@ public class MarshallerPool {
      * Note that this method does not close any output stream.
      * Closing the marshaller stream is caller's or JAXB responsibility.
      *
-     * @param marshaller The marshaller to return to the pool.
+     * @param  marshaller  the marshaller to return to the pool.
      */
     public void recycle(final Marshaller marshaller) {
         recycle(marshallers, marshaller);
@@ -412,7 +412,7 @@ public class MarshallerPool {
      * Note that this method does not close any input stream.
      * Closing the unmarshaller stream is caller's or JAXB responsibility.
      *
-     * @param unmarshaller The unmarshaller to return to the pool.
+     * @param  unmarshaller  the unmarshaller to return to the pool.
      */
     public void recycle(final Unmarshaller unmarshaller) {
         recycle(unmarshallers, unmarshaller);
@@ -423,8 +423,8 @@ public class MarshallerPool {
      * This method is invoked only when no existing marshaller is available in the pool.
      * Subclasses can override this method if they need to change the marshaller configuration.
      *
-     * @return A new marshaller configured for formatting OGC/ISO XML.
-     * @throws JAXBException If an error occurred while creating and configuring the marshaller.
+     * @return a new marshaller configured for formatting OGC/ISO XML.
+     * @throws JAXBException if an error occurred while creating and configuring the marshaller.
      */
     protected Marshaller createMarshaller() throws JAXBException {
         final Marshaller marshaller = context.createMarshaller();
@@ -456,8 +456,8 @@ public class MarshallerPool {
      * This method is invoked only when no existing unmarshaller is available in the pool.
      * Subclasses can override this method if they need to change the unmarshaller configuration.
      *
-     * @return A new unmarshaller configured for parsing OGC/ISO XML.
-     * @throws JAXBException If an error occurred while creating and configuring the unmarshaller.
+     * @return a new unmarshaller configured for parsing OGC/ISO XML.
+     * @throws JAXBException if an error occurred while creating and configuring the unmarshaller.
      */
     protected Unmarshaller createUnmarshaller() throws JAXBException {
         final Unmarshaller unmarshaller = context.createUnmarshaller();

Propchange: sis/trunk/core/sis-utility/src/main/javadoc/overview.html
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  8 17:42:51 2016
@@ -1 +1 @@
-text/html
+text/html;charset=UTF-8

Modified: sis/trunk/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames.properties?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames.properties [ISO-8859-1] Thu Dec  8 17:42:51 2016
@@ -9,7 +9,8 @@ d=day
 dbar=decibar
 F=farad
 ft=foot
-ft_US=US survey foot
+ftCla=Clarke\u2019s foot
+ftUS=US survey foot
 grad=grad
 h=hour
 ha=hectare
@@ -26,8 +27,8 @@ lm=lumen
 lx=lux
 M=nautical mile
 m=metre
-m²=square metre
-m³=cubic metre
+m\u00b2=square metre
+m\u00b3=cubic metre
 m\u2215s=metres per second
 mi=statute mile
 min=minute
@@ -51,11 +52,11 @@ V=volt
 W=watt
 Wb=weber
 wk=week
-µrad=microradian
+\u00b5rad=microradian
 \u03a9=ohm
 %=percentage
-°=degree
+\u00b0=degree
 \u2032=arc-minute
 \u2033=arc-second
-°C=Celsius
-°F=Fahrenheit
+\u00b0C=Celsius
+\u00b0F=Fahrenheit

Modified: sis/trunk/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames_fr.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames_fr.properties?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames_fr.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames_fr.properties [ISO-8859-1] Thu Dec  8 17:42:51 2016
@@ -1,31 +1,33 @@
 # Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
-A=ampère
-a=année
-atm=atmosphère
-cm=centimètre
+A=amp\u00e8re
+a=ann\u00e9e
+atm=atmosph\u00e8re
+cm=centim\u00e8tre
 d=jour
 ft=pied
+ftCla=pied de Clarke
+ftUS=pied am\u00e9ricain
 grad=grade
 h=heure
 in=pouce
 kg=kilogramme
-km=kilomètre
-km\u2215h=kilomètres par heure
+km=kilom\u00e8tre
+km\u2215h=kilom\u00e8tres par heure
 M=mille marin international
-m=mètre
-m²=mètre carré
-m³=mètre cube
-m\u2215s=mètres par seconde
+m=m\u00e8tre
+m\u00b2=m\u00e8tre carr\u00e9
+m\u00b3=m\u00e8tre cube
+m\u2215s=m\u00e8tres par seconde
 mi=mille terrestre international
-mm=millimètre
+mm=millim\u00e8tre
 ms=milliseconde
-nm=nanomètre
+nm=nanom\u00e8tre
 ppm=parties par million
 s=seconde
-sr=stéradian
-unity=unité
+sr=st\u00e9radian
+unity=unit\u00e9
 wk=semaine
 %=pourcentage
-°=degrée
+\u00b0=degr\u00e9e
 \u2032=arc-minute
 \u2033=arc-seconde

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -144,7 +144,7 @@ public final strictfp class RangeFormatT
         assertEquals("maxPos.endIndex",   1, maxPos.getEndIndex());
 
         // Negative infinity
-        assertEquals("(-∞ … 30]", format(NumberRange.create(Double.NEGATIVE_INFINITY, true, 30, true)));
+        assertEquals("(−∞ … 30]", format(NumberRange.create(Double.NEGATIVE_INFINITY, true, 30, true)));
         assertEquals("minPos.beginIndex", 1, minPos.getBeginIndex());
         assertEquals("minPos.endIndex",   3, minPos.getEndIndex());
         assertEquals("maxPos.beginIndex", 6, maxPos.getBeginIndex());
@@ -158,7 +158,7 @@ public final strictfp class RangeFormatT
         assertEquals("maxPos.endIndex",   7, maxPos.getEndIndex());
 
         // Positive infinities
-        assertEquals("(-∞ … ∞)", format(NumberRange.create(Double.NEGATIVE_INFINITY, true, Double.POSITIVE_INFINITY, true)));
+        assertEquals("(−∞ … ∞)", format(NumberRange.create(Double.NEGATIVE_INFINITY, true, Double.POSITIVE_INFINITY, true)));
         assertEquals("minPos.beginIndex", 1, minPos.getBeginIndex());
         assertEquals("minPos.endIndex",   3, minPos.getEndIndex());
         assertEquals("maxPos.beginIndex", 6, maxPos.getBeginIndex());
@@ -172,7 +172,7 @@ public final strictfp class RangeFormatT
         assertEquals("maxPos.endIndex",   7, maxPos.getEndIndex());
 
         // Negative infinity with integers
-        assertEquals("(-∞ … 40]", format(new NumberRange<>(Integer.class, null, true, 40, true)));
+        assertEquals("(−∞ … 40]", format(new NumberRange<>(Integer.class, null, true, 40, true)));
         assertEquals("minPos.beginIndex", 1, minPos.getBeginIndex());
         assertEquals("minPos.endIndex",   3, minPos.getEndIndex());
         assertEquals("maxPos.beginIndex", 6, maxPos.getBeginIndex());
@@ -247,6 +247,7 @@ public final strictfp class RangeFormatT
 
         assertEquals(NumberRange.create(-10.0, true,             20.0, true), parse("[-10 … 20]" ));
         assertEquals(NumberRange.create(NEGATIVE_INFINITY, true, 30.0, true), parse("[-∞ … 30]"));
+        assertEquals(NumberRange.create(NEGATIVE_INFINITY, true, 30.0, true), parse("[−∞ … 30]"));
         assertEquals(NumberRange.create(50.0, true, POSITIVE_INFINITY, true), parse("[50 … ∞]"));
     }
 
@@ -334,7 +335,7 @@ public final strictfp class RangeFormatT
         it    = format.formatToCharacterIterator(range);
         text  = it.toString();
         findYears(it, RangeFormat.Field.MAX_VALUE, maxPos);
-        assertEquals("(-∞ … 01/01/90 00:00]", text);
+        assertEquals("(−∞ … 01/01/90 00:00]", text);
         assertEquals(12, maxPos.getBeginIndex());
         assertEquals(14, maxPos.getEndIndex());
         assertEquals(range, parse(text));

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -64,7 +64,8 @@ public final strictfp class UnitFormatTe
         verify(declared, "KILOMETRE",           "L",            "km",    "kilometre",               Units.KILOMETRE);
         verify(declared, "NAUTICAL_MILE",       "L",            "M",     "nautical mile",           Units.NAUTICAL_MILE);
         verify(declared, "STATUTE_MILE",        "L",            "mi",    "statute mile",            Units.STATUTE_MILE);
-        verify(declared, "US_SURVEY_FOOT",      "L",            "ft_US", "US survey foot",          Units.US_SURVEY_FOOT);
+        verify(declared, "US_SURVEY_FOOT",      "L",            "ftUS",  "US survey foot",          Units.US_SURVEY_FOOT);
+        verify(declared, "CLARKE_FOOT",         "L",            "ftCla", "Clarke’s foot",           Units.CLARKE_FOOT);
         verify(declared, "FOOT",                "L",            "ft",    "foot",                    Units.FOOT);
         verify(declared, "INCH",                "L",            "in",    "inch",                    Units.INCH);
         verify(declared, "POINT",               "L",            "pt",    "point",                   Units.POINT);

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/Assert.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/Assert.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/Assert.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/Assert.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -182,7 +182,7 @@ public strictfp class Assert extends Geo
      */
     public static void assertSetEquals(final Collection<?> expected, final Collection<?> actual) {
         if (expected != null && actual != null && !expected.isEmpty()) {
-            final Set<Object> r = new LinkedHashSet<>(expected);
+            final Set<Object> r = new LinkedHashSet<Object>(expected);
             assertTrue("The two sets are disjoint.",                 r.removeAll(actual));
             assertTrue("The set is missing elements: " + r,          r.isEmpty());
             assertTrue("The set unexpectedly became empty.",         r.addAll(actual));
@@ -203,7 +203,7 @@ public strictfp class Assert extends Geo
      */
     public static void assertMapEquals(final Map<?,?> expected, final Map<?,?> actual) {
         if (expected != null && actual != null && !expected.isEmpty()) {
-            final Map<Object,Object> r = new LinkedHashMap<>(expected);
+            final Map<Object,Object> r = new LinkedHashMap<Object,Object>(expected);
             for (final Map.Entry<?,?> entry : actual.entrySet()) {
                 final Object key = entry.getKey();
                 if (!r.containsKey(key)) {

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java?rev=1773274&r1=1773273&r2=1773274&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java [UTF-8] Thu Dec  8 17:42:51 2016
@@ -91,7 +91,6 @@ public final strictfp class LocalesTest
 
     /**
      * Tests the {@link Locales#parse(String)} method with a IETF BCP 47 language tag string.
-     * This functionality is supported only on the JDK7 branch.
      */
     @Test
     public void testParseIETF() {




Mime
View raw message