package aliview.alignment;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import aliview.AliView;
public class AlignmentFile extends File{
private static final Logger logger = Logger.getLogger(AlignmentFile.class);
private static final String TMP_FILE_PREFIX = "aliview-tmp-";
public AlignmentFile(File file) {
super(file.getAbsolutePath());
}
public static AlignmentFile createAliViewTempFile(String name, String suffix) throws IOException {
String nameWithTmpPrefix = TMP_FILE_PREFIX + name + "_";
return new AlignmentFile(File.createTempFile(nameWithTmpPrefix, suffix));
}
public static AlignmentFile createUserHomeFile() {
String pathString = System.getenv("USERPROFILE");
if(pathString == null){
pathString = System.getProperty("user.home");
}
return new AlignmentFile(new File(pathString));
}
public boolean isAliViewTempFile() {
String tempFilePath = FilenameUtils.normalizeNoEndSeparator(FileUtils.getTempDirectoryPath());
return tempFilePath.equalsIgnoreCase(FilenameUtils.normalizeNoEndSeparator(this.getParent()));
}
public String getNameWithoutTempPrefix(){
String name = this.getName();
if(name == null){
return null;
}
if(name.startsWith(TMP_FILE_PREFIX)){
name = StringUtils.substringAfter(name, TMP_FILE_PREFIX);
}
return name;
}
public String getName() {
return super.getName();
}
public String getAbsolutePath() {
return super.getAbsolutePath();
}
public File getAbsoluteFile() {
return super.getAbsoluteFile();
}
public String getParent() {
return super.getParent();
}
}