package krasa.formatter.common;
import java.io.File;
import krasa.formatter.exception.FileDoesNotExistsException;
/**
* @author Vojtech Krasa
*/
public class ModifiableFile extends File {
public ModifiableFile(String pathToConfigFileJava) {
super(pathToConfigFileJava);
}
public boolean wasChanged(Monitor lastState) {
checkIfExists();
return this.lastModified() > lastState.getLastStateTime();
}
public void checkIfExists() throws FileDoesNotExistsException {
if (!this.exists()) {
throw new FileDoesNotExistsException(this);
}
}
public Monitor getModifiedMonitor() {
return new Monitor(this);
}
/**
* @author Vojtech Krasa
*/
public static class Monitor {
private long lastStateTime;
public Monitor(File file) {
lastStateTime = file.lastModified();
}
public long getLastStateTime() {
return lastStateTime;
}
public boolean wasModified(File l) {
return l.lastModified() > lastStateTime;
}
}
}