You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2013/05/20 12:00:07 UTC

svn commit: r1484412 - in /sis/branches/JDK7/storage/sis-netcdf/src: main/java/org/apache/sis/internal/netcdf/impl/Attribute.java main/java/org/apache/sis/internal/netcdf/ucar/VariableWrapper.java test/java/org/apache/sis/internal/netcdf/VariableTest.java

Author: desruisseaux
Date: Mon May 20 10:00:06 2013
New Revision: 1484412

URL: http://svn.apache.org/r1484412
Log:
Tests Variable.getAttributes(String, boolean).

Modified:
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/Attribute.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/ucar/VariableWrapper.java
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java

Modified: sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/Attribute.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/Attribute.java?rev=1484412&r1=1484411&r2=1484412&view=diff
==============================================================================
--- sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/Attribute.java [UTF-8] (original)
+++ sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/Attribute.java [UTF-8] Mon May 20 10:00:06 2013
@@ -77,15 +77,12 @@ final class Attribute {
     }
 
     /**
-     * Returns the attribute values as an array of {@link Number}, or {@code null} if none.
+     * Returns the attribute values as an array of {@link Number}, or an empty array if none.
      *
      * @see VariableInfo#getAttributeValues(String, boolean)
      */
     final Number[] numberValues() {
-        if (value instanceof String) {
-            return null;
-        }
-        final Number[] values = new Number[Array.getLength(value)];
+        final Number[] values = new Number[(value instanceof String) ? 0 : Array.getLength(value)];
         for (int i=0; i<values.length; i++) {
             values[i] = (Number) Array.get(value, i);
         }

Modified: sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/ucar/VariableWrapper.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/ucar/VariableWrapper.java?rev=1484412&r1=1484411&r2=1484412&view=diff
==============================================================================
--- sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/ucar/VariableWrapper.java [UTF-8] (original)
+++ sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/ucar/VariableWrapper.java [UTF-8] Mon May 20 10:00:06 2013
@@ -146,10 +146,13 @@ final class VariableWrapper extends Vari
                         hasValues = true;
                     }
                 } else {
-                    String value = attribute.getStringValue(i);
-                    if (value != null && !(value = value.trim()).isEmpty()) {
-                        values[i] = value.replace('_', ' ');
-                        hasValues = true;
+                    Object value = attribute.getValue(i);
+                    if (value != null) {
+                        String text = value.toString().trim();
+                        if (!text.isEmpty()) {
+                            values[i] = text;
+                            hasValues = true;
+                        }
                     }
                 }
             }

Modified: sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java?rev=1484412&r1=1484411&r2=1484412&view=diff
==============================================================================
--- sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java (original)
+++ sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java Mon May 20 10:00:06 2013
@@ -136,4 +136,25 @@ public strictfp class VariableTest exten
             1, 73, 73
         }, variable.getGridEnvelope());
     }
+
+    /**
+     * Tests {@link Variable#getAttributeValues(String, boolean)}.
+     *
+     * @throws IOException If an error occurred while reading the NetCDF file.
+     */
+    @Test
+    public void testGetAttributes() throws IOException {
+        final Variable[] variables = selectDataset(NCEP).getVariables();
+        Variable variable = variables[9];
+        assertEquals("grid_number", variable.getName());
+        assertArrayEquals("grid_number:_FillValue", new Number[] { -9999 }, variable.getAttributeValues("_FillValue", true));
+        assertArrayEquals("grid_number:_FillValue", new String[] {"-9999"}, variable.getAttributeValues("_FillValue", false));
+
+        variable = variables[21];
+        assertEquals("SST", variable.getName());
+        assertArrayEquals("SST:_FillValue", new Number[] { -9999f  }, variable.getAttributeValues("_FillValue", true));
+        assertArrayEquals("SST:_FillValue", new String[] {"-9999.0"}, variable.getAttributeValues("_FillValue", false));
+        assertArrayEquals("SST:units",      new String[] {"degK"},    variable.getAttributeValues("units",      false));
+        assertArrayEquals("SST:units",      new Number[] {      },    variable.getAttributeValues("units",      true));
+    }
 }