/* * Hook.java * * Created on 07 January 2005, 05:19 */ package org.owasp.webscarab.plugin; import java.util.List; import java.util.ArrayList; import java.util.logging.Logger; import org.apache.bsf.BSFManager; import org.apache.bsf.BSFException; /** * * @author rogan */ public class Hook { private String _name; private String _description; private List<Script> _scripts = new ArrayList<Script>(); protected BSFManager _bsfManager = null; private Logger _logger = Logger.getLogger(getClass().getName()); /** Creates a new instance of Hook */ public Hook(String name, String description) { _name = name; _description = description; } public void setBSFManager(BSFManager bsfManager) { _bsfManager = bsfManager; } protected void runScripts() { if (_bsfManager == null) return; synchronized(_bsfManager) { for (int i=0; i<_scripts.size(); i++) { Script script = _scripts.get(i); if (script.isEnabled()) { // if (_scriptManager != null) _scriptManager.scriptStarted(this, script); try { _bsfManager.exec(script.getLanguage(), _name, 0, 0, script.getScript()); } catch (BSFException bsfe) { _logger.warning("Script exception: " + bsfe); // if (_scriptManager != null) _scriptManager.scriptError(this, script, bsfe); } // if (_scriptManager != null) _scriptManager.scriptEnded(this, script); } } } } public String getName() { return _name; } public String getDescription() { return _description; } public int getScriptCount() { return _scripts.size(); } public Script getScript(int i) { return _scripts.get(i); } public void addScript(Script script) { _scripts.add(script); } public void addScript(Script script, int position) { _scripts.add(position, script); } public Script removeScript(int position) { return _scripts.remove(position); } }