sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1479964 - in /sis/branches/JDK7: ./ ide-project/NetBeans/nbproject/ storage/ storage/sis-netcdf/ storage/sis-netcdf/src/ storage/sis-netcdf/src/main/ storage/sis-netcdf/src/main/java/ storage/sis-netcdf/src/main/java/org/ storage/sis-netcd...
Date Tue, 07 May 2013 16:13:42 GMT
Author: desruisseaux
Date: Tue May  7 16:13:42 2013
New Revision: 1479964

URL: http://svn.apache.org/r1479964
Log:
Initial commit of "storage/sis-netcdf" module, with only the attribute declarations for now.

Added:
    sis/branches/JDK7/storage/   (with props)
    sis/branches/JDK7/storage/pom.xml   (with props)
    sis/branches/JDK7/storage/sis-netcdf/
    sis/branches/JDK7/storage/sis-netcdf/pom.xml   (with props)
    sis/branches/JDK7/storage/sis-netcdf/src/
    sis/branches/JDK7/storage/sis-netcdf/src/main/
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfMetadata.java   (with props)
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/package-info.java   (with props)
    sis/branches/JDK7/storage/sis-netcdf/src/test/
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/storage/
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/
Modified:
    sis/branches/JDK7/ide-project/NetBeans/nbproject/build-impl.xml
    sis/branches/JDK7/ide-project/NetBeans/nbproject/genfiles.properties
    sis/branches/JDK7/ide-project/NetBeans/nbproject/project.properties
    sis/branches/JDK7/ide-project/NetBeans/nbproject/project.xml
    sis/branches/JDK7/pom.xml

Modified: sis/branches/JDK7/ide-project/NetBeans/nbproject/build-impl.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/ide-project/NetBeans/nbproject/build-impl.xml?rev=1479964&r1=1479963&r2=1479964&view=diff
==============================================================================
--- sis/branches/JDK7/ide-project/NetBeans/nbproject/build-impl.xml (original)
+++ sis/branches/JDK7/ide-project/NetBeans/nbproject/build-impl.xml Tue May  7 16:13:42 2013
@@ -135,6 +135,7 @@ is divided into following sections:
         </condition>
         <condition property="have.tests">
             <or>
+                <available file="${test.netcdf.dir}"/>
                 <available file="${test.referencing.dir}"/>
                 <available file="${test.metadata.dir}"/>
                 <available file="${test.utility.dir}"/>
@@ -145,6 +146,7 @@ is divided into following sections:
                 <available file="${src.local-src.dir}"/>
                 <available file="${src.webapp.dir}"/>
                 <available file="${src.app.dir}"/>
+                <available file="${src.netcdf.dir}"/>
                 <available file="${src.referencing.dir}"/>
                 <available file="${src.metadata.dir}"/>
                 <available file="${src.utility.dir}"/>
@@ -238,9 +240,11 @@ is divided into following sections:
         <fail unless="src.local-src.dir">Must set src.local-src.dir</fail>
         <fail unless="src.webapp.dir">Must set src.webapp.dir</fail>
         <fail unless="src.app.dir">Must set src.app.dir</fail>
+        <fail unless="src.netcdf.dir">Must set src.netcdf.dir</fail>
         <fail unless="src.referencing.dir">Must set src.referencing.dir</fail>
         <fail unless="src.metadata.dir">Must set src.metadata.dir</fail>
         <fail unless="src.utility.dir">Must set src.utility.dir</fail>
+        <fail unless="test.netcdf.dir">Must set test.netcdf.dir</fail>
         <fail unless="test.referencing.dir">Must set test.referencing.dir</fail>
         <fail unless="test.metadata.dir">Must set test.metadata.dir</fail>
         <fail unless="test.utility.dir">Must set test.utility.dir</fail>
@@ -264,7 +268,7 @@ is divided into following sections:
     </target>
     <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
         <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}" name="srcdir"/>
+            <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.netcdf.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}" name="srcdir"/>
             <attribute default="${build.classes.dir}" name="destdir"/>
             <attribute default="${javac.classpath}" name="classpath"/>
             <attribute default="${javac.processorpath}" name="processorpath"/>
@@ -304,7 +308,7 @@ is divided into following sections:
     </target>
     <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
         <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}" name="srcdir"/>
+            <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.netcdf.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}" name="srcdir"/>
             <attribute default="${build.classes.dir}" name="destdir"/>
             <attribute default="${javac.classpath}" name="classpath"/>
             <attribute default="${javac.processorpath}" name="processorpath"/>
@@ -336,7 +340,7 @@ is divided into following sections:
     </target>
     <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
         <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}" name="srcdir"/>
+            <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.netcdf.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}" name="srcdir"/>
             <attribute default="${build.classes.dir}" name="destdir"/>
             <attribute default="${javac.classpath}" name="classpath"/>
             <sequential>
@@ -423,6 +427,9 @@ is divided into following sections:
                 <property name="junit.forkmode" value="perTest"/>
                 <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
                     <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${test.netcdf.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+                            <filename name="@{testincludes}"/>
+                        </fileset>
                         <fileset dir="${test.referencing.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
@@ -461,6 +468,9 @@ is divided into following sections:
                     <isset property="test.method"/>
                 </condition>
                 <union id="test.set">
+                    <fileset dir="${test.netcdf.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+                        <filename name="@{testincludes}"/>
+                    </fileset>
                     <fileset dir="${test.referencing.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
                         <filename name="@{testincludes}"/>
                     </fileset>
@@ -579,6 +589,9 @@ is divided into following sections:
                 <property name="junit.forkmode" value="perTest"/>
                 <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
                     <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${test.netcdf.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+                            <filename name="@{testincludes}"/>
+                        </fileset>
                         <fileset dir="${test.referencing.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
@@ -952,7 +965,7 @@ is divided into following sections:
                 <include name="*"/>
             </dirset>
         </pathconvert>
-        <j2seproject3:depend srcdir="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}:${build.generated.subdirs}"/>
+        <j2seproject3:depend srcdir="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.netcdf.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}:${build.generated.subdirs}"/>
     </target>
     <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
         <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
@@ -960,6 +973,7 @@ is divided into following sections:
             <fileset dir="${src.local-src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${src.webapp.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${src.app.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+            <fileset dir="${src.netcdf.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${src.referencing.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${src.metadata.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${src.utility.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
@@ -983,7 +997,7 @@ is divided into following sections:
     <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
         <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
         <j2seproject3:force-recompile/>
-        <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}"/>
+        <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.local-src.dir}:${src.webapp.dir}:${src.app.dir}:${src.netcdf.dir}:${src.referencing.dir}:${src.metadata.dir}:${src.utility.dir}"/>
     </target>
     <target name="-post-compile-single">
         <!-- Empty placeholder for easier customization. -->
@@ -1253,6 +1267,9 @@ is divided into following sections:
             <fileset dir="${src.app.dir}" excludes="*.java,${excludes}" includes="${includes}">
                 <filename name="**/*.java"/>
             </fileset>
+            <fileset dir="${src.netcdf.dir}" excludes="*.java,${excludes}" includes="${includes}">
+                <filename name="**/*.java"/>
+            </fileset>
             <fileset dir="${src.referencing.dir}" excludes="*.java,${excludes}" includes="${includes}">
                 <filename name="**/*.java"/>
             </fileset>
@@ -1278,6 +1295,9 @@ is divided into following sections:
             <fileset dir="${src.app.dir}" excludes="${excludes}" includes="${includes}">
                 <filename name="**/doc-files/**"/>
             </fileset>
+            <fileset dir="${src.netcdf.dir}" excludes="${excludes}" includes="${includes}">
+                <filename name="**/doc-files/**"/>
+            </fileset>
             <fileset dir="${src.referencing.dir}" excludes="${excludes}" includes="${includes}">
                 <filename name="**/doc-files/**"/>
             </fileset>
@@ -1309,11 +1329,12 @@ is divided into following sections:
         <!-- You can override this target in the ../build.xml file. -->
     </target>
     <target if="do.depend.true" name="-compile-test-depend">
-        <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.referencing.dir}:${test.metadata.dir}:${test.utility.dir}"/>
+        <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.netcdf.dir}:${test.referencing.dir}:${test.metadata.dir}:${test.utility.dir}"/>
     </target>
     <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
-        <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.referencing.dir}:${test.metadata.dir}:${test.utility.dir}"/>
+        <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.netcdf.dir}:${test.referencing.dir}:${test.metadata.dir}:${test.utility.dir}"/>
         <copy todir="${build.test.classes.dir}">
