You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ma...@apache.org on 2014/05/07 00:18:03 UTC

svn commit: r1592912 - in /tika/trunk/tika-parsers/src: main/java/org/apache/tika/parser/netcdf/NetCDFParser.java test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java

Author: mattmann
Date: Tue May  6 22:18:02 2014
New Revision: 1592912

URL: http://svn.apache.org/r1592912
Log:
Patch from Annie Bryant Burgess contributed to address TIKA-1265.

Modified:
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java?rev=1592912&r1=1592911&r2=1592912&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java Tue May  6 22:18:02 2014
@@ -22,6 +22,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collections;
 import java.util.Set;
+import java.util.List;
+import java.util.Iterator;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.IOUtils;
@@ -38,6 +40,8 @@ import org.xml.sax.SAXException;
 
 import ucar.nc2.Attribute;
 import ucar.nc2.NetcdfFile;
+import ucar.nc2.Variable;
+import ucar.nc2.Dimension;
 
 /**
  * A {@link Parser} for <a
@@ -96,13 +100,54 @@ public class NetCDFParser extends Abstra
                     metadata.add(property, String.valueOf(value));
                 }
             }
+            
+            
+           XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+           xhtml.startDocument();
+
+		   		xhtml.characters("dimensions:");
+				xhtml.newline();
+			
+				for (Dimension dim : ncFile.getDimensions()){
+                	xhtml.characters(dim.getName()); 
+                	xhtml.characters(" = ");
+                	xhtml.characters(String.valueOf(dim.getLength()));
+                	xhtml.characters(";");
+                	xhtml.newline();
+        		}
+			
+				xhtml.newline();
+				xhtml.characters("variables:");
+			
+				for (Variable var : ncFile.getVariables()){
+					xhtml.newline();
+					xhtml.characters(String.valueOf(var.getDataType())); // data type
+					xhtml.characters(" ");
+					xhtml.characters(var.getNameAndDimensions()); //variable name and dimensions
+					xhtml.characters(";");
+					//xhtml.newline();
+
+					xhtml.newline();
+			
+					List<Attribute> list = (var.getAttributes()); //list of variable attributes
+			
+						for(int i=0; i < list.size(); i++){ 
+     			
+     						Attribute element = (list.get(i));  
+     						String text = element.toString();
+							
+							xhtml.characters("	:");
+     						xhtml.characters(text); 
+     						xhtml.characters(";");
+							xhtml.newline();
+						}
+            	}   
+			
+          xhtml.endDocument();
+         
         } catch (IOException e) {
             throw new TikaException("NetCDF parse error", e);
         } 
-
-        XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
-        xhtml.startDocument();
-        xhtml.endDocument();
     }
     
     private Property resolveMetadataKey(String localName) {
@@ -111,5 +156,4 @@ public class NetCDFParser extends Abstra
         }
         return Property.internalText(localName);
     }
-
-}
+}
\ No newline at end of file

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java?rev=1592912&r1=1592911&r2=1592912&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java Tue May  6 22:18:02 2014
@@ -18,11 +18,10 @@ package org.apache.tika.parser.netcdf;
 
 //JDK imports
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.InputStream;
 
-
-
 //TIKA imports
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.TikaCoreProperties;
@@ -31,7 +30,6 @@ import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.BodyContentHandler;
 import org.junit.Test;
 import org.xml.sax.ContentHandler;
-
 /**
  * Test cases to exercise the {@link NetCDFParser}.
  * 
@@ -65,7 +63,15 @@ public class NetCDFParserTest {
         assertEquals(metadata.get(Metadata.REALIZATION), "1");
         assertEquals(metadata.get(Metadata.EXPERIMENT_ID),
                 "720 ppm stabilization experiment (SRESA1B)");
-
+                
+        String content = handler.toString();
+       	assertTrue(content.contains(":long_name = \"Surface area\";"));
+       	assertTrue(content.contains("float area(lat=128, lon=256);"));
+       	assertTrue(content.contains("float lat(lat=128);"));
+       	assertTrue(content.contains("double lat_bnds(lat=128, bnds=2);"));
+       	assertTrue(content.contains("double lon_bnds(lon=256, bnds=2);"));
+       	
+       	
     }
 
 }