01: package com.meterware.httpunit.scripting;
02:
03: /********************************************************************************************************************
04: * $Id: ScriptingEngine.java,v 1.7 2004/03/09 21:49:18 russgold Exp $
05: *
06: * Copyright (c) 2002, Russell Gold
07: *
08: * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
09: * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
10: * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
11: * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
12: *
13: * The above copyright notice and this permission notice shall be included in all copies or substantial portions
14: * of the Software.
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
17: * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18: * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
19: * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20: * DEALINGS IN THE SOFTWARE.
21: *
22: *******************************************************************************************************************/
23:
24: /**
25: *
26: * @author <a href="mailto:russgold@httpunit.org">Russell Gold</a>
27: **/
28: public interface ScriptingEngine {
29:
30: /**
31: * Returns true if this engine supports the specified script.
32: **/
33: public boolean supportsScriptLanguage(String language);
34:
35: /**
36: * Interprets the specified script, which may include global function definitions.
37: */
38: public String executeScript(String language, String script);
39:
40: /**
41: * Interprets the specified script and returns a boolean result.
42: */
43: public boolean performEvent(String eventScript);
44:
45: /**
46: * Evaluates the specified string as JavaScript. Will return null if the script has no return value.
47: */
48: public String evaluateScriptExpression(String urlString);
49:
50: /**
51: * Returns a new scripting engine for the specified delegate.
52: */
53: public ScriptingEngine newScriptingEngine(ScriptableDelegate child);
54:
55: /**
56: * Clears any cached values, permitting them to be recomputed as needed.
57: */
58: public void clearCaches();
59:
60: }
|