Print

Print


Commit in java/sandbox/data-cat/src/main/java/org on MAIN
hps/datacat/EvioMetaDataPythonTool.java+22added 662
           /MetaDataUtil.java+22-1661 -> 662
srs/datacat/server/EvioContentChecker.java+3661 -> 662
+47-1
1 added + 2 modified, total 3 files
Add simple tool for extracting EVIO meta data.  Add a method for formatting meta data output so it can be evaluated as a Python dictionary.  Some modifications to content extractor.

java/sandbox/data-cat/src/main/java/org/hps/datacat
EvioMetaDataPythonTool.java added at 662
--- java/sandbox/data-cat/src/main/java/org/hps/datacat/EvioMetaDataPythonTool.java	                        (rev 0)
+++ java/sandbox/data-cat/src/main/java/org/hps/datacat/EvioMetaDataPythonTool.java	2014-06-04 02:03:54 UTC (rev 662)
@@ -0,0 +1,22 @@
+package org.hps.datacat;
+
+import java.util.Map;
+
+/**
+ * This is a simple wrapper of the {@link EvioMetaDataExtractor} to
+ * print out a string that can be imported into Python as a dictionary.
+ * 
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class EvioMetaDataPythonTool {
+    
+    public static void main(String[] args) {
+        if (args.length == 0)
+            throw new IllegalArgumentException("Path to file is required.");
+        String path = args[0];        
+        EvioMetaDataExtractor extractor = new EvioMetaDataExtractor();
+        Map<String,Object> metaData = extractor.getMetaData(path);
+        System.out.println(MetaDataUtil.toPythonDict(metaData));
+    }
+    
+}

java/sandbox/data-cat/src/main/java/org/hps/datacat
MetaDataUtil.java 661 -> 662
--- java/sandbox/data-cat/src/main/java/org/hps/datacat/MetaDataUtil.java	2014-06-04 01:43:16 UTC (rev 661)
+++ java/sandbox/data-cat/src/main/java/org/hps/datacat/MetaDataUtil.java	2014-06-04 02:03:54 UTC (rev 662)
@@ -4,7 +4,6 @@
 import java.util.Map;
 import java.util.Map.Entry;
 
-
 public class MetaDataUtil {
 
     static String toString(Map<String,Object> metaData) {        
@@ -20,4 +19,26 @@
         buffer.setLength(buffer.length() - 1);
         return buffer.toString();
     }
+    
+    static String toPythonDict(Map<String,Object> metaData) {
+        StringBuffer buffer = new StringBuffer();
+        buffer.append('{');
+        for (Entry<String,Object> entry : metaData.entrySet()) {
+            String key = entry.getKey();
+            Object object = entry.getValue();
+            buffer.append("'");
+            buffer.append(key);
+            buffer.append("'");
+            buffer.append(": ");
+            if (object instanceof String || object instanceof Date)
+                buffer.append("'");
+            buffer.append(object);
+            if (object instanceof String || object instanceof Date)
+                buffer.append("'");
+            buffer.append(", ");
+        }
+        buffer.setLength(buffer.length() - 2);
+        buffer.append('}');
+        return buffer.toString();
+    }
 }

java/sandbox/data-cat/src/main/java/org/srs/datacat/server
EvioContentChecker.java 661 -> 662
--- java/sandbox/data-cat/src/main/java/org/srs/datacat/server/EvioContentChecker.java	2014-06-04 01:43:16 UTC (rev 661)
+++ java/sandbox/data-cat/src/main/java/org/srs/datacat/server/EvioContentChecker.java	2014-06-04 02:03:54 UTC (rev 662)
@@ -73,6 +73,9 @@
                 }
                 event = reader.nextEvent();
             }
+            
+            metadata.put("nRun", minRunNumber);
+            
         } catch (EvioException e) {
             throw new IOException(e);
         } finally {
SVNspam 0.1