/*
* Script.java
*
* Created on 07 January 2005, 04:30
*/
package org.owasp.webscarab.plugin;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Logger;
/**
*
* @author rogan
*/
public class Script {
private File _file;
private String _script;
private long _lastModified;
private boolean _enabled;
private String _language = null;
private Logger _logger = Logger.getLogger(getClass().toString());
/** Creates a new instance of Script */
public Script(File file) throws IOException {
_file = file;
reload();
_enabled = false;
}
public void reload() throws IOException {
_logger.info("reloading " + _file);
FileReader fr = null;
try {
fr = new FileReader(_file);
int got;
char[] buff = new char[1024];
StringBuffer script = new StringBuffer();
while ((got=fr.read(buff))>0) {
script.append(buff,0,got);
}
_script = script.toString();
_lastModified = _file.lastModified();
} catch (IOException ioe) {
_enabled = false;
_script = "";
throw ioe;
} finally {
if (fr!=null) fr.close();
}
}
public boolean isEnabled() {
return _enabled;
}
public void setEnabled(boolean enabled) {
if (enabled)
try {
reload();
} catch (IOException ioe) {
_logger.severe("Error reloading script " + _file + " : " + ioe);
_enabled = false;
return;
}
_enabled = enabled;
}
public File getFile() {
return _file;
}
public String getScript() {
return _script;
}
public void setScript(String script) throws IOException {
_script = script;
FileWriter fw = null;
try {
fw = new FileWriter(_file);
fw.write(_script);
} catch (IOException ioe) {
_script = null;
_lastModified = -1;
_language = null;
_enabled = false;
throw ioe;
} finally {
if (fw != null) fw.close();
}
}
public long getLastModified() {
return _lastModified;
}
public String getLanguage() {
return _language;
}
public void setLanguage(String language) {
_language = language;
}
}