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());