/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.govu.engine.module; import com.govu.Govu; import com.govu.engine.render.Renderer; import com.govu.httpserver.HttpServerHandler; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.io.FileUtils; import org.mozilla.javascript.BaseFunction; import org.mozilla.javascript.Context; import org.mozilla.javascript.Scriptable; /** * * @author Mehmet Ecevit */ public class Use extends BaseFunction { private Renderer renderer; public Use(Renderer renderer) { this.renderer = renderer; } @Override public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args) { try { String code = FileUtils.readFileToString(new File(renderer.getApp().getAbsolutePath() + "/Model/" + args[0] + ".js"), "UTF-8"); code += args[0] + ".prototype.save = function() { com.govu.engine.db.DB.saveObj(this,'" + args[0] + "') };"; code += args[0] + ".prototype.delete = function() {com.govu.engine.db.DB.deleteObj(this,'" + args[0] + "') };"; code += args[0] + ".getAll = function() { return com.govu.engine.db.DB.getAll("+ args[0] +",'" + args[0] + "'); };"; code += args[0] + ".get = function(model) { return com.govu.engine.db.DB.get(model,'" + args[0] + "'); };"; code += args[0] + ".search = function(model) { return com.govu.engine.db.DB.search(model,"+ args[0] +",'" + args[0] + "'); };"; code += args[0] + ".delete = function(model) { return com.govu.engine.db.DB.delete(model,'" + args[0] + "'); };"; cx.evaluateString(scope, code, "<cmd>", 0, null); } catch (FileNotFoundException ex) { //TODO Fire rhino error Logger.getLogger(Use.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { //TODO Fire rhino error Logger.getLogger(Use.class.getName()).log(Level.SEVERE, null, ex); } return super.call(cx, scope, thisObj, args); //To change body of generated methods, choose Tools | Templates. } @Override public String getFunctionName() { return "use"; } }