Print

Print


Commit in lcsim/src/org/lcsim/job on MAIN
JobControlManager.java+27-41.32 -> 1.33
add fileSet element for reading in groups of files with the same root directory

lcsim/src/org/lcsim/job
JobControlManager.java 1.32 -> 1.33
diff -u -r1.32 -r1.33
--- JobControlManager.java	7 Oct 2009 08:06:10 -0000	1.32
+++ JobControlManager.java	19 Mar 2010 22:33:40 -0000	1.33
@@ -27,6 +27,7 @@
 import org.freehep.application.studio.Studio;
 import org.freehep.jas.services.DynamicClassLoader;
 import org.freehep.util.FreeHEPLookup;
+import org.jdom.Attribute;
 import org.jdom.Document;
 import org.jdom.Element;
 import org.jdom.Text;
@@ -45,13 +46,16 @@
  * @author jeremym
  * @verbose $id: $
  */
-//TODO: additional parameter types (SymmetricMatrix, etc.)
-//TODO: example XML steering file generation (e.g. like Marlin)
-//TODO: basic command line arg support:
+// TODO: Additional input parameter types (SymmetricMatrix, etc.).
+// TODO: Example XML steering file generation (e.g. like Marlin).
+// TODO: Basic command line argument support:
 //      -s steeringFile
 //      -e exampleSteeringOutput.xml
 //      -d debug only; don't actually run the job.
 //      etc.
+// TODO: Allow input data files to be specified from command-line.
+// TODO: Implement some kind of auto-naming output scheme, 
+//       possibly with a new Driver extending LCIODriver.
 public class JobControlManager
 {
 	Map<String, Driver> driverMap;
@@ -332,7 +336,8 @@
 		logStream.println();
 	}	
 		
-	private void setupInputFiles()
+	@SuppressWarnings("unchecked")
+    private void setupInputFiles()
 	{
 		// Read local files.
 		List<Element> files = root.getChild("inputFiles").getChildren("file");
@@ -428,6 +433,24 @@
 				throw new RuntimeException(x);
 			}			
 		}
+		
+		// Read fileSets.
+		List<Element> fileSets = (List<Element>)root.getChild("inputFiles").getChildren("fileSet");
+		for (Element fileSet : fileSets)
+		{
+		    Attribute basedirAttrib = fileSet.getAttribute("baseDir");
+		    String basedir = "";
+		    if (basedirAttrib != null)
+		    {
+		        basedir = basedirAttrib.getValue();
+		    }
+		    List<Element> fsFiles = fileSet.getChildren("file"); 
+		    for (Element file : fsFiles)
+		    {
+		        String filePath = basedir + File.separator + file.getText();
+		        inputFiles.add(new File(filePath));
+		    }
+		}
 
 		// Check and print out input files.
 		if (verbose)
CVSspam 0.2.8