18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package jdk.nashorn.api.scripting; 27 28 import java.util.Collection; 29 import java.util.Set; 30 import jdk.nashorn.internal.runtime.JSType; 31 32 /** 33 * This interface can be implemented by an arbitrary Java class. Nashorn will 34 * treat objects of such classes just like nashorn script objects. Usual nashorn 35 * operations like obj[i], obj.foo, obj.func(), delete obj.foo will be delegated 36 * to appropriate method call of this interface. 37 * 38 * @since 1.8u40 39 */ 40 public interface JSObject { 41 /** 42 * Call this object as a JavaScript function. This is equivalent to 43 * 'func.apply(thiz, args)' in JavaScript. 44 * 45 * @param thiz 'this' object to be passed to the function. This may be null. 46 * @param args arguments to method 47 * @return result of call 48 */ 49 public Object call(final Object thiz, final Object... args); 50 51 /** 52 * Call this 'constructor' JavaScript function to create a new object. 53 * This is equivalent to 'new func(arg1, arg2...)' in JavaScript. 54 * 55 * @param args arguments to method 56 * @return result of constructor call 57 */ 58 public Object newObject(final Object... args); 59 | 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package jdk.nashorn.api.scripting; 27 28 import java.util.Collection; 29 import java.util.Set; 30 import jdk.nashorn.internal.runtime.JSType; 31 32 /** 33 * This interface can be implemented by an arbitrary Java class. Nashorn will 34 * treat objects of such classes just like nashorn script objects. Usual nashorn 35 * operations like obj[i], obj.foo, obj.func(), delete obj.foo will be delegated 36 * to appropriate method call of this interface. 37 * 38 * @deprecated Nashorn JavaScript script engine and APIs, and the jjs tool 39 * are deprecated with the intent to remove them in a future release. 40 * 41 * @since 1.8u40 42 */ 43 @Deprecated(since="11", forRemoval=true) 44 public interface JSObject { 45 /** 46 * Call this object as a JavaScript function. This is equivalent to 47 * 'func.apply(thiz, args)' in JavaScript. 48 * 49 * @param thiz 'this' object to be passed to the function. This may be null. 50 * @param args arguments to method 51 * @return result of call 52 */ 53 public Object call(final Object thiz, final Object... args); 54 55 /** 56 * Call this 'constructor' JavaScript function to create a new object. 57 * This is equivalent to 'new func(arg1, arg2...)' in JavaScript. 58 * 59 * @param args arguments to method 60 * @return result of constructor call 61 */ 62 public Object newObject(final Object... args); 63 |