You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2011/04/17 06:51:17 UTC

svn commit: r1094100 - in /oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors: FilenameTokenConfig.java FilenameTokenMetExtractor.java

Author: mattmann
Date: Sun Apr 17 04:51:17 2011
New Revision: 1094100

URL: http://svn.apache.org/viewvc?rev=1094100&view=rev
Log:
- OODT-173 Improvements to the Filename Extractor: allow for TokenNameList to be ommitted, or for SubsetGroup to be ommitted as well. Makes the extractor less brittle.

Modified:
    oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenConfig.java
    oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenMetExtractor.java

Modified: oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenConfig.java
URL: http://svn.apache.org/viewvc/oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenConfig.java?rev=1094100&r1=1094099&r2=1094100&view=diff
==============================================================================
--- oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenConfig.java (original)
+++ oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenConfig.java Sun Apr 17 04:51:17 2011
@@ -67,6 +67,10 @@ public class FilenameTokenConfig impleme
         PRODUCTION_DATE_TIME_GROUP).getScalar(DATETIME_SCALAR).getValue());
   }
 
+  public boolean hasTokenNameList() {
+    return this.conf.getPgeSpecificGroups().get(TOKEN_LIST_GROUP) != null;
+  }
+
   public String getTokenDelimeterScalar() {
     return this.conf.getPgeSpecificGroups().get(TOKEN_LIST_GROUP).getScalar(
         TOKEN_DELIMETER_SCALAR).getValue();
@@ -81,6 +85,8 @@ public class FilenameTokenConfig impleme
     PGEGroup substrOffsetGroup = this.conf.getPgeSpecificGroups().get(
         SUBSTRING_OFFSET_GROUP);
     Metadata met = new Metadata();
+    if (substrOffsetGroup == null)
+      return met;
     String filename = file.getName();
 
     for (PGEVector vec : substrOffsetGroup.getVectors().values()) {

Modified: oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenMetExtractor.java
URL: http://svn.apache.org/viewvc/oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenMetExtractor.java?rev=1094100&r1=1094099&r2=1094100&view=diff
==============================================================================
--- oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenMetExtractor.java (original)
+++ oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/extractors/FilenameTokenMetExtractor.java Sun Apr 17 04:51:17 2011
@@ -31,7 +31,6 @@ import org.apache.oodt.cas.metadata.exce
 import org.apache.oodt.cas.metadata.extractors.CmdLineMetExtractor;
 import org.apache.oodt.commons.date.DateUtils;
 
-
 /**
  * 
  * Extracts out {@link Metadata} using the {@link File#getName()} and a
@@ -66,30 +65,33 @@ public class FilenameTokenMetExtractor e
   protected Metadata extrMetadata(File file) throws MetExtractionException {
     Metadata met = new Metadata();
     String filename = file.getName();
-    List<String> metKeyTokens = ((FilenameTokenConfig) this.config)
-        .getTokenMetKeyNames();
-    String[] filenameToks = filename.split("\\.")[0]
-        .split(((FilenameTokenConfig) this.config).getTokenDelimeterScalar());
-    for (int i = 0; i < filenameToks.length; i++) {
-      String keyName = metKeyTokens.get(i);
-      String keyVal = filenameToks[i];
-      if (keyName.equals("ProductionDateTime")) {
-        Calendar cal = GregorianCalendar.getInstance();
-        try {
-          cal.setTime(((FilenameTokenConfig) this.config).getDateFormatter()
-              .parse(keyVal));
-        } catch (ParseException e) {
-          throw new MetExtractionException(e.getMessage());
+    if (((FilenameTokenConfig) this.config).hasTokenNameList()) {
+      List<String> metKeyTokens = ((FilenameTokenConfig) this.config)
+          .getTokenMetKeyNames();
+      String[] filenameToks = filename.split("\\.")[0]
+          .split(((FilenameTokenConfig) this.config).getTokenDelimeterScalar());
+      for (int i = 0; i < filenameToks.length; i++) {
+        String keyName = metKeyTokens.get(i);
+        String keyVal = filenameToks[i];
+        if (keyName.equals("ProductionDateTime")) {
+          Calendar cal = GregorianCalendar.getInstance();
+          try {
+            cal.setTime(((FilenameTokenConfig) this.config).getDateFormatter()
+                .parse(keyVal));
+          } catch (ParseException e) {
+            throw new MetExtractionException(e.getMessage());
+          }
+          keyVal = DateUtils.toString(cal);
         }
-        keyVal = DateUtils.toString(cal);
-      }
 
-      met.addMetadata(keyName, keyVal);
+        met.addMetadata(keyName, keyVal);
+      }
     }
 
     Metadata commonMet = ((FilenameTokenConfig) this.config).getCommonMet();
     met.addMetadata(commonMet.getHashtable());
-    met.addMetadata(((FilenameTokenConfig)this.config).getSubstringOffsetMet(file));
+    met.addMetadata(((FilenameTokenConfig) this.config)
+        .getSubstringOffsetMet(file));
 
     met.addMetadata("Filename", file.getName());
     met.addMetadata("FileLocation", file.getParentFile().getAbsolutePath());