/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.govu.engine.module.file;
import com.govu.engine.render.Renderer;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.mozilla.javascript.BaseFunction;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
/**
*
* @author Mehmet Ecevit <mecevit@gmail.com>
*/
public class ReadFile extends BaseFunction {
private Renderer renderer;
public ReadFile(Renderer renderer) {
this.renderer = renderer;
}
@Override
public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args) {
try {
return FileUtils.readFileToString(new File(renderer.getApp().getAbsolutePath()+"/" + args[0]), "UTF-8");
} catch (FileNotFoundException ex) {
cx.evaluateString(scope, "throw { error: \"fileNotFound\", msg: \""+ ex.getMessage() +"\" };", "<cmd>", 0, null);
} catch (IOException ex) {
cx.evaluateString(scope, "throw { error: \"ioError\", msg: \""+ ex.getMessage() +"\" };", "<cmd>", 0, null);
}
return super.call(cx, scope, thisObj, args); //To change body of generated methods, choose Tools | Templates.
}
}