Author: desruisseaux Date: Sun Aug 20 16:24:04 2017 New Revision: 1805571 URL: http://svn.apache.org/viewvc?rev=1805571&view=rev Log: Merge from trunk.
Added: sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractFeatureSet.java - copied unchanged from r1805569, sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractFeatureSet.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractResource.java - copied unchanged from r1805569, sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractResource.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/FeatureAccess.java - copied unchanged from r1805569, sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/FeatureAccess.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/storage/Aggregate.java - copied unchanged from r1805569, sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/Aggregate.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/storage/DataSet.java - copied unchanged from r1805569, sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataSet.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureSet.java - copied unchanged from r1805569, sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureSet.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/storage/Resource.java - copied unchanged from r1805569, sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/Resource.java sis/branches/Android/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/FeatureAccess.java - copied unchanged from r1805569, sis/trunk/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/FeatureAccess.java Removed: sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/FeatureStore.java Modified: sis/branches/Android/ (props changed) sis/branches/Android/README sis/branches/Android/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_FeatureTypeList.java sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java sis/branches/Android/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java sis/branches/Android/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystemTest.java sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/Codes.java sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Initializer.java sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/InitializerTest.java sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ObliqueStereographicTest.java sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1DTest.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/DateAdapter.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/UniversalTimeAdapter.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gmx/Anchor.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/system/Modules.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/util/Utilities.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/measure/ConventionalUnitTest.java sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java sis/branches/Android/ide-project/NetBeans/nbproject/cfg_hints.xml (props changed) sis/branches/Android/pom.xml sis/branches/Android/src/main/javadoc/overview.html sis/branches/Android/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java sis/branches/Android/storage/sis-gdal/pom.xml (props changed) sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4.java sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4Factory.java sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Transform.java sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/package-info.java sis/branches/Android/storage/sis-gdal/src/test/java/org/apache/sis/storage/gdal/Proj4FactoryTest.java sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/CRSBuilder.java sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTIFF.java sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java sis/branches/Android/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/FeatureCatalogBuilder.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/Store.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/xml/Store.java sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java sis/branches/Android/storage/sis-storage/src/test/java/org/apache/sis/storage/DataStoreMock.java sis/branches/Android/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Store.java sis/branches/Android/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Types.java sis/branches/Android/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/xml/stream/StaxDataStore.java sis/branches/Android/storage/sis-xmlstore/src/test/java/org/apache/sis/internal/storage/gpx/ReaderTest.java Propchange: sis/branches/Android/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sun Aug 20 16:24:04 2017 @@ -1,5 +1,6 @@ /sis/branches/Android:1430670-1480699 /sis/branches/JDK6:1394364-1758914 -/sis/branches/JDK7:1394913-1803100 -/sis/branches/JDK8:1584960-1803097 +/sis/branches/JDK7:1394913-1805566 +/sis/branches/JDK8:1584960-1804582 /sis/branches/JDK9:1773327-1803064 +/sis/trunk:1803173-1805569 Modified: sis/branches/Android/README URL: http://svn.apache.org/viewvc/sis/branches/Android/README?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/README (original) +++ sis/branches/Android/README Sun Aug 20 16:24:04 2017 @@ -26,7 +26,7 @@ project logo are trademarks of The Apach Getting Started =============== -SIS requires Java 6 and uses the Maven 3 <http://maven.apache.org/> +SIS requires Java 7 and uses the Maven 3 <http://maven.apache.org/> build system. To build SIS, use the following command in this directory: mvn clean package Modified: sis/branches/Android/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java [UTF-8] (original) +++ sis/branches/Android/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -39,9 +39,11 @@ import org.apache.sis.util.Deprecable; import org.apache.sis.util.Characters; import org.apache.sis.util.CharSequences; import org.apache.sis.util.ArgumentChecks; +import org.apache.sis.util.logging.Logging; import org.apache.sis.util.resources.Errors; import org.apache.sis.util.resources.Vocabulary; import org.apache.sis.internal.util.CollectionsExt; +import org.apache.sis.internal.system.Modules; import org.apache.sis.referencing.IdentifiedObjects; import org.apache.sis.math.MathFunctions; @@ -112,6 +114,12 @@ public class FeatureFormat extends Tabul private static final int MAXIMAL_VALUE_LENGTH = 40; /** + * The bit patterns of the last {@link Float#NaN} value for which {@link MathFunctions#toNanOrdinal(float)} could + * not get the ordinal value. We use this information for avoiding flooding the logger with the same message. + */ + private transient int illegalNaN; + + /** * Creates a new formatter for the default locale and timezone. */ public FeatureFormat() { @@ -504,8 +512,17 @@ public class FeatureFormat extends Tabul t.setLength(0); t.append("NaN"); } - final int n = MathFunctions.toNanOrdinal(f); - if (n > 0) buffer.append(" #").append(n); + try { + final int n = MathFunctions.toNanOrdinal(f); + if (n > 0) t.append(" #").append(n); + } catch (IllegalArgumentException e) { + // May happen if the NaN is a signaling NaN instead than a quiet NaN. + final int bits = Float.floatToRawIntBits(f); + if (bits != illegalNaN) { + illegalNaN = bits; + Logging.recoverableException(Logging.getLogger(Modules.FEATURE), FeatureFormat.class, "format", e); + } + } } } value = t; Modified: sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_FeatureTypeList.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_FeatureTypeList.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_FeatureTypeList.java [UTF-8] (original) +++ sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_FeatureTypeList.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -31,7 +31,10 @@ import org.apache.sis.internal.jaxb.gco. * @version 0.3 * @since 0.3 * @module + * + * @deprecated Not anymore part of ISO 19115. */ +@Deprecated public final class MD_FeatureTypeList extends PropertyType<MD_FeatureTypeList, FeatureTypeList> { /** * Empty constructor for JAXB only. Modified: sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java [UTF-8] (original) +++ sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -208,9 +208,17 @@ public final class NameToIdentifier impl */ public static boolean isHeuristicMatchForIdentifier(final Iterable<? extends ReferenceIdentifier> identifiers, final String toSearch) { if (toSearch != null && identifiers != null) { - for (int s = toSearch.indexOf(DefaultNameSpace.DEFAULT_SEPARATOR); s >= 0; - s = toSearch.indexOf(DefaultNameSpace.DEFAULT_SEPARATOR, s)) - { + int s = toSearch.indexOf(DefaultNameSpace.DEFAULT_SEPARATOR); + if (s < 0) { + // no codespace in searched name + for (final Identifier id : identifiers) { + if (toSearch.equalsIgnoreCase(id.getCode())) { + return true; + } + } + return false; + } + do { final String codespace = toSearch.substring(0, s).trim(); final String code = toSearch.substring(++s).trim(); for (final ReferenceIdentifier id : identifiers) { @@ -218,7 +226,8 @@ public final class NameToIdentifier impl return true; } } - } + s = toSearch.indexOf(DefaultNameSpace.DEFAULT_SEPARATOR, s); + } while (s >= 0); } return false; } Modified: sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java [UTF-8] (original) +++ sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -45,7 +45,10 @@ import org.opengis.metadata.FeatureTypeL * @version 0.3 * @since 0.3 * @module + * + * @deprecated Not anymore part of ISO 19115. */ +@Deprecated // TODO: after deletion, search "FeatureTypeList" on the whole code base. @SuppressWarnings("CloneableClassWithoutClone") // ModifiableMetadata needs shallow clones. @XmlType(propOrder = { "spatialObject", Modified: sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java [UTF-8] (original) +++ sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -62,7 +62,7 @@ import static org.opengis.annotation.Spe * same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li> * </ul> * - * @author Remi Marechal (geomatys) + * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) * @version 0.5 * @since 0.5 Modified: sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java [UTF-8] (original) +++ sis/branches/Android/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -39,7 +39,6 @@ * {@code ├─} {@linkplain org.apache.sis.metadata.iso.DefaultApplicationSchemaInformation Application schema information}<br> * {@code ├─} {@linkplain org.apache.sis.metadata.iso.DefaultMetadataExtensionInformation Metadata extension information}<br> * {@code ├─} {@linkplain org.apache.sis.metadata.iso.DefaultExtendedElementInformation Extended element information}<br> - * {@code ├─} {@linkplain org.apache.sis.metadata.iso.DefaultFeatureTypeList Feature type list}<br> * {@code └─} {@linkplain org.apache.sis.metadata.iso.DefaultIdentifier Identifier}<br> * {@linkplain org.opengis.util.CodeList Code list}<br> * {@code ├─} {@linkplain org.opengis.metadata.Datatype Data type}<br> @@ -53,7 +52,6 @@ * {@code │ └─} {@linkplain org.apache.sis.metadata.iso.DefaultExtendedElementInformation Extended element information}<br> * {@code │ ├─} {@linkplain org.opengis.metadata.Datatype Data type} «code list»<br> * {@code │ └─} {@linkplain org.opengis.metadata.Obligation Obligation} «code list»<br> - * {@code ├─} {@linkplain org.apache.sis.metadata.iso.DefaultFeatureTypeList Feature type list}<br> * {@code └─} {@linkplain org.apache.sis.metadata.iso.DefaultIdentifier Identifier}<br> * </td></tr></table> * Modified: sis/branches/Android/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java [UTF-8] (original) +++ sis/branches/Android/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -58,7 +58,6 @@ public final strictfp class AllMetadataT org.opengis.metadata.ApplicationSchemaInformation.class, org.opengis.metadata.Datatype.class, org.opengis.metadata.ExtendedElementInformation.class, - org.opengis.metadata.FeatureTypeList.class, org.opengis.metadata.Identifier.class, org.opengis.metadata.Metadata.class, org.opengis.metadata.MetadataExtensionInformation.class, @@ -276,10 +275,6 @@ public final strictfp class AllMetadataT protected String getExpectedXmlTypeForElement(final Class<?> type, final Class<?> impl) { final String rootName = type.getAnnotation(UML.class).identifier(); switch (rootName) { - // We don't know yet what is the type of this one. - case "MD_FeatureTypeList": { - return null; - } // Following prefix was changed in ISO 19115 corrigendum, // but ISO 19139 still use the old prefix. case "SV_ServiceIdentification": { Modified: sis/branches/Android/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystemTest.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystemTest.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystemTest.java [UTF-8] (original) +++ sis/branches/Android/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystemTest.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -170,9 +170,9 @@ public final strictfp class MilitaryGrid * The lowest 4 bits are the number of the row cycle (a cycle of 2000 km). The remaining bits tell which * rows are valid in that latitude band. */ - final int rowCycle = (int) Math.floor(ymin / (MilitaryGridReferenceSystem.GRID_SQUARE_SIZE * MilitaryGridReferenceSystem.GRID_ROW_COUNT)); - final int lowerRow = (int) Math.floor(ymin / MilitaryGridReferenceSystem.GRID_SQUARE_SIZE); // Inclusive - final int upperRow = (int) Math.ceil (ymax / MilitaryGridReferenceSystem.GRID_SQUARE_SIZE); // Exclusive + final int rowCycle = (int) StrictMath.floor(ymin / (MilitaryGridReferenceSystem.GRID_SQUARE_SIZE * MilitaryGridReferenceSystem.GRID_ROW_COUNT)); + final int lowerRow = (int) StrictMath.floor(ymin / MilitaryGridReferenceSystem.GRID_SQUARE_SIZE); // Inclusive + final int upperRow = (int) StrictMath.ceil (ymax / MilitaryGridReferenceSystem.GRID_SQUARE_SIZE); // Exclusive assertTrue("rowCycle", rowCycle >= 0 && rowCycle <= MilitaryGridReferenceSystem.Decoder.NORTHING_BITS_MASK); assertTrue("lowerRow", lowerRow >= 0); assertTrue("upperRow", upperRow >= 0); Modified: sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/Codes.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/Codes.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/Codes.java [UTF-8] (original) +++ sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/Codes.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -33,7 +33,7 @@ import static org.apache.sis.internal.ut * objects defined in the EPSG database. * Current version uses hard-coded mapping. * - * @author Rémi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) * @version 0.8 * @since 0.8 Modified: sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Initializer.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Initializer.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Initializer.java [UTF-8] (original) +++ sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Initializer.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -56,7 +56,7 @@ import static org.apache.sis.internal.ut * in some relatively rare scenarios like 1 ± x where <var>x</var> is much smaller than 1.</p> * * @author Martin Desruisseaux (Geomatys) - * @author Rémi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @version 0.7 * @since 0.6 * @module Modified: sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java [UTF-8] (original) +++ sis/branches/Android/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -40,7 +40,7 @@ import org.apache.sis.util.resources.Err * then concatenating this transform with a transform that multiply all output values by -1.</p> * * @author Johann Sorel (Geomatys) - * @author Remi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) * @version 0.7 * @since 0.7 Modified: sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/InitializerTest.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/InitializerTest.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/InitializerTest.java [UTF-8] (original) +++ sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/InitializerTest.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -33,7 +33,7 @@ import static org.opengis.test.Assert.*; /** * Tests the {@link Initializer} class. * - * @author Rémi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) * @version 0.7 * @since 0.7 Modified: sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ObliqueStereographicTest.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ObliqueStereographicTest.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ObliqueStereographicTest.java [UTF-8] (original) +++ sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ObliqueStereographicTest.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -38,7 +38,7 @@ import static org.apache.sis.test.Assert /** * Tests the {@link ObliqueStereographic} class. * - * @author Rémi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) * @version 0.8 * @since 0.7 Modified: sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1DTest.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1DTest.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1DTest.java [UTF-8] (original) +++ sis/branches/Android/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1DTest.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -28,7 +28,7 @@ import static org.opengis.test.Assert.*; /** * Test {@link LinearInterpolator1D} class. * - * @author Remi Marechal (Geomatys). + * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys). * @version 0.7 * @since 0.7 Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/DateAdapter.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/DateAdapter.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/DateAdapter.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/DateAdapter.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -26,7 +26,7 @@ import org.apache.sis.internal.jaxb.XmlU /** * JAXB adapter wrapping the date value (as milliseconds elapsed since January 1st, 1970) in a - * {@link XMLGregorianCalendar} for the {@code xsd:date} type. Hours, minutes and seconds are + * {@link XMLGregorianCalendar} for the {@code xs:date} type. Hours, minutes and seconds are * discarded. * * <p>Using this adapter is equivalent to apply the following annotation on a {@code Date} field:</p> @@ -81,7 +81,7 @@ public final class DateAdapter extends X final Context context = Context.current(); try { final XMLGregorianCalendar gc = XmlUtilities.toXML(context, value); - XmlUtilities.trimTime(gc, true); // Type is xsd:date without time. + XmlUtilities.trimTime(gc, true); // Type is xs:date without time. return gc; } catch (DatatypeConfigurationException e) { Context.warningOccured(context, XmlAdapter.class, "marshal", e, true); Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -58,7 +58,7 @@ import org.apache.sis.measure.Units; * <gml:semiMajorAxis uom="urn:ogc:def:uom:EPSG::9001">6378137</gml:semiMajorAxis> * } * - * Both have a value of type {@code xsd:double} and a {@code uom} attribute (without namespace) + * Both have a value of type {@code xs:double} and a {@code uom} attribute (without namespace) * of type {@code gml:UomIdentifier}. Those two informations are represented by this class. * * @author Cédric Briançon (Geomatys) Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/UniversalTimeAdapter.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/UniversalTimeAdapter.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/UniversalTimeAdapter.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/UniversalTimeAdapter.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -32,7 +32,7 @@ import static org.apache.sis.internal.ja /** * JAXB adapter wrapping the date value (as milliseconds elapsed since January 1st, 1970) in a - * {@link XMLGregorianCalendar} for the {@code xsd:dateTime} type with the timezone forced to UTC. + * {@link XMLGregorianCalendar} for the {@code xs:dateTime} type with the timezone forced to UTC. * The milliseconds are omitted if not different than zero. * * @author Martin Desruisseaux (Geomatys) Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gmx/Anchor.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gmx/Anchor.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gmx/Anchor.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gmx/Anchor.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -21,6 +21,7 @@ import java.util.Locale; import java.util.Objects; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.XmlRootElement; import org.opengis.util.InternationalString; import org.apache.sis.xml.XLink; @@ -36,11 +37,13 @@ import org.apache.sis.xml.XLink; * * @author Guilhem Legal (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @author Cullen Rombach (Image Matters) + * @version 0.8 * @since 0.3 * @module */ @XmlType(name = "Anchor_Type") +@XmlRootElement(name = "Anchor") public final class Anchor extends XLink implements InternationalString { /** * Defined as a matter of principle (this class is not expected to be serialized). Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -173,10 +173,30 @@ public final class JDK8 { */ public static int toIntExact(final long value) { final int vi = (int) value; - if (vi != value) { - throw new ArithmeticException(); - } - return vi; + if (vi == value) return vi; + throw new ArithmeticException(); + } + + /** + * Returns the given value + 1, throwing an exception if the result overflows. + * + * @param a the value to increment. + * @return {@code a+1}. + */ + public static int incrementExact(int a) { + if (a != Integer.MAX_VALUE) return a+1; + throw new ArithmeticException(); + } + + /** + * Returns the given value - 1, throwing an exception if the result underflows. + * + * @param a the value to increment. + * @return {@code a-1}. + */ + public static int decrementExact(int a) { + if (a != Integer.MIN_VALUE) return a-1; + throw new ArithmeticException(); } /** @@ -190,9 +210,7 @@ public final class JDK8 { * @since 0.8 */ public static int addExact(final int x, final int y) { - final long r = x + y; - if ((r & 0xFFFFFFFF00000000L) == 0) return (int) r; - throw new ArithmeticException(); + return toIntExact(x + (long) y); } /** @@ -201,14 +219,12 @@ public final class JDK8 { * @param x first value to add. * @param y second value to add. * @return the sum. - * @throws ArithmeticException if the result overflows. + * @throws ArithmeticException if the result overflows (Note: not implemented in this placeholder). * * @since 0.8 */ public static long addExact(final long x, final long y) { - final long r = x + y; - if (((x ^ r) & (y ^ r)) >= 0) return r; - throw new ArithmeticException(); + return x + y; // Check for overflow not implemented in this placeholder. } /** @@ -221,24 +237,22 @@ public final class JDK8 { * * @since 0.8 */ - public static long subtractExact(final long x, final long y) { - final long r = x - y; - if (((x ^ r) & (y ^ r)) >= 0) return r; - throw new ArithmeticException(); + public static int subtractExact(final int x, final int y) { + return toIntExact(x - (long) y); } /** - * Safe product of the arguments. + * Safe subtraction of the given numbers. * - * @param x first value to multiply. - * @param y second value to multiply. - * @return the product. - * @throws ArithmeticException if the result overflows (Note: not implemented in this placeholder). + * @param x first value. + * @param y second value to subtract. + * @return the difference. + * @throws ArithmeticException if the result underflows (Note: not implemented in this placeholder). * * @since 0.8 */ - public static long multiplyExact(final long x, final long y) { - return x * y; // Check for overflow not implemented in this placeholder. + public static long subtractExact(final long x, final long y) { + return x - y; // Check for underflow not implemented in this placeholder. } /** @@ -256,6 +270,33 @@ public final class JDK8 { } /** + * Safe product of the arguments. + * + * @param x first value to multiply. + * @param y second value to multiply. + * @return the product. + * @throws ArithmeticException if the result overflows (Note: not implemented in this placeholder). + * + * @since 0.8 + */ + public static long multiplyExact(final long x, final long y) { + return x * y; // Check for overflow not implemented in this placeholder. + } + + /** + * Divides two values, rounding toward negative infinity. + * + * @param x numerator. + * @param y denominator. + * @return x/y rounded toward negative infinity. + */ + public static int floorDiv(int x, int y) { + int r = x / y; + if ((x % y != 0) && (x < 0) != (y < 0)) r--; + return r; + } + + /** * Returns the floating-point value adjacent to {@code value} in the direction of negative infinity. * * @param value the value for which to get the adjacent value. Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/system/Modules.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/system/Modules.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/system/Modules.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/system/Modules.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -60,6 +60,11 @@ public final class Modules { /** * The {@value} module name. */ + public static final String FEATURE = "org.apache.sis.feature"; + + /** + * The {@value} module name. + */ public static final String STORAGE = "org.apache.sis.storage"; /** Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/util/Utilities.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/util/Utilities.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/util/Utilities.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/internal/util/Utilities.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -46,14 +46,14 @@ public final class Utilities extends Sta * * <div class="section">Relationship with {@code gml:id}</div> * This method may be invoked for building {@code gml:id} values. Strictly speaking this is not appropriate - * since the {@code xsd:ID} type defines valid identifiers as containing only letters, digits, underscores, + * since the {@code xs:ID} type defines valid identifiers as containing only letters, digits, underscores, * hyphens, and periods. This differ from Unicode identifier in two ways: * * <ul> * <li>Unicode identifiers accept Japanese or Chinese ideograms for instance, which are considered as letters.</li> * <li>Unicode identifiers do not accept the {@code '-'} and {@code ':'} characters. However this restriction * fits well our need, since those characters are typical values for the {@code separator} argument.</li> - * <li>Note that {@code '_'} is valid both in {@code xsd:ID} and Unicode identifier.</li> + * <li>Note that {@code '_'} is valid both in {@code xs:ID} and Unicode identifier.</li> * </ul> * * @param appendTo the buffer where to append the valid characters. Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -46,7 +46,8 @@ import static org.apache.sis.util.collec * } * * @author Martin Desruisseaux (IRD, Geomatys) - * @version 0.4 + * @author Cullen Rombach (Image Matters) + * @version 0.8 * @since 0.3 * @module */ @@ -275,11 +276,11 @@ filter: for (final Locale locale : local return unique(new Locale.Builder().setLanguageTag(code).build()); } /* - * Old syntax (e.g. "en_US"). Split in (language, country, variant) components, + * Old syntax (e.g. "en_US" or "eng; USA"). Split in (language, country, variant) components, * then convert the 3-letters codes to the 2-letters ones. */ String language, country = "", variant = ""; - if (p1 < 0) { + if (p1 < 0 && (p1 = code.indexOf(';', fromIndex)) < 0) { p1 = code.length(); } else { final int s = p1 + 1; Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -53,7 +53,8 @@ import org.apache.sis.internal.util.Abst * </ul> * * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 0.8 * * @see DefaultRecordType * @see DefaultRecordSchema @@ -96,6 +97,59 @@ public class DefaultRecord implements Re } /** + * Creates a new record initialized to a shallow copy of the given record. + * The members contained in the given record are <strong>not</strong> recursively copied. + * + * @param record the record to copy (can not be null). + * + * @since 0.8 + */ + public DefaultRecord(final Record record) { + this(record.getRecordType()); + for (final Map.Entry<MemberName,Integer> entry : definition.memberIndices().entrySet()) { + final MemberName name = entry.getKey(); + final Object value = record.locate(name); + if (value != null) { + final int index = entry.getValue(); + final Class<?> valueClass = definition.getValueClass(index); + if (valueClass != null && !valueClass.isInstance(value)) { + throw new ClassCastException(Errors.format(Errors.Keys.IllegalPropertyValueClass_3, + name, valueClass, value.getClass())); + } + Array.set(values, index, value); + } + } + } + + /** + * Returns a SIS implementation with the name and members of the given arbitrary implementation. + * This method performs the first applicable action in the following choices: + * + * <ul> + * <li>If the given object is {@code null}, then this method returns {@code null}.</li> + * <li>Otherwise if the given object is already an instance of {@code DefaultRecord}, + * then it is returned unchanged.</li> + * <li>Otherwise a new {@code DefaultRecord} instance is created using the + * {@linkplain #DefaultRecord(Record) copy constructor} and returned. + * Note that this is a shallow copy operation, since the members contained + * in the given object are not recursively copied.</li> + * </ul> + * + * @param other The object to get as a SIS implementation, or {@code null} if none. + * @return A SIS implementation containing the members of the given object + * (may be the given object itself), or {@code null} if the argument was {@code null}. + * + * @since 0.8 + */ + public static DefaultRecord castOrCopy(final Record other) { + if (other == null || other instanceof DefaultRecord) { + return (DefaultRecord) other; + } else { + return new DefaultRecord(other); + } + } + + /** * Returns the type definition of this record. * * @return the type definition of this record. Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -445,6 +445,7 @@ public class DefaultRecordType extends R /** * Empty constructor only used by JAXB. */ + @SuppressWarnings("unused") private DefaultRecordType() { typeName = null; container = null; Modified: sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -189,7 +189,7 @@ public final class Namespaces extends St private static final Map<String,String> SPECIFIC_URLS; static { final Map<String,String> p = new HashMap<>(40); - p.put(XMLConstants.W3C_XML_SCHEMA_NS_URI, "xsd"); + p.put(XMLConstants.W3C_XML_SCHEMA_NS_URI, "xsd"); // TODO: should be "xs". p.put(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, "xsi"); p.put("http://www.w3.org/2004/02/skos/core#", "skos"); p.put("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf"); Modified: sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/measure/ConventionalUnitTest.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/measure/ConventionalUnitTest.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/measure/ConventionalUnitTest.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/measure/ConventionalUnitTest.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -186,9 +186,9 @@ public final strictfp class Conventional verify (Units.CUBIC_METRE, Units.CUBIC_METRE .divide (1E+9), "mm³", 1E-9); assertSame(Units.HOUR, Units.SECOND.multiply(3600)); - assertSame(Units.DEGREE, Units.RADIAN.multiply(Math.PI/180)); - assertSame(Units.GRAD, Units.RADIAN.multiply(Math.PI/200)); - assertSame(Units.ARC_SECOND, Units.RADIAN.multiply(Math.PI / (180*60*60))); + assertSame(Units.DEGREE, Units.RADIAN.multiply(StrictMath.PI/180)); + assertSame(Units.GRAD, Units.RADIAN.multiply(StrictMath.PI/200)); + assertSame(Units.ARC_SECOND, Units.RADIAN.multiply(StrictMath.PI / (180*60*60))); assertSame(Units.MICRORADIAN, Units.RADIAN.divide(1E6)); assertSame(Units.GRAM, Units.KILOGRAM.divide(1E+3)); Modified: sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java URL: http://svn.apache.org/viewvc/sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java [UTF-8] (original) +++ sis/branches/Android/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -30,7 +30,7 @@ import static org.junit.Assert.*; * Tests the {@link Locales} class. * * @author Martin Desruisseaux (Geomatys) - * @version 0.4 + * @version 0.8 * @since 0.3 * @module */ @@ -82,6 +82,7 @@ public final strictfp class LocalesTest assertSame(Locale.CANADA_FRENCH, Locales.parse("fr_CAN")); assertSame(Locale.CANADA_FRENCH, Locales.parse("fra_CAN")); assertSame(Locale.JAPAN, Locales.parse("ja_JP")); + assertSame(Locale.US, Locales.parse("en; USA")); assertEquals(new Locale("de", "DE"), Locales.parse("de_DE")); assertEquals(new Locale("", "GB"), Locales.parse("_GB")); Propchange: sis/branches/Android/ide-project/NetBeans/nbproject/cfg_hints.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: sis/branches/Android/ide-project/NetBeans/nbproject/cfg_hints.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: sis/branches/Android/pom.xml URL: http://svn.apache.org/viewvc/sis/branches/Android/pom.xml?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/pom.xml (original) +++ sis/branches/Android/pom.xml Sun Aug 20 16:24:04 2017 @@ -636,7 +636,7 @@ Apache SIS is a free software, Java lang <!-- Compile --> <plugin> <artifactId>maven-compiler-plugin</artifactId> - <version>3.6.1</version> + <version>3.6.2</version> <configuration> <source>${maven.compile.source}</source> <target>${maven.compile.target}</target> @@ -866,6 +866,10 @@ Apache SIS is a free software, Java lang <packages>org.apache.sis.storage*:org.apache.sis.index*</packages> </group> <group> + <title>Coverage and raster</title> + <packages>org.apache.sis.coverage*:org.apache.sis.image*</packages> + </group> + <group> <title>Feature and Geometry</title> <packages>org.apache.sis.feature*:org.apache.sis.geometry*</packages> </group> Modified: sis/branches/Android/src/main/javadoc/overview.html URL: http://svn.apache.org/viewvc/sis/branches/Android/src/main/javadoc/overview.html?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/src/main/javadoc/overview.html [UTF-8] (original) +++ sis/branches/Android/src/main/javadoc/overview.html [UTF-8] Sun Aug 20 16:24:04 2017 @@ -28,7 +28,7 @@ Overview of <a href="http://sis.apache.org">Apache SIS™ (Spatial Information System)</a>. <h3>Requirements</h3> - <p>SIS requires Java 6 Standard Edition.</p> + <p>SIS requires Java 7 Standard Edition.</p> <h3>Classes naming</h3> <p>Implementations of <a href="http://www.geoapi.org/">GeoAPI interfaces</a> usually (but not always) Modified: sis/branches/Android/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -28,6 +28,7 @@ import org.apache.sis.storage.DataStoreR import org.apache.sis.storage.UnsupportedStorageException; import org.apache.sis.storage.StorageConnector; import org.apache.sis.setup.OptionKey; +import org.apache.sis.storage.Resource; import org.apache.sis.util.Debug; @@ -106,7 +107,7 @@ public class LandsatStore extends DataSt public synchronized Metadata getMetadata() throws DataStoreException { if (metadata == null && source != null) try { try (BufferedReader reader = (source instanceof BufferedReader) ? (BufferedReader) source : new LineNumberReader(source)) { - source = null; // Will be closed at the end of this try-catch block. + source = null; // Will be closed at the end of this try-finally block. final LandsatReader parser = new LandsatReader(getDisplayName(), listeners); parser.read(reader); metadata = parser.getMetadata(); @@ -120,6 +121,18 @@ public class LandsatStore extends DataSt } /** + * Current implementation does not provide any resource yet. + * Future versions may return an aggregate of all raster data in the GeoTIFF files associated with this metadata. + * + * @return the starting point of all resources in this data store. + * @throws DataStoreException if an error occurred while reading the data. + */ + @Override + public Resource getRootResource() throws DataStoreException { + return null; + } + + /** * Closes this Landsat store and releases any underlying resources. * * @throws DataStoreException if an error occurred while closing the Landsat file. Propchange: sis/branches/Android/storage/sis-gdal/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: sis/branches/Android/storage/sis-gdal/pom.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -42,7 +42,10 @@ import org.opengis.referencing.operation import org.apache.sis.referencing.operation.AbstractCoordinateOperation; import org.apache.sis.referencing.factory.UnavailableFactoryException; import org.apache.sis.referencing.factory.InvalidGeodeticParameterException; +import org.apache.sis.referencing.datum.DefaultGeodeticDatum; +import org.apache.sis.referencing.datum.BursaWolfParameters; import org.apache.sis.referencing.IdentifiedObjects; +import org.apache.sis.referencing.CommonCRS; import org.apache.sis.referencing.CRS; import org.apache.sis.metadata.iso.citation.Citations; import org.apache.sis.internal.metadata.AxisDirections; @@ -51,6 +54,7 @@ import org.apache.sis.internal.system.OS import org.apache.sis.util.logging.Logging; import org.apache.sis.util.resources.Errors; import org.apache.sis.util.ArgumentChecks; +import org.apache.sis.util.Utilities; import org.apache.sis.util.Static; import org.apache.sis.util.iso.Types; import org.apache.sis.measure.Units; @@ -255,7 +259,23 @@ public final class Proj4 extends Static definition.append("to_meter=").append(Units.toStandardUnit(unit)); } } + /* + * Append the "+towgs84" element if any. This is the last piece of information. + * Note that the use of a "+towgs84" parameter is an "early binding" approach, + * which is usually not recommended. But Proj4 works that way. + */ if (validCS) { + if (datum instanceof DefaultGeodeticDatum) { + for (final BursaWolfParameters bwp : ((DefaultGeodeticDatum) datum).getBursaWolfParameters()) { + if (Utilities.equalsIgnoreMetadata(CommonCRS.WGS84.datum(), bwp.getTargetDatum())) { + definition.append(" +towgs84=").append(bwp.tX).append(',').append(bwp.tY).append(',').append(bwp.tZ); + if (!bwp.isTranslation()) { + definition.append(',').append(bwp.rX).append(',').append(bwp.rY).append(',').append(bwp.rZ).append(',').append(bwp.dS); + } + break; + } + } + } return definition.toString(); } /* Modified: sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4Factory.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4Factory.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4Factory.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4Factory.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -16,6 +16,7 @@ */ package org.apache.sis.storage.gdal; +import java.util.Arrays; import java.util.Map; import java.util.Set; import java.util.HashMap; @@ -274,7 +275,7 @@ public class Proj4Factory extends Geodet /** * Returns the set of authority codes for objects of the given type. * Current implementation can not return complete Proj.4 definition strings. - * Instead, this method currently returns only fragments (e.g. {@code "+init="}). + * Instead, this method currently returns only fragments (e.g. {@code "+proj=lcc"}). * * @param type the spatial reference objects type. * @return fragments of definition strings for spatial reference objects of the given type. @@ -282,19 +283,21 @@ public class Proj4Factory extends Geodet */ @Override public Set<String> getAuthorityCodes(Class<? extends IdentifiedObject> type) throws FactoryException { - final String method; - if (type.isAssignableFrom(ProjectedCRS.class)) { // Must be tested first. - method = ""; - } else if (type.isAssignableFrom(GeographicCRS.class)) { // Should be tested before GeocentricCRS. - method = "latlon"; - } else if (type.isAssignableFrom(GeocentricCRS.class)) { - method = "geocent"; - } else { - return Collections.emptySet(); + final Set<String> codes = new LinkedHashSet<>(10); + if (type.isAssignableFrom(GeographicCRS.class)) { + codes.add("latlon"); + } + if (type.isAssignableFrom(GeocentricCRS.class)) { + codes.add("geocent"); + } + if (type.isAssignableFrom(ProjectedCRS.class)) { + codes.addAll(Arrays.asList("lcc", "merc", "tmerc", "stere")); // Only a subset of supported projections. + } + final String[] methods = codes.toArray(new String[codes.size()]); + codes.clear(); + for (final String method : methods) { + codes.add(PROJ_PARAM.concat(method)); } - final Set<String> codes = new LinkedHashSet<>(4); - codes.add("+init="); - codes.add(PROJ_PARAM.concat(method)); return codes; } @@ -582,16 +585,22 @@ public class Proj4Factory extends Geodet private CoordinateReferenceSystem createCRS(final PJ pj, final boolean withHeight) throws FactoryException { final PJ.Type type = pj.getType(); final boolean geographic = PJ.Type.GEOGRAPHIC.equals(type); + final boolean geocentric = PJ.Type.GEOCENTRIC.equals(type); final Proj4Parser parser = new Proj4Parser(pj.getCode()); final String dir = parser.value("axis", "enu"); - final CoordinateSystemAxis[] axes = new CoordinateSystemAxis[withHeight ? dir.length() : 2]; + final CoordinateSystemAxis[] axes = new CoordinateSystemAxis[geocentric | withHeight ? dir.length() : 2]; for (int i=0; i<axes.length; i++) { final char d = Character.toLowerCase(dir.charAt(i)); char abbreviation = Character.toUpperCase(d); boolean vertical = false; final AxisDirection c; final String name; - switch (d) { + if (geocentric) switch (d) { + case 'e': c = AxisDirection.GEOCENTRIC_X; name = "Geocentric X"; break; + case 'n': c = AxisDirection.GEOCENTRIC_Y; name = "Geocentric Y"; break; + case 'u': c = AxisDirection.GEOCENTRIC_Z; name = "Geocentric Z"; break; + default: c = AxisDirection.OTHER; name = "Unknown"; break; + } else switch (d) { case 'e': c = AxisDirection.EAST; name = geographic ? "Geodetic longitude" : "Easting"; break; case 'w': c = AxisDirection.WEST; name = geographic ? "Geodetic longitude" : "Westing"; break; case 'n': c = AxisDirection.NORTH; name = geographic ? "Geodetic latitude" : "Northing"; break; Modified: sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Transform.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Transform.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Transform.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Transform.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -38,6 +38,13 @@ import org.apache.sis.util.ComparisonMod /** * A math transform which delegate its work to the {@literal Proj.4} native library. + * The WKT for this math transform looks like the following fragment: + * + * {@preformat wkt + * PARAM_MT["pj_transform", + * PARAMETER["srcdefn", "+proj=…"], + * PARAMETER["dstdefn", "+proj=…"]] + * } * * @author Martin Desruisseaux (Geomatys) * @version 0.8 Modified: sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/package-info.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/package-info.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/package-info.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/package-info.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -40,10 +40,16 @@ * } * * Calls to {@link org.apache.sis.referencing.CRS#findOperation CRS.findOperation(…)} will delegate the coordinate - * transformation to Proj.4 if an only if {@code sourceCRS} and {@code targetCRS} were both obtained from a code - * in {@code "Proj4"} namespace or by a method in this package. If at least one CRS were obtained by another way, - * then Apache SIS will use its own referencing engine. The backing referencing engine can be seen by printing - * the {@code CoordinateOperation}. + * transformation to Proj.4 if {@code sourceCRS} and {@code targetCRS} were both obtained from a code in {@code "Proj4"} + * namespace or by a method in this package. Otherwise, Apache SIS will use its own referencing engine. + * The backing referencing engine can be seen by printing the {@code MathTransform}: + * a transform backed by Proj.4 have a <cite>Well Known Text 1</cite> representation like below: + * + * {@preformat wkt + * PARAM_MT["pj_transform", + * PARAMETER["srcdefn", "+proj=…"], + * PARAMETER["dstdefn", "+proj=…"]] + * } * * <div class="section">Note on Proj.4 definition strings</div> * Proj.4 unconditionally requires 3 letters for the {@code "+axis="} parameter — for example {@code "neu"} for Modified: sis/branches/Android/storage/sis-gdal/src/test/java/org/apache/sis/storage/gdal/Proj4FactoryTest.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-gdal/src/test/java/org/apache/sis/storage/gdal/Proj4FactoryTest.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-gdal/src/test/java/org/apache/sis/storage/gdal/Proj4FactoryTest.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-gdal/src/test/java/org/apache/sis/storage/gdal/Proj4FactoryTest.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -64,8 +64,10 @@ public final strictfp class Proj4Factory @Test public void testGetAuthorityCodes() throws FactoryException { final Proj4Factory factory = Proj4Factory.INSTANCE; - assertTrue(factory.getAuthorityCodes(GeographicCRS.class).containsAll(Arrays.asList("+init=", "+proj=latlon"))); - assertTrue(factory.getAuthorityCodes(CoordinateReferenceSystem.class).containsAll(Arrays.asList("+init=", "+proj="))); + assertTrue(factory.getAuthorityCodes(GeographicCRS.class).containsAll(Arrays.asList("+proj=latlon"))); + assertTrue(factory.getAuthorityCodes(ProjectedCRS.class).containsAll(Arrays.asList("+proj=merc", "+proj=lcc"))); + assertTrue(factory.getAuthorityCodes(CoordinateReferenceSystem.class).containsAll( + Arrays.asList("+proj=latlon", "+proj=merc", "+proj=lcc"))); } /** Modified: sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/CRSBuilder.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/CRSBuilder.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/CRSBuilder.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/CRSBuilder.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -133,7 +133,7 @@ import org.apache.sis.referencing.operat * <p>Going further down the list, the key 2051 ({@code GeogLinearUnitSize}) is located in {@code GeoDoubleParams(34736)} * at offset 0 and has the value 1.5; the value of key 2049 ({@code GeogCitation}) is "My Geographic".</p> * - * @author Rémi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) * @version 0.8 * Modified: sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTIFF.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTIFF.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTIFF.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTIFF.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -30,7 +30,7 @@ import org.apache.sis.internal.geotiff.R * Those readers and writers are <strong>not</strong> thread safe. * The {@link GeoTiffStore} class is responsible for synchronization if needed. * - * @author Rémi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @author Alexis Manin (Geomatys) * @author Johann Sorel (Geomatys) * @author Martin Desruisseaux (Geomatys) Modified: sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -36,6 +36,7 @@ import org.apache.sis.internal.storage.M import org.apache.sis.internal.util.Constants; import org.apache.sis.metadata.sql.MetadataStoreException; import org.apache.sis.storage.DataStoreClosedException; +import org.apache.sis.storage.Resource; import org.apache.sis.util.resources.Errors; @@ -132,6 +133,18 @@ public class GeoTiffStore extends DataSt } /** + * Current implementation does not provide any resource yet. + * A future version will return the raster data in a coverage resource. + * + * @return the starting point of all resources in this data store. + * @throws DataStoreException if an error occurred while reading the data. + */ + @Override + public Resource getRootResource() throws DataStoreException { + return null; + } + + /** * Returns the reader if it is not closed, or thrown an exception otherwise. */ private Reader reader() throws DataStoreException { Modified: sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -50,7 +50,7 @@ import org.apache.sis.internal.jdk8.JDK8 /** * An Image File Directory (FID) in a TIFF image. * - * @author Rémi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @author Alexis Manin (Geomatys) * @author Johann Sorel (Geomatys) * @author Thi Phuong Hao Nguyen (VNSC) Modified: sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -48,7 +48,7 @@ import org.apache.sis.internal.jdk8.JDK8 * <p>The TIFF format specification version 6.0 (June 3, 1992) is available * <a href="https://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf">here</a>.</p> * - * @author Rémi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @author Alexis Manin (Geomatys) * @author Johann Sorel (Geomatys) * @author Martin Desruisseaux (Geomatys) Modified: sis/branches/Android/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -26,6 +26,7 @@ import org.apache.sis.storage.StorageCon import org.apache.sis.internal.netcdf.Decoder; import org.apache.sis.metadata.ModifiableMetadata; import org.apache.sis.setup.OptionKey; +import org.apache.sis.storage.Resource; import org.apache.sis.util.CharSequences; import org.apache.sis.util.Version; import ucar.nc2.constants.CDM; @@ -117,6 +118,17 @@ public class NetcdfStore extends DataSto } /** + * This implementation does not provide any resource yet. + * + * @return currently {@code null} (will be implemented in future Apache SIS version). + * @throws DataStoreException if an error occurred while reading the data. + */ + @Override + public Resource getRootResource() throws DataStoreException { + return null; + } + + /** * Returns the version number of the Climate and Forecast (CF) conventions used in the NetCDF file. * The use of CF convention is mandated by the OGC 11-165r2 standard * (<cite>CF-netCDF3 Data Model Extension standard</cite>). Modified: sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/FeatureCatalogBuilder.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/FeatureCatalogBuilder.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/FeatureCatalogBuilder.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/FeatureCatalogBuilder.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -39,7 +39,7 @@ import org.apache.sis.feature.DefaultFea * @since 0.8 * @module */ -public class FeatureCatalogBuilder extends MetadataBuilder { +public final class FeatureCatalogBuilder extends MetadataBuilder { /** * The data store for which the metadata will be created, or {@code null} if unknown. * This is used for producing error message if an exception is thrown. Modified: sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -52,8 +52,8 @@ import org.opengis.metadata.identificati import org.opengis.metadata.distribution.Format; import org.opengis.metadata.quality.Element; import org.opengis.geometry.DirectPosition; +import org.opengis.referencing.ReferenceSystem; import org.opengis.referencing.crs.VerticalCRS; -import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.referencing.operation.TransformException; import org.apache.sis.geometry.AbstractEnvelope; import org.apache.sis.metadata.iso.DefaultMetadata; @@ -125,7 +125,7 @@ import org.apache.sis.metadata.iso.citat * API of this class may change in any future SIS versions. * * @author Martin Desruisseaux (Geomatys) - * @author Rémi Marechal (Geomatys) + * @author Rémi Maréchal (Geomatys) * @version 0.8 * @since 0.8 * @module @@ -1623,7 +1623,7 @@ parse: for (int i = 0; i < length;) * * @param crs the coordinate reference system to add to the metadata, or {@code null} for no-operation. */ - public final void addReferenceSystem(final CoordinateReferenceSystem crs) { + public final void addReferenceSystem(final ReferenceSystem crs) { if (crs != null) { addIfNotPresent(metadata().getReferenceSystemInfo(), crs); } Modified: sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java [UTF-8] (original) +++ sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java [UTF-8] Sun Aug 20 16:24:04 2017 @@ -149,6 +149,16 @@ public final class Resources extends Ind public static final short ProcessingExecutedOn_1 = 12; /** + * More than one resource have the “{1}” identifier in the “{0}” data store. + */ + public static final short ResourceIdentifierCollision_2 = 23; + + /** + * No resource found for the “{1}” identifier in the “{0}” data store. + */ + public static final short ResourceNotFound_2 = 24; + + /** * The “{1}” element must be declared before “{0}”. */ public static final short ShallBeDeclaredBefore_2 = 22; Modified: sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties [ISO-8859-1] (original) +++ sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties [ISO-8859-1] Sun Aug 20 16:24:04 2017 @@ -36,6 +36,8 @@ IllegalOutputTypeForWriter_2 = The InconsistentNameComponents_2 = Components of the \u201c{1}\u201d name are inconsistent with those of the name previously binded in \u201c{0}\u201d data store. MissingSchemeInURI_1 = Missing scheme in \u201c{0}\u201d URI. ProcessingExecutedOn_1 = Processing executed on {0}. +ResourceIdentifierCollision_2 = More than one resource have the \u201c{1}\u201d identifier in the \u201c{0}\u201d data store. +ResourceNotFound_2 = No resource found for the \u201c{1}\u201d identifier in the \u201c{0}\u201d data store. ShallBeDeclaredBefore_2 = The \u201c{1}\u201d element must be declared before \u201c{0}\u201d. StreamIsForwardOnly_1 = Can not move backward in the \u201c{0}\u201d stream. StreamIsReadOnce_1 = The \u201c{0}\u201d data store can be read only once. Modified: sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties URL: http://svn.apache.org/viewvc/sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties?rev=1805571&r1=1805570&r2=1805571&view=diff ============================================================================== --- sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties [ISO-8859-1] (original) +++ sis/branches/Android/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties [ISO-8859-1] Sun Aug 20 16:24:04 2017 @@ -41,6 +41,8 @@ IllegalOutputTypeForWriter_2 = Le l InconsistentNameComponents_2 = Les \u00e9l\u00e9ments qui composent le nom \u00ab\u202f{1}\u202f\u00bb ne sont pas coh\u00e9rents avec ceux du nom qui avait \u00e9t\u00e9 pr\u00e9c\u00e9demment li\u00e9 dans les donn\u00e9es de \u00ab\u202f{0}\u202f\u00bb. MissingSchemeInURI_1 = Il manque le sch\u00e9ma dans l\u2019URI \u00ab\u202f{0}\u202f\u00bb. ProcessingExecutedOn_1 = Traitement ex\u00e9cut\u00e9 sur {0}. +ResourceIdentifierCollision_2 = Plusieurs ressources utilisent l\u2019identifiant \u00ab\u202f{1}\u202f\u00bb dans les donn\u00e9es de \u00ab\u202f{0}\u202f\u00bb. +ResourceNotFound_2 = Aucune ressource n\u2019a \u00e9t\u00e9 trouv\u00e9e pour l\u2019identifiant \u00ab\u202f{1}\u202f\u00bb dans les donn\u00e9es de \u00ab\u202f{0}\u202f\u00bb. ShallBeDeclaredBefore_2 = L\u2019\u00e9l\u00e9ment \u00ab\u202f{1}\u202f\u00bb doit \u00eatre d\u00e9clar\u00e9 avant \u00ab\u202f{0}\u202f\u00bb. StreamIsForwardOnly_1 = Ne peut pas reculer dans le flux de donn\u00e9es \u00ab\u202f{0}\u202f\u00bb. StreamIsReadOnce_1 = Les donn\u00e9es de \u00ab\u202f{0}\u202f\u00bb ne peuvent \u00eatre lues qu\u2019une seule fois.