Commit in java/sandbox/data-cat on MAIN
pom.xml+5478 -> 479
src/main/java/org/srs/datacat/server/LcioContentChecker.java+39-13478 -> 479
src/test/java/org/srs/datacat/server/LcioContentCheckerTest.java-1478 -> 479
+44-14
3 modified files
sandbox work on datacat

java/sandbox/data-cat
pom.xml 478 -> 479
--- java/sandbox/data-cat/pom.xml	2014-04-11 19:35:41 UTC (rev 478)
+++ java/sandbox/data-cat/pom.xml	2014-04-11 22:06:07 UTC (rev 479)
@@ -49,6 +49,11 @@
             <version>2.4.4-SNAPSHOT</version>
         </dependency>
         <dependency>
+            <groupId>org.hps</groupId>
+            <artifactId>hps-evio</artifactId>
+            <version>3.0.2-SNAPSHOT</version>
+        </dependency>
+        <dependency>
             <groupId>srs</groupId>
             <artifactId>org-srs-datacat-server</artifactId>
             <version>1.7.0-SNAPSHOT</version>

java/sandbox/data-cat/src/main/java/org/srs/datacat/server
LcioContentChecker.java 478 -> 479
--- java/sandbox/data-cat/src/main/java/org/srs/datacat/server/LcioContentChecker.java	2014-04-11 19:35:41 UTC (rev 478)
+++ java/sandbox/data-cat/src/main/java/org/srs/datacat/server/LcioContentChecker.java	2014-04-11 22:06:07 UTC (rev 479)
@@ -16,55 +16,81 @@
 
 public class LcioContentChecker implements ContentChecker {
     
-    private long minRunNumber = Integer.MAX_VALUE;
-    private long maxRunNumber = Integer.MIN_VALUE;
-    private long nevents = 0;
+    private long minRunNumber;
+    private long maxRunNumber;
+    private long nevents;
     private String status;
     private HashSet<String> uniqueCollections;
+    private HashSet<String> uniqueDetectors;
     Map<String, Object> metaData;
         
     @Override   
     public void setLocation(long datasetVersion, URL url) throws IOException {
+                
+        // Initialize variables for this file.
+        minRunNumber = Integer.MAX_VALUE;
+        maxRunNumber = Integer.MIN_VALUE;
+        nevents = 0;
         status = "OK";
         uniqueCollections = new HashSet<String>();
+        uniqueDetectors = new HashSet<String>();
         metaData = new HashMap<String, Object>();
+        
+        // Open file from URL.
         if (!url.getProtocol().equals("file")) {
             throw new IOException("Only file protocol is supported.");
         }
         LCReader reader = LCFactory.getInstance().createLCReader();        
         reader.open(url.getPath());
-        LCEvent event = reader.readNextEvent();
-        minRunNumber = Integer.MAX_VALUE;
-        maxRunNumber = Integer.MIN_VALUE;
+        
+        // Loop over all events.
+        LCEvent event = reader.readNextEvent();        
         while (event != null) {
         
-            int thisRunNumber = event.getRunNumber();
-            
+            // Run number setting.
+            int thisRunNumber = event.getRunNumber();            
             if (thisRunNumber < minRunNumber)
                 minRunNumber = thisRunNumber;
             if (thisRunNumber > maxRunNumber)
                 maxRunNumber = thisRunNumber;
             
+            // Collection names.
             uniqueCollections.addAll(Arrays.asList(event.getCollectionNames()));
             
+            // Detectors.
+            uniqueDetectors.add(event.getDetectorName());
+            
+            // Number of events.
             nevents++;
             
+            // Get next event.
             event = reader.readNextEvent();
         }
         
+        // Close the reader.
+        reader.close();
+        
+        // Sort collection names and insert into meta data.
         List<String> sortedCollections = new ArrayList<String>(uniqueCollections);
-        Collections.sort(sortedCollections);
-        
+        Collections.sort(sortedCollections);        
         StringBuffer buff = new StringBuffer();
         for (String collectionName : sortedCollections) {
             buff.append(collectionName);
             buff.append(',');
         }
-        buff.setLength(buff.length() - 1);
-        
+        buff.setLength(buff.length() - 1);        
         metaData.put("sCollections", buff.toString());
         
-        reader.close();
+        // Sort detector names and insert into meta data.
+        List<String> sortedDetectors = new ArrayList<String>(uniqueDetectors);
+        Collections.sort(sortedDetectors);
+        buff = new StringBuffer();
+        for (String detectorName : sortedDetectors) {
+            buff.append(detectorName);
+            buff.append(',');
+        }
+        buff.setLength(buff.length() - 1);
+        metaData.put("sDetectors", buff.toString());
     }
     
     @Override

java/sandbox/data-cat/src/test/java/org/srs/datacat/server
LcioContentCheckerTest.java 478 -> 479
--- java/sandbox/data-cat/src/test/java/org/srs/datacat/server/LcioContentCheckerTest.java	2014-04-11 19:35:41 UTC (rev 478)
+++ java/sandbox/data-cat/src/test/java/org/srs/datacat/server/LcioContentCheckerTest.java	2014-04-11 22:06:07 UTC (rev 479)
@@ -7,7 +7,6 @@
 
 import org.lcsim.util.cache.FileCache;
 
-
 public class LcioContentCheckerTest {
         
     private static final String TEST_FILE_URL = "http://www.lcsim.org/test/hps/conditions_test.slcio";
SVNspam 0.1