package edu.sc.seis.sod.subsetter;
import java.io.File;
import org.w3c.dom.Element;
import edu.sc.seis.fissuresUtil.display.configuration.DOMHelper;
public class VelocityFileElementParser {
/**
* Uses the contents of the workingDir element in config as workingDir, or
* if it doesn't exist, uses defaultWorkingDir Uses the contents of the
* location element in config as location, or if it doesn't exist, uses
* defaultLocation
*/
public VelocityFileElementParser(Element config,
String defaultWorkingDir,
String defaultLocation) {
this(DOMHelper.extractText(config, "workingDir", defaultWorkingDir, true),
DOMHelper.extractText(config, "location", defaultLocation));
}
/**
* Takes a workingDir and location and ensures that workingDir ends with or
* location starts with File.separator
*/
public VelocityFileElementParser(String workingDir, String location) {
this.workingDir = workingDir.trim();
this.location = location.trim();
// Explicitly check for / slash since \ is separator under windows, but
// / can be used just as well
if(workingDir.endsWith(File.separator) || workingDir.endsWith("/")) {
if(location.startsWith(File.separator) || location.startsWith("/")) {
this.location = location.substring(1);
}
} else if(workingDir.length() > 0
&& !(location.startsWith(File.separator) || location.startsWith("/"))) {
this.workingDir += File.separator;
}
}
public String getTemplate() {
return getWorkingDir() + getLocation();
}
public String getWorkingDir() {
return workingDir;
}
public String getLocation() {
return location;
}
private String location, workingDir;
}