+            <fileset dir="${test.netcdf.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${test.referencing.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${test.metadata.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${test.utility.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
@@ -1331,8 +1352,9 @@ is divided into following sections:
     <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
         <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
         <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
-        <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.referencing.dir}:${test.metadata.dir}:${test.utility.dir}" srcdir="${test.referencing.dir}:${test.metadata.dir}:${test.utility.dir}"/>
+        <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.netcdf.dir}:${test.referencing.dir}:${test.metadata.dir}:${test.utility.dir}" srcdir="${test.netcdf.dir}:${test.referencing.dir}:${test.metadata.dir}:${test.utility.dir}"/>
         <copy todir="${build.test.classes.dir}">
+            <fileset dir="${test.netcdf.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${test.referencing.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${test.metadata.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
             <fileset dir="${test.utility.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>

Modified: sis/branches/JDK7/ide-project/NetBeans/nbproject/genfiles.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/ide-project/NetBeans/nbproject/genfiles.properties?rev=1479964&r1=1479963&r2=1479964&view=diff
==============================================================================
--- sis/branches/JDK7/ide-project/NetBeans/nbproject/genfiles.properties [ISO-8859-1] (original)
+++ sis/branches/JDK7/ide-project/NetBeans/nbproject/genfiles.properties [ISO-8859-1] Tue May  7 16:13:42 2013
@@ -3,6 +3,6 @@
 build.xml.data.CRC32=58e6b21c
 build.xml.script.CRC32=462eaba0
 build.xml.stylesheet.CRC32=28e38971@1.53.1.46
-nbproject/build-impl.xml.data.CRC32=af14ca0b
-nbproject/build-impl.xml.script.CRC32=d26a4b87
+nbproject/build-impl.xml.data.CRC32=08945aac
+nbproject/build-impl.xml.script.CRC32=3e302f66
 nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46

Modified: sis/branches/JDK7/ide-project/NetBeans/nbproject/project.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/ide-project/NetBeans/nbproject/project.properties?rev=1479964&r1=1479963&r2=1479964&view=diff
==============================================================================
--- sis/branches/JDK7/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] (original)
+++ sis/branches/JDK7/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] Tue May  7 16:13:42 2013
@@ -7,7 +7,6 @@ application.vendor   = Apache
 application.homepage = http://sis.apache.org/
 application.desc     = Apache SIS is a toolkit for describing location information, including points, bounding boxes, polygons, and for computing distances on that information.
 
-file.reference.site-resources=../../../JDK6/sis-metadata/src/site/resources
 #
 # Some global configuration.
 #
@@ -29,6 +28,8 @@ project.root         = ../..
 src.local-src.dir    = ../local-src
 src.webapp.dir       = ${project.root}/sis-webapp/src/main/java
 src.app.dir          = ${project.root}/sis-app/src/main/java
+src.netcdf.dir       = ${project.root}/storage/sis-netcdf/src/main/java
+test.netcdf.dir      = ${project.root}/storage/sis-netcdf/src/test/java
 src.referencing.dir  = ${project.root}/sis-referencing/src/main/java
 test.referencing.dir = ${project.root}/sis-referencing/src/test/java
 src.metadata.dir     = ${project.root}/sis-metadata/src/main/java
@@ -51,6 +52,7 @@ jdom.version         = 1.0
 jee.version          = 6.0
 jcip.version         = 1.0
 osgi.version         = 5.0.0
+netcdf.version       = 4.3.16
 junit.version        = 4.10
 
 #
@@ -69,6 +71,7 @@ javac.classpath=\
     ${maven.repository}/jdom/jdom/${jdom.version}/jdom-${jdom.version}.jar:\
     ${maven.repository}/javax/javaee-api/${jee.version}/javaee-api-${jee.version}.jar:\
     ${maven.repository}/net/jcip/jcip-annotations/${jcip.version}/jcip-annotations-${jcip.version}.jar:\
+    ${maven.repository}/edu/ucar/netcdf/${netcdf.version}/netcdf-${netcdf.version}.jar:\
     ${maven.repository}/org/osgi/org.osgi.core/${osgi.version}/org.osgi.core-${osgi.version}.jar
 javac.processorpath=\
     ${javac.classpath}

Modified: sis/branches/JDK7/ide-project/NetBeans/nbproject/project.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/ide-project/NetBeans/nbproject/project.xml?rev=1479964&r1=1479963&r2=1479964&view=diff
==============================================================================
--- sis/branches/JDK7/ide-project/NetBeans/nbproject/project.xml (original)
+++ sis/branches/JDK7/ide-project/NetBeans/nbproject/project.xml Tue May  7 16:13:42 2013
@@ -8,11 +8,13 @@
                 <root id="src.local-src.dir" name="Local sources (unversioned)"/>
                 <root id="src.webapp.dir" name="Web application"/>
                 <root id="src.app.dir" name="Application"/>
+                <root id="src.netcdf.dir" name="NetCDF"/>
                 <root id="src.referencing.dir" name="Referencing"/>
                 <root id="src.metadata.dir" name="Metadata"/>
                 <root id="src.utility.dir" name="Utility"/>
             </source-roots>
             <test-roots>
+                <root id="test.netcdf.dir" name="NetCDF tests"/>
                 <root id="test.referencing.dir" name="Referencing tests"/>
                 <root id="test.metadata.dir" name="Metadata tests"/>
                 <root id="test.utility.dir" name="Utility tests"/>

Modified: sis/branches/JDK7/pom.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/pom.xml?rev=1479964&r1=1479963&r2=1479964&view=diff
==============================================================================
--- sis/branches/JDK7/pom.xml (original)
+++ sis/branches/JDK7/pom.xml Tue May  7 16:13:42 2013
@@ -253,6 +253,16 @@ Apache SIS is a toolkit for describing l
       </roles>
     </contributor>
     <contributor>
+      <name>Johann Sorel</name>
+      <email>johann.sorel@geomatys.com</email>
+      <organization>Geomatys</organization>
+      <organizationUrl>http://www.geomatys.com/</organizationUrl>
+      <timezone>+1</timezone>
+      <roles>
+        <role>developer</role>
+      </roles>
+    </contributor>
+    <contributor>
       <name>Kevan Miller</name>
       <roles>
         <role>mentor</role>
@@ -334,6 +344,12 @@ Apache SIS is a toolkit for describing l
         <version>5.0.0</version>
         <scope>provided</scope>
       </dependency>
