package ddth.dasp.common.tempdir;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TempDir {
private final static Logger LOGGER = LoggerFactory.getLogger(TempDir.class);
private File tempDir;
private boolean created = false;
public TempDir(String parent, String name) {
tempDir = new File(parent, name);
}
public TempDir(File parent, String name) {
tempDir = new File(parent, name);
}
public TempDir(TempDir parent, String name) {
tempDir = new File(parent.tempDir, name);
}
@Override
public String toString() {
return tempDir.toString();
}
/**
* Gets the tempdir instance. This method will try to create the tempdir if
* it does not exist.
*
* @return
*/
public File get() {
if (!tempDir.exists()) {
create();
}
return tempDir;
}
/**
* Try to create the tempdir (including any necessary but nonexistent parent
* directories).
*
* @return
*/
public boolean create() {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Creating tempdir [" + tempDir + "]...");
}
created = true;
return tempDir.mkdirs();
}
/**
* Deletes the tempdir.
*/
public void delete() {
if (!created) {
return;
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Deleting tempdir [" + tempDir + "]...");
}
created = false;
FileUtils.deleteQuietly(tempDir);
}
}