Author: [log in to unmask]
Date: Tue Mar 31 16:02:01 2015
New Revision: 2640
Log:
Add minor additional functionality to DataSourceType enum.
Modified:
java/trunk/record-util/src/main/java/org/hps/record/enums/DataSourceType.java
Modified: java/trunk/record-util/src/main/java/org/hps/record/enums/DataSourceType.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/enums/DataSourceType.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/record/enums/DataSourceType.java Tue Mar 31 16:02:01 2015
@@ -1,21 +1,24 @@
package org.hps.record.enums;
+
+import java.io.File;
/**
* The type of data source that will supply events to the app.
*/
public enum DataSourceType {
- ET_SERVER("ET Server"),
- EVIO_FILE("EVIO File"),
- LCIO_FILE("LCIO File");
+ ET_SERVER("ET Server", null),
+ EVIO_FILE("EVIO File", "evio"),
+ LCIO_FILE("LCIO File", "slcio");
String description;
+ String extension;
/**
* Constructor which takes a description.
* @param description The description of the data source type.
*/
- private DataSourceType(String description) {
+ private DataSourceType(String description, String extension) {
this.description = description;
}
@@ -28,6 +31,14 @@
}
/**
+ * Get the extension associated with this data source type.
+ * @return The file extension of the data source type.
+ */
+ public String getExtension() {
+ return extension;
+ }
+
+ /**
* True if the source is file-based
* (e.g. not an ET server).
* @return
@@ -35,4 +46,24 @@
public boolean isFile() {
return this.ordinal() > ET_SERVER.ordinal();
}
+
+ /**
+ * Figure out a reasonable data source type for the path string.
+ * This defaults to an ET source ((perhaps unreasonably!) if the
+ * file extension is unrecognized.
+ * @param path The data source path.
+ * @return The data source type.
+ */
+ public static DataSourceType getDataSourceType(String path) {
+ if (path.endsWith("." + DataSourceType.LCIO_FILE.getExtension())) {
+ return DataSourceType.LCIO_FILE;
+ } else if (path.contains("." + DataSourceType.EVIO_FILE.getExtension())) {
+ // For EVIO files, only check that the extension appears someplace in the name
+ // as typically the files from the DAQ look like "file.evio.0" etc.
+ return DataSourceType.EVIO_FILE;
+ } else {
+ return DataSourceType.ET_SERVER;
+ }
+ }
+
}
|