+      <dependency>
+        <groupId>edu.ucar</groupId>
+        <artifactId>netcdf</artifactId>
+        <version>${netcdf.version}</version>
+        <scope>provided</scope>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 
@@ -358,6 +374,7 @@ Apache SIS is a toolkit for describing l
        =================================================================== -->
   <properties>
     <geoapi.version>3.1-M04</geoapi.version>
+    <netcdf.version>4.3.16</netcdf.version>
     <findbugs.version>2.5.2</findbugs.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <website.encoding>UTF-8</website.encoding>
@@ -690,6 +707,7 @@ Apache SIS is a toolkit for describing l
     <module>sis-utility</module>
     <module>sis-metadata</module>
     <module>sis-referencing</module>
+    <module>storage</module>
     <module>sis-webapp</module>
     <module>sis-app</module>
   </modules>

Propchange: sis/branches/JDK7/storage/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue May  7 16:13:42 2013
@@ -0,0 +1,10 @@
+.project
+.settings
+.classpath
+.jetproperties
+.wtpmodules
+target
+bin
+cobertura.ser
+nbproject
+nbactions.xml

Added: sis/branches/JDK7/storage/pom.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/pom.xml?rev=1479964&view=auto
==============================================================================
--- sis/branches/JDK7/storage/pom.xml (added)
+++ sis/branches/JDK7/storage/pom.xml Tue May  7 16:13:42 2013
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<project xmlns              = "http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi          = "http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
+                               http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.sis</groupId>
+    <artifactId>sis-parent</artifactId>
+    <version>0.3-jdk7-SNAPSHOT</version>
+  </parent>
+
+
+  <!-- ===========================================================
+           Module Description
+       =========================================================== -->
+  <artifactId>storage</artifactId>
+  <packaging>pom</packaging>
+  <name>Apache SIS storage</name>
+  <description>
+    Group of services for reading and writing data from/to storage.
+    Storage are typically file formats or a database schemas.
+  </description>
+
+
+  <!-- ===========================================================
+           Developers and Contributors
+       =========================================================== -->
+  <developers>
+    <developer>
+      <name>Martin Desruisseaux</name>
+      <id>desruisseaux</id>
+      <email>desruisseaux@apache.org</email>
+      <organization>Geomatys</organization>
+      <organizationUrl>http://www.geomatys.com</organizationUrl>
+      <timezone>+1</timezone>
+      <roles>
+        <role>developer</role>
+      </roles>
+    </developer>
+  </developers>
+  <contributors>
+    <contributor>
+      <name>Johann Sorel</name>
+      <email>johann.sorel@geomatys.com</email>
+      <organization>Geomatys</organization>
+      <organizationUrl>http://www.geomatys.com/</organizationUrl>
+      <timezone>+1</timezone>
+      <roles>
+        <role>developer</role>
+      </roles>
+    </contributor>
+  </contributors>
+
+
+  <!-- ===========================================================
+           Dependencies
+       =========================================================== -->
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.sis</groupId>
+      <artifactId>sis-metadata</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opengis</groupId>
+      <artifactId>geoapi-pending</artifactId>
+    </dependency>
+  </dependencies>
+
+
+  <!-- ===========================================================
+           Sub-modules included in the build
+       =========================================================== -->
+  <modules>
+    <module>sis-netcdf</module>
+  </modules>
+
+</project>

Propchange: sis/branches/JDK7/storage/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/storage/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: sis/branches/JDK7/storage/sis-netcdf/pom.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-netcdf/pom.xml?rev=1479964&view=auto
==============================================================================
--- sis/branches/JDK7/storage/sis-netcdf/pom.xml (added)
+++ sis/branches/JDK7/storage/sis-netcdf/pom.xml Tue May  7 16:13:42 2013
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<project xmlns              = "http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi          = "http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
+                               http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.sis</groupId>
+    <artifactId>storage</artifactId>
+    <version>0.3-jdk7-SNAPSHOT</version>
+  </parent>
+
+
+  <!-- ===========================================================
+           Module Description
+       =========================================================== -->
+  <groupId>org.apache.sis.storage</groupId>
+  <artifactId>sis-netcdf</artifactId>
+  <packaging>bundle</packaging>
+  <name>Apache SIS NetCDF storage</name>
+  <description>
+  <!-- Left alignment because this description will be copied in META-INF/MANIFEST.MF
+       The leading space after the first line is necessary for proper formatting. -->
+Bridge between NetCDF CF convention and ISO 19115 metadata.
+  </description>
+
+
+  <!-- ===========================================================
+           Developers and Contributors
+       =========================================================== -->
+  <developers>
+    <developer>
+      <name>Martin Desruisseaux</name>
+      <id>desruisseaux</id>
+      <email>desruisseaux@apache.org</email>
+      <organization>Geomatys</organization>
+      <organizationUrl>http://www.geomatys.com</organizationUrl>
+      <timezone>+1</timezone>
+      <roles>
+        <role>developer</role>
+      </roles>
+    </developer>
+  </developers>
+  <contributors>
+    <contributor>
+      <name>Antoine Hnawia</name>
+      <organization>Institut de Recherche pour le Développement</organization>
+      <organizationUrl>http://www.ird.fr/</organizationUrl>
+      <timezone>+11</timezone>
+      <roles>
+        <role>developer</role>
+      </roles>
+    </contributor>
+  </contributors>
+
+
+  <!-- ===========================================================
+           Dependencies
+       =========================================================== -->
+  <dependencies>
+    <dependency>
+      <groupId>edu.ucar</groupId>
+      <artifactId>netcdf</artifactId>
+    </dependency>
+  </dependencies>
+
+  <!--  UCAR repository from which to download the NetCDF library. -->
+  <repositories>
+    <repository>
+      <id>UCAR</id>
+      <name>UCAR repository</name>
+      <url>https://artifacts.unidata.ucar.edu/content/repositories/unidata-releases</url>
+    </repository>
+  </repositories>
+
+</project>

Propchange: sis/branches/JDK7/storage/sis-netcdf/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/storage/sis-netcdf/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfMetadata.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfMetadata.java?rev=1479964&view=auto
==============================================================================
--- sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfMetadata.java (added)
+++ sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfMetadata.java [UTF-8] Tue May  7 16:13:42 2013
@@ -0,0 +1,916 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sis.storage.netcdf;
+
+import ucar.nc2.Group;
+import ucar.nc2.NetcdfFile;
+import ucar.nc2.VariableSimpleIF;
+import ucar.nc2.constants.CF;
+import org.opengis.metadata.Metadata;
+import org.opengis.metadata.Identifier;
+import org.opengis.metadata.citation.*;
+import org.opengis.metadata.content.*;
+import org.opengis.metadata.distribution.Distributor;
+import org.opengis.metadata.distribution.Distribution;
+import org.opengis.metadata.constraint.LegalConstraints;
+import org.opengis.metadata.constraint.Restriction;
+import org.opengis.metadata.spatial.DimensionNameType;
+import org.opengis.metadata.spatial.GridSpatialRepresentation;
+import org.opengis.metadata.spatial.SpatialRepresentationType;
+import org.opengis.metadata.identification.DataIdentification;
+import org.opengis.metadata.identification.TopicCategory;
+import org.opengis.metadata.identification.KeywordType;
+import org.opengis.metadata.identification.Keywords;
+import org.opengis.metadata.quality.DataQuality;
+import org.opengis.metadata.lineage.Lineage;
+import org.opengis.metadata.extent.Extent;
+import org.opengis.metadata.extent.VerticalExtent;
+import org.opengis.metadata.extent.TemporalExtent;
+import org.opengis.metadata.extent.GeographicBoundingBox;
+import org.opengis.metadata.extent.GeographicDescription;
+
+
+/**
+ * Mapping from/to NetCDF metadata to ISO 19115-2 metadata.
+ * This class defines the names of attributes used by the reader and writer sub-classes.
+ * The NetCDF attributes defined by this class are:
+ *
+ * <p>{@value #ACCESS_CONSTRAINT}, {@value #ACKNOWLEDGMENT}, {@value #COMMENT},
+ * {@linkplain #CONTRIBUTOR "contributor_email"},
+ * {@linkplain #CONTRIBUTOR "contributor_name"},
+ * {@linkplain #CONTRIBUTOR "contributor_role"},
+ * {@linkplain #CONTRIBUTOR "contributor_url"},
+ * {@linkplain #CREATOR     "creator_email"},
+ * {@linkplain #CREATOR     "creator_name"},
+ * {@linkplain #CREATOR     "creator_url"},
+ * {@value #DATA_TYPE}, {@value #DATE_CREATED}, {@value #DATE_ISSUED}, {@value #DATE_MODIFIED},
+ * {@value #FLAG_MASKS}, {@value #FLAG_MEANINGS}, {@value #FLAG_NAMES}, {@value #FLAG_VALUES},
+ * {@linkplain #TITLE "full_name"},
+ * {@linkplain #GEOGRAPHIC_IDENTIFIER "geographic_identifier"},
+ * {@linkplain #LATITUDE  "geospatial_lat_max"},
+ * {@linkplain #LATITUDE  "geospatial_lat_min"},
+ * {@linkplain #LATITUDE  "geospatial_lat_resolution"},
+ * {@linkplain #LATITUDE  "geospatial_lat_units"},
+ * {@linkplain #LONGITUDE "geospatial_lon_max"},
+ * {@linkplain #LONGITUDE "geospatial_lon_min"},
+ * {@linkplain #LONGITUDE "geospatial_lon_resolution"},
+ * {@linkplain #LONGITUDE "geospatial_lon_units"},
+ * {@linkplain #VERTICAL  "geospatial_vertical_max"},
+ * {@linkplain #VERTICAL  "geospatial_vertical_min"},
+ * {@linkplain #VERTICAL  "geospatial_vertical_positive"},
+ * {@linkplain #VERTICAL  "geospatial_vertical_resolution"},
+ * {@linkplain #VERTICAL  "geospatial_vertical_units"},
+ * {@value #HISTORY}, {@value #IDENTIFIER}, {@linkplain #CREATOR "institution"}, {@value #KEYWORDS},
+ * {@value #LICENSE}, {@value #METADATA_CREATION}, {@linkplain #TITLE "name"}, {@value #NAMING_AUTHORITY},
+ * {@value #PROCESSING_LEVEL}, {@value #PROJECT},
+ * {@linkplain #PUBLISHER "publisher_email"},
+ * {@linkplain #PUBLISHER "publisher_name"},
+ * {@linkplain #PUBLISHER "publisher_url"},
+ * {@value #PURPOSE}, {@value #REFERENCES}, {@value #STANDARD_NAME},
+ * {@value #STANDARD_NAME_VOCABULARY}, {@value #SUMMARY},
+ * {@linkplain #TIME "time_coverage_duration"},
+ * {@linkplain #TIME "time_coverage_end"},
+ * {@linkplain #TIME "time_coverage_resolution"},
+ * {@linkplain #TIME "time_coverage_start"},
+ * {@linkplain #TIME "time_coverage_units"},
+ * {@value #TITLE}, {@value #TOPIC_CATEGORY} and {@value #VOCABULARY}.</p>
+ *
+ * @author  Martin Desruisseaux (Geomatys)
+ * @since   0.3 (derived from geotk-3.20)
+ * @version 0.3
+ * @module
+ */
+public abstract class NetcdfMetadata /* implements WarningProducer*/ {
+    /**
+     * The {@value} attribute name for a short description of the dataset
+     * (<em>Highly Recommended</em>). If no {@value} attribute is provided,
+     * then {@code NetcdfMetadata} will look for "full_name" and "name".
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCitation() citation} /
+     * {@link Citation#getTitle() title}</li></ul></p>
+     *
+     * @see NetcdfFile#getTitle()
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#title_Attribute">UCAR reference</a>
+     */
+    public static final String TITLE = "title";
+
+    /**
+     * The {@value} attribute name for a paragraph describing the dataset
+     * (<em>Highly Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getAbstract() abstract}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#summary_Attribute">UCAR reference</a>
+     */
+    public static final String SUMMARY = "summary";
+
+    /**
+     * The {@value} attribute name for an identifier (<em>Recommended</em>).
+     * The combination of the {@value #NAMING_AUTHORITY} and the {@value}
+     * should be a globally unique identifier for the dataset.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getFileIdentifier() fileIdentifier}</li>
+     * <li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCitation() citation} /
+     * {@link Citation#getIdentifiers() identifier} /
+     * {@link Identifier#getCode() code}</li></ul></p>
+     *
+     * @see NetcdfMetadataReader#getFileIdentifier()
+     * @see NetcdfFile#getId()
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#id_Attribute">UCAR reference</a>
+     */
+    public static final String IDENTIFIER = "id";
+
+    /**
+     * The {@value} attribute name for the identifier authority (<em>Recommended</em>).
+     * The combination of the {@value} and the {@value #IDENTIFIER} should be a globally
+     * unique identifier for the dataset.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getFileIdentifier() fileIdentifier}</li>
+     * <li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCitation() citation} /
+     * {@link Citation#getIdentifiers() identifier} /
+     * {@link Identifier#getAuthority() authority}</li></ul></p>
+     *
+     * @see #IDENTIFIER
+     * @see NetcdfMetadataReader#getFileIdentifier()
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#id_Attribute">UCAR reference</a>
+     */
+    public static final String NAMING_AUTHORITY = "naming_authority";
+
+    /**
+     * The {@value} attribute name for a long descriptive name for the variable taken from a controlled
+     * vocabulary of variable names. This is actually a {@linkplain VariableSimpleIF variable} attribute,
+     * but sometime appears also in {@linkplain NetcdfFile#findGlobalAttribute(String) global attributes}.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getDescriptiveKeywords() descriptiveKeywords} /
+     * {@link Keywords#getKeywords() keyword} with {@link KeywordType#THEME}</li></ul></p>
+     *
+     * @see #STANDARD_NAME_VOCABULARY
+     * @see #KEYWORDS
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#standard_name_Attribute">UCAR reference</a>
+     */
+    public static final String STANDARD_NAME = CF.STANDARD_NAME;
+
+    /**
+     * The {@value} attribute name for indicating which controlled list of variable names has been
+     * used in the {@value #STANDARD_NAME} attribute.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getDescriptiveKeywords() descriptiveKeywords} /
+     * {@link Keywords#getThesaurusName() thesaurusName} /
+     * {@link Citation#getTitle() title}</li></ul></p>
+     *
+     * @see #STANDARD_NAME
+     * @see #VOCABULARY
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#standard_name_vocabulary_Attribute">UCAR reference</a>
+     */
+    public static final String STANDARD_NAME_VOCABULARY = "standard_name_vocabulary";
+
+    /**
+     * The {@value} attribute name for a comma separated list of key words and phrases
+     * (<em>Highly Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getDescriptiveKeywords() descriptiveKeywords} /
+     * {@link Keywords#getKeywords() keyword} with {@link KeywordType#THEME}</li></ul></p>
+     *
+     * @see #VOCABULARY
+     * @see #STANDARD_NAME
+     * @see NetcdfMetadataReader#getKeywordSeparator(Group)
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#keywords_Attribute">UCAR reference</a>
+     */
+    public static final String KEYWORDS = "keywords";
+
+    /**
+     * The {@value} attribute name for the guideline for the words/phrases in the
+     * {@value #KEYWORDS} attribute (<em>Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getDescriptiveKeywords() descriptiveKeywords} /
+     * {@link Keywords#getThesaurusName() thesaurusName} /
+     * {@link Citation#getTitle() title}</li></ul></p>
+     *
+     * @see #KEYWORDS
+     * @see #STANDARD_NAME_VOCABULARY
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#keywords_vocabulary_Attribute">UCAR reference</a>
+     */
+    public static final String VOCABULARY = "keywords_vocabulary";
+
+    /**
+     * The {@value} attribute name for a high-level geographic data thematic classification.
+     * Typical values are {@code "farming"}, {@code "biota"}, {@code "boundaries"},
+     * {@code "climatology meteorology atmosphere"}, {@code "economy"}, {@code "elevation"},
+     * {@code "environment"}, {@code "geoscientific information"}, {@code "health"},
+     * {@code "imagery base maps earth cover"}, {@code "intelligence military"},
+     * {@code "inland waters"}, {@code "location"}, {@code "oceans"}, {@code "planning cadastre"},
+     * {@code "society"}, {@code "structure"}, {@code "transportation"} and
+     * {@code "utilitiesCommunication"}.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getTopicCategories() topicCategory}</li></ul></p>
+     *
+     * @see TopicCategory
+     */
+    public static final String TOPIC_CATEGORY = "topic_category";
+
+    /**
+     * The {@value} attribute name for the THREDDS data type appropriate for this dataset
+     * (<em>Recommended</em>). Examples: {@code "Vector"}, {@code "TextTable"}, {@code "Grid"},
+     * {@code "Image"}, {@code "Video"}, {@code "Tin"}, {@code "StereoModel"}, {@code "Station"},
+     * {@code "Swath"} or {@code "Trajectory"}.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getSpatialRepresentationTypes() spatialRepresentationType}</li></ul></p>
+     *
+     * @see SpatialRepresentationType
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#cdm_data_type_Attribute">UCAR reference</a>
+     */
+    public static final String DATA_TYPE = "cdm_data_type";
+
+    /**
+     * The {@value} attribute name for providing an audit trail for modifications to the
+     * original data (<em>Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getDataQualityInfo() dataQualityInfo} /
+     * {@link DataQuality#getLineage() lineage} /
+     * {@link Lineage#getStatement() statement}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#history_Attribute">UCAR reference</a>
+     */
+    public static final String HISTORY = "history";
+
+    /**
+     * The {@value} attribute name for miscellaneous information about the data
+     * (<em>Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getSupplementalInformation() supplementalInformation}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#comment_Attribute">UCAR reference</a>
+     */
+    public static final String COMMENT = "comment";
+
+    /**
+     * The {@value} attribute name for the date on which the metadata was created
+     * (<em>Suggested</em>). This is actually defined in the "{@code NCISOMetadata}"
+     * subgroup.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getDateStamp() dateStamp}</li></ul></p>
+     */
+    public static final String METADATA_CREATION = "metadata_creation";
+
+    /**
+     * The {@value} attribute name for the date on which the data was created
+     * (<em>Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCitation() citation} /
+     * {@link Citation#getDates() date} /
+     * {@link CitationDate#getDate() date} with {@link DateType#CREATION}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#date_created_Attribute">UCAR reference</a>
+     */
+    public static final String DATE_CREATED = "date_created";
+
+    /**
+     * The {@value} attribute name for the date on which this data was last modified
+     * (<em>Suggested</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCitation() citation} /
+     * {@link Citation#getDates() date} /
+     * {@link CitationDate#getDate() date} with {@link DateType#REVISION}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#date_modified_Attribute">UCAR reference</a>
+     */
+    public static final String DATE_MODIFIED = "date_modified";
+
+    /**
+     * The {@value} attribute name for a date on which this data was formally issued
+     * (<em>Suggested</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCitation() citation} /
+     * {@link Citation#getDates() date} /
+     * {@link CitationDate#getDate() date} with {@link DateType#PUBLICATION}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#date_issued_Attribute">UCAR reference</a>
+     */
+    public static final String DATE_ISSUED = "date_issued";
+
+    /**
+     * Holds the attribute names describing a responsible party.
+     * Values are:
+     *
+     * <table border="1" cellspacing="0"><tr bgcolor="lightblue">
+     *   <th>Attribute</th>
+     *   <th>{@link NetcdfMetadata#CREATOR}</th>
+     *   <th>{@link NetcdfMetadata#CONTRIBUTOR}</th>
+     *   <th>{@link NetcdfMetadata#PUBLISHER}</th>
+     * </tr><tr>
+     *   <td>{@link #NAME}</td>
+     *   <td>{@code "creator_name"}</td>
+     *   <td>{@code "contributor_name"}</td>
+     *   <td>{@code "publisher_name"}</td>
+     * </tr><tr>
+     *   <td>{@link #INSTITUTION}</td>
+     *   <td>{@code "institution"}</td>
+     *   <td></td>
+     *   <td></td>
+     * </tr><tr>
+     *   <td>{@link #URL}</td>
+     *   <td>{@code "creator_url"}</td>
+     *   <td>{@code "contributor_url"}</td>
+     *   <td>{@code "publisher_url"}</td>
+     * </tr><tr>
+     *   <td>{@link #EMAIL}</td>
+     *   <td>{@code "creator_email"}</td>
+     *   <td>{@code "contributor_email"}</td>
+     *   <td>{@code "publisher_email"}</td>
+     * </tr><tr>
+     *   <td>{@link #ROLE}</td>
+     *   <td></td>
+     *   <td>{@code "contributor_role"}</td>
+     *   <td></td>
+     * </tr><tr>
+     *   <td>{@link #DEFAULT_ROLE}</td>
+     *   <td>{@link Role#ORIGINATOR}</td>
+     *   <td></td>
+     *   <td>{@link Role#PUBLISHER}</td>
+     * </tr></table>
+     *
+     * {@note The member names in this class are upper-cases because they should be considered
+     *        as constants. For example <code>NetcdfMetadata.CREATOR.EMAIL</code> maps exactly to the
+     *        <code>"creator_email"</code> string and nothing else. A lower-case <code>email</code>
+     *        member name could be misleading since it would suggest that the field contains the
+     *        actual name value rather than the key by which the value is identified in a NetCDF file.}
+     *
+     * @author  Martin Desruisseaux (Geomatys)
+     * @since   0.3 (derived from geotk-3.20)
+     * @version 0.3
+     * @module
+     */
+    public static class Responsible {
+        /**
+         * The attribute name for the responsible's name. Possible values are
+         * {@code "creator_name"}, {@code "contributor_name"} or {@code "publisher_name"}.
+         *
+         * <p><b>Path:</b> <ul><li>{@link ResponsibleParty} /
+         * {@link ResponsibleParty#getIndividualName() individualName}</li></ul></p>
+         */
+        public final String NAME;
+
+        /**
+         * The attribute name for the responsible's institution, or {@code null} if none.
+         * Possible value is {@code "institution"}.
+         *
+         * <p><b>Path:</b> <ul><li>{@link ResponsibleParty} /
+         * {@link ResponsibleParty#getOrganisationName() organisationName}</li></ul></p>
+         */
+        public final String INSTITUTION;
+
+        /**
+         * The attribute name for the responsible's URL. Possible values are
+         * {@code "creator_url"}, {@code "contributor_url"} or {@code "publisher_url"}.
+         *
+         * <p><b>Path:</b> <ul><li>{@link ResponsibleParty} /
+         * {@link ResponsibleParty#getContactInfo() contactInfo} /
+         * {@link Contact#getOnlineResource() onlineResource} /
+         * {@link OnlineResource#getLinkage() linkage}</li></ul></p>
+         */
+        public final String URL;
+
+        /**
+         * The attribute name for the responsible's email address. Possible values are
+         * {@code "creator_email"}, {@code "contributor_email"} or {@code "publisher_email"}.
+         *
+         * <p><b>Path:</b> <ul><li>{@link ResponsibleParty} /
+         * {@link ResponsibleParty#getContactInfo() contactInfo} /
+         * {@link Contact#getAddress() address} /
+         * {@link Address#getElectronicMailAddresses() electronicMailAddress}</li></ul></p>
+         */
+        public final String EMAIL;
+
+        /**
+         * The attribute name for the responsible's role, or {@code null} if none.
+         * Possible value is {@code "contributor_role"}.
+         *
+         * <p><b>Path:</b> <ul><li>{@link ResponsibleParty} /
+         * {@link ResponsibleParty#getRole()}</li></ul></p>
+         *
+         * @see Role
+         */
+        public final String ROLE;
+
+        /**
+         * The role to use as a fallback if no attribute value is associated to the {@link #ROLE} key.
+         */
+        public final Role DEFAULT_ROLE;
+
+        /**
+         * Creates a new set of attribute names. Any argument can be {@code null}
+         * if not applicable.
+         *
+         * @param name        The attribute name for the responsible's name.
+         * @param institution The attribute name for the responsible's institution.
+         * @param url         The attribute name for the responsible's URL.
+         * @param email       The attribute name for the responsible's email address.
+         * @param role        The attribute name for the responsible's role.
+         * @param defaultRole The role to use as a fallback if no attribute value is associated to the
+         *                    {@code role} key.
+         */
+        public Responsible(final String name, final String institution, final String url, final String email,
+                final String role, final Role defaultRole)
+        {
+            NAME         = name;
+            INSTITUTION  = institution;
+            URL          = url;
+            EMAIL        = email;
+            ROLE         = role;
+            DEFAULT_ROLE = defaultRole;
+        }
+    }
+
+    /**
+     * The set of attribute names for the creator (<em>Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCitation() citation} with {@link Role#ORIGINATOR}</li></ul></p>
+     *
+     * @see #CONTRIBUTOR
+     * @see #PUBLISHER
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#creator_name_Attribute">UCAR reference</a>
+     */
+    public static final Responsible CREATOR = new Responsible("creator_name",
+            "institution", "creator_url", "creator_email", null, Role.ORIGINATOR);
+
+    /**
+     * The set of attribute names for the contributor (<em>Suggested</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCitation() citation}</li></ul></p>
+     *
+     * @see #CREATOR
+     * @see #PUBLISHER
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#contributor_name_Attribute">UCAR reference</a>
+     */
+    public static final Responsible CONTRIBUTOR = new Responsible("contributor_name",
+            null, "contributor_url", "contributor_email", "contributor_role", null);
+
+    /**
+     * The set of attribute names for the publisher (<em>Suggested</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getDistributionInfo() distributionInfo} /
+     * {@link Distribution#getDistributors() distributors} /
+     * {@link Distributor#getDistributorContact() distributorContact} with {@link Role#PUBLISHER}</li>
+     * <li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getDescriptiveKeywords() descriptiveKeywords} /
+     * {@link Keywords#getKeywords() keyword} with the {@code "dataCenter"} {@link KeywordType}</li></ul></p>
+     *
+     * @see #CREATOR
+     * @see #CONTRIBUTOR
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#publisher_name_Attribute">UCAR reference</a>
+     */
+    public static final Responsible PUBLISHER = new Responsible("publisher_name",
+            null, "publisher_url", "publisher_email", null, Role.PUBLISHER);
+
+    /**
+     * The {@value} attribute name for the scientific project that produced the data
+     * (<em>Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getDescriptiveKeywords() descriptiveKeywords} /
+     * {@link Keywords#getKeywords() keyword} with the {@code "project"} {@link KeywordType}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#project_Attribute">UCAR reference</a>
+     */
+    public static final String PROJECT = "project";
+
+    /**
+     * The {@value} attribute name for the summary of the intentions with which the resource(s)
+     * was developed.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getPurpose() purpose}</li></ul></p>
+     */
+    public static final String PURPOSE = "purpose";
+
+    /**
+     * The {@value} attribute name for bibliographical references.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCitation() citation} /
+     * {@link Citation#getOtherCitationDetails() otherCitationDetails}</li></ul></p>
+     */
+    public static final String REFERENCES = "references";
+
+    /**
+     * The {@value} attribute name for a textual description of the processing (or quality control)
+     * level of the data.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getContentInfo() contentInfo} /
+     * {@link ImageDescription#getProcessingLevelCode() processingLevelCode}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#processing_level_Attribute">UCAR reference</a>
+     */
+    public static final String PROCESSING_LEVEL = "processing_level";
+
+    /**
+     * The {@value} attribute name for a place to acknowledge various type of support for
+     * the project that produced this data (<em>Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getCredits() credit}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#acknowledgement_Attribute">UCAR reference</a>
+     */
+    public static final String ACKNOWLEDGMENT = "acknowledgment";
+
+    /**
+     * The {@value} attribute name for a description of the restrictions to data access
+     * and distribution (<em>Recommended</em>).
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getResourceConstraints() resourceConstraints} /
+     * {@link LegalConstraints#getUseLimitations() useLimitation}</li></ul></p>
+     *
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#license_Attribute">UCAR reference</a>
+     */
+    public static final String LICENSE = "license";
+
+    /**
+     * The {@value} attribute name for the access constraints applied to assure the protection of
+     * privacy or intellectual property. Typical values are {@code "copyright"}, {@code "patent"},
+     * {@code "patent pending"}, {@code "trademark"}, {@code "license"},
+     * {@code "intellectual property rights"} or {@code "restricted"}.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getResourceConstraints() resourceConstraints} /
+     * {@link LegalConstraints#getAccessConstraints() accessConstraints}</li></ul></p>
+     *
+     * @see Restriction
+     */
+    public static final String ACCESS_CONSTRAINT = "acces_constraint";
+
+    /**
+     * The {@value} attribute name for an identifier of the geographic area.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getExtents() extent} /
+     * {@link Extent#getGeographicElements() geographicElement} /
+     * {@link GeographicDescription#getGeographicIdentifier() geographicIdentifier}</li></ul></p>
+     */
+    public static final String GEOGRAPHIC_IDENTIFIER = "geographic_identifier";
+
+    /**
+     * Holds the attribute names describing a simple latitude, longitude, and vertical bounding box.
+     * Values are:
+     *
+     * <table border="1" cellspacing="0"><tr bgcolor="lightblue">
+     *   <th>Attributes</th>
+     *   <th>{@link NetcdfMetadata#LATITUDE}</th>
+     *   <th>{@link NetcdfMetadata#LONGITUDE}</th>
+     *   <th>{@link NetcdfMetadata#VERTICAL}</th>
+     *   <th>{@link NetcdfMetadata#TIME}</th>
+     * </tr><tr>
+     *   <td>{@link #MINIMUM}</td>
+     *   <td>{@code "geospatial_lat_min"}</td>
+     *   <td>{@code "geospatial_lon_min"}</td>
+     *   <td>{@code "geospatial_vertical_min"}</td>
+     *   <td>{@code "time_coverage_start"}</td>
+     * </tr><tr>
+     *   <td>{@link #MAXIMUM}</td>
+     *   <td>{@code "geospatial_lat_max"}</td>
+     *   <td>{@code "geospatial_lon_max"}</td>
+     *   <td>{@code "geospatial_vertical_max"}</td>
+     *   <td>{@code "time_coverage_end"}</td>
+     * </tr><tr>
+     *   <td>{@link #SPAN}</td>
+     *   <td></td>
+     *   <td></td>
+     *   <td></td>
+     *   <td>{@code "time_coverage_duration"}</td>
+     * </tr><tr>
+     *   <td>{@link #RESOLUTION}</td>
+     *   <td>{@code "geospatial_lat_resolution"}</td>
+     *   <td>{@code "geospatial_lon_resolution"}</td>
+     *   <td>{@code "geospatial_vertical_resolution"}</td>
+     *   <td>{@code "time_coverage_resolution"}</td>
+     * </tr><tr>
+     *   <td>{@link #UNITS}</td>
+     *   <td>{@code "geospatial_lat_units"}</td>
+     *   <td>{@code "geospatial_lon_units"}</td>
+     *   <td>{@code "geospatial_vertical_units"}</td>
+     *   <td>{@code "time_coverage_units"}</td>
+     * </tr><tr>
+     *   <td>{@link #POSITIVE}</td>
+     *   <td></td>
+     *   <td></td>
+     *   <td>{@code "geospatial_vertical_positive"}</td>
+     *   <td></td>
+     * </tr></table>
+     *
+     * {@note The member names in this class are upper-cases because they should be considered
+     *        as constants. For example <code>NetcdfMetadata.LATITUDE.MINIMUM</code> maps exactly to
+     *        the <code>"geospatial_lat_min"</code> string and nothing else. A lower-case
+     *        <code>minimum</code> member name could be misleading since it would suggest that
+     *        the field contains the actual name value rather than the key by which the value
+     *        is identified in a NetCDF file.}
+     *
+     * @author  Martin Desruisseaux (Geomatys)
+     * @since   0.3 (derived from geotk-3.20)
+     * @version 0.3
+     * @module
+     */
+    public static class Dimension {
+        /**
+         * The ISO-19115 dimension type, or {@code null} if none.
+         * Current implementation assigns {@link DimensionNameType#COLUMN} to longitudes and
+         * {@link DimensionNameType#ROW} to latitude, which is not strictly correct since the
+         * columns and rows can be anything. The problem is that we relate this type to the
+         * coordinate system, while it should be related to the grid geometry. We may need to
+         * remove this field in a future version.
+         */
+        final DimensionNameType TYPE;
+
+        /**
+         * The attribute name for the minimal value of the bounding box (<em>Recommended</em>).
+         * Possible values are {@code "geospatial_lat_min"}, {@code "geospatial_lon_min"},
+         * {@code "geospatial_vertical_min"} and {@code "time_coverage_start"}.
+         */
+        public final String MINIMUM;
+
+        /**
+         * The attribute name for the maximal value of the bounding box (<em>Recommended</em>).
+         * Possible values are {@code "geospatial_lat_max"}, {@code "geospatial_lon_max"},
+         * {@code "geospatial_vertical_max"} and {@code "time_coverage_end"}.
+         */
+        public final String MAXIMUM;
+
+        /**
+         * The attribute name for the difference between the minimal and maximal values.
+         * Possible value is {@code "time_coverage_duration"}.
+         */
+        public final String SPAN;
+
+        /**
+         * The attribute name for a further refinement of the geospatial bounding box
+         * (<em>Suggested</em>). Possible values are {@code "geospatial_lat_resolution"},
+         * {@code "geospatial_lon_resolution"}, {@code "geospatial_vertical_resolution"}
+         * and {@code "time_coverage_resolution"}.
+         */
+        public final String RESOLUTION;
+
+        /**
+         * The attribute name for the bounding box units of measurement.
+         * Possible values are {@code "geospatial_lat_units"}, {@code "geospatial_lon_units"},
+         * {@code "geospatial_vertical_units"} and {@code "time_coverage_units"}.
+         */
+        public final String UNITS;
+
+        /**
+         * The attribute name for indicating which direction is positive (<em>Suggested</em>).
+         * Possible value is {@code "geospatial_vertical_positive"}.
+         */
+        public final String POSITIVE;
+
+        /**
+         * Creates a new set of attribute names.
+         *
+         * @param min        The attribute name for the minimal value of the bounding box.
+         * @param max        The attribute name for the maximal value of the bounding box.
+         * @param span       The attribute name for the difference between the minimal and maximal values.
+         * @param resolution The attribute name for a further refinement of the geospatial bounding box.
+         * @param units      The attribute name for the bounding box units of measurement.
+         * @param positive   The attribute name for indicating which direction is positive.
+         */
+        public Dimension(final String min, final String max, final String span,
+                final String resolution,final String units, final String positive)
+        {
+            TYPE       = null;
+            MINIMUM    = min;
+            MAXIMUM    = max;
+            SPAN       = span;
+            RESOLUTION = resolution;
+            UNITS      = units;
+            POSITIVE   = positive;
+        }
+
+        /**
+         * Same constructor than above, but allows to specify the type. See {@link #TYPE}
+         * for an explanation about why this field is not public.
+         */
+        Dimension(final DimensionNameType type, final String min, final String max, final String span,
+                final String resolution,final String units, final String positive)
+        {
+            TYPE       = type;
+            MINIMUM    = min;
+            MAXIMUM    = max;
+            SPAN       = span;
+            RESOLUTION = resolution;
+            UNITS      = units;
+            POSITIVE   = positive;
+        }
+    }
+
+    /**
+     * The set of attribute names for the minimal and maximal latitudes of the bounding box,
+     * resolution and units. Latitudes are assumed to be in decimal degrees north, unless a
+     * units attribute is specified.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getExtents() extent} /
+     * {@link Extent#getGeographicElements() geographicElement} /
+     * {@link GeographicBoundingBox#getSouthBoundLatitude() southBoundLatitude} or
+     * {@link GeographicBoundingBox#getNorthBoundLatitude() northBoundLatitude}</li>
+     * <li>{@link Metadata} /
+     * {@link Metadata#getSpatialRepresentationInfo() spatialRepresentationInfo} /
+     * {@link GridSpatialRepresentation#getAxisDimensionProperties() axisDimensionProperties} /
+     * {@link org.opengis.metadata.spatial.Dimension#getResolution() resolution}</li></ul></p>
+     *
+     * @see #LONGITUDE
+     * @see #VERTICAL
+     * @see #TIME
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#geospatial_lat_min_Attribute">UCAR reference</a>
+     */
+    public static final Dimension LATITUDE = new Dimension(DimensionNameType.ROW,
+            "geospatial_lat_min", "geospatial_lat_max", null,
+            "geospatial_lat_resolution", "geospatial_lat_units", null);
+
+    /**
+     * The set of attribute names for the minimal and maximal longitudes of the bounding box,
+     * resolution and units. Longitudes are assumed to be in decimal degrees east, unless a
+     * units attribute is specified.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getExtents() extent} /
+     * {@link Extent#getGeographicElements() geographicElement} /
+     * {@link GeographicBoundingBox#getWestBoundLongitude() westBoundLongitude} or
+     * {@link GeographicBoundingBox#getEastBoundLongitude() eastBoundLongitude}</li>
+     * <li>{@link Metadata} /
+     * {@link Metadata#getSpatialRepresentationInfo() spatialRepresentationInfo} /
+     * {@link GridSpatialRepresentation#getAxisDimensionProperties() axisDimensionProperties} /
+     * {@link org.opengis.metadata.spatial.Dimension#getResolution() resolution}</li></ul></p>
+     *
+     * @see #LATITUDE
+     * @see #VERTICAL
+     * @see #TIME
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#geospatial_lon_min_Attribute">UCAR reference</a>
+     */
+    public static final Dimension LONGITUDE = new Dimension(DimensionNameType.COLUMN,
+            "geospatial_lon_min", "geospatial_lon_max", null,
+            "geospatial_lon_resolution", "geospatial_lon_units", null);
+
+    /**
+     * The set of attribute names for the minimal and maximal elevations of the bounding box,
+     * resolution and units. Elevations are assumed to be in metres above the ground, unless a
+     * units attribute is specified.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getExtents() extent} /
+     * {@link Extent#getVerticalElements() verticalElement} /
+     * {@link VerticalExtent#getMinimumValue() minimumValue} or
+     * {@link VerticalExtent#getMaximumValue() maximumValue}</li>
+     * <li>{@link Metadata} /
+     * {@link Metadata#getSpatialRepresentationInfo() spatialRepresentationInfo} /
+     * {@link GridSpatialRepresentation#getAxisDimensionProperties() axisDimensionProperties} /
+     * {@link org.opengis.metadata.spatial.Dimension#getResolution() resolution}</li></ul></p>
+     *
+     * @see #LATITUDE
+     * @see #LONGITUDE
+     * @see #TIME
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#geospatial_vertical_min_Attribute">UCAR reference</a>
+     */
+    public static final Dimension VERTICAL = new Dimension(DimensionNameType.VERTICAL,
+            "geospatial_vertical_min", "geospatial_vertical_max", null,
+            "geospatial_vertical_resolution", "geospatial_vertical_units", "geospatial_vertical_positive");
+
+    /**
+     * The set of attribute names for the start and end times of the bounding box, resolution and
+     * units.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getIdentificationInfo() identificationInfo} /
+     * {@link DataIdentification#getExtents() extent} /
+     * {@link Extent#getTemporalElements() temporalElement} /
+     * {@link TemporalExtent#getExtent() extent}</li>
+     * <li>{@link Metadata} /
+     * {@link Metadata#getSpatialRepresentationInfo() spatialRepresentationInfo} /
+     * {@link GridSpatialRepresentation#getAxisDimensionProperties() axisDimensionProperties} /
+     * {@link org.opengis.metadata.spatial.Dimension#getResolution() resolution}</li></ul></p>
+     *
+     * @see #LATITUDE
+     * @see #LONGITUDE
+     * @see #VERTICAL
+     * @see <a href="http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html#time_coverage_start_Attribute">UCAR reference</a>
+     */
+    public static final Dimension TIME = new Dimension(DimensionNameType.TIME,
+            "time_coverage_start", "time_coverage_end", "time_coverage_duration",
+            "time_coverage_resolution", "time_coverage_units", null);
+
+    /**
+     * The {@value} attribute name for the designation associated with a range element.
+     * This attribute can be associated to {@linkplain VariableSimpleIF variables}. If
+     * specified, they shall be one flag name for each {@linkplain #FLAG_MASKS flag mask},
+     * {@linkplain #FLAG_VALUES flag value} and {@linkplain #FLAG_MEANINGS flag meaning}.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getContentInfo() contentInfo} /
+     * {@link CoverageDescription#getRangeElementDescriptions() rangeElementDescription} /
+     * {@link RangeElementDescription#getName() name}</li></ul></p>
+     */
+    public static final String FLAG_NAMES = "flag_names";
+
+    /**
+     * The {@value} attribute name for bitmask to apply on sample values before to compare
+     * them to the {@linkplain #FLAG_VALUES flag values}.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getContentInfo() contentInfo} /
+     * {@link CoverageDescription#getRangeElementDescriptions() rangeElementDescription} /
+     * {@link RangeElementDescription#getRangeElements() rangeElement}</li></ul></p>
+     */
+    public static final String FLAG_MASKS = "flag_masks";
+
+    /**
+     * The {@value} attribute name for sample values to be flagged. The {@linkplain #FLAG_MASKS
+     * flag masks}, flag values and {@linkplain #FLAG_MEANINGS flag meaning} attributes, used
+     * together, describe a blend of independent boolean conditions and enumerated status codes.
+     * A flagged condition is identified by a bitwise AND of the variable value and each flag masks
+     * value; a result that matches the flag values value indicates a true condition.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getContentInfo() contentInfo} /
+     * {@link CoverageDescription#getRangeElementDescriptions() rangeElementDescription} /
+     * {@link RangeElementDescription#getRangeElements() rangeElement}</li></ul></p>
+     */
+    public static final String FLAG_VALUES = "flag_values";
+
+    /**
+     * The {@value} attribute name for the meaning of {@linkplain #FLAG_VALUES flag values}.
+     * Each flag values and flag masks must coincide with a flag meanings.
+     *
+     * <p><b>Path:</b> <ul><li>{@link Metadata} /
+     * {@link Metadata#getContentInfo() contentInfo} /
+     * {@link CoverageDescription#getRangeElementDescriptions() rangeElementDescription} /
+     * {@link RangeElementDescription#getDefinition() definition}</li></ul></p>
+     */
+    public static final String FLAG_MEANINGS = "flag_meanings";
+
+    /**
+     * Creates a new metadata reader or writer.
+     */
+    NetcdfMetadata() {
+    }
+}

Propchange: sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfMetadata.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Added: sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/package-info.java?rev=1479964&view=auto
==============================================================================
--- sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/package-info.java (added)
+++ sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/package-info.java [UTF-8] Tue May  7 16:13:42 2013
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Maps ISO metadata elements from/to the <a href="http://www.cfconventions.org">CF-compliant</a>
+ * attributes in a NetCDF file. The mapping is defined in the following web pages:
+ *
+ * <ul>
+ *   <li><a href="https://geo-ide.noaa.gov/wiki/index.php?title=NetCDF_Attribute_Convention_for_Dataset_Discovery">NetCDF
+ *       Attribute Convention for Dataset Discovery</a> wiki</li>
+ *   <li><a href="http://ngdc.noaa.gov/metadata/published/xsl/nciso2.0/UnidataDD2MI.xsl">UnidataDD2MI.xsl</a> file</li>
+ * </ul>
+ *
+ * The NetCDF attributes recognized by this package are listed in the
+ * {@link org.apache.sis.storage.netcdf.NetcdfMetadata} class.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @since   0.3 (derived from geotk-3.20)
+ * @version 0.3
+ * @module
+ */
+package org.apache.sis.storage.netcdf;

Propchange: sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/package-info.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/package-info.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8



Mime
View raw message