Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Rhino JavaScript Java Library Source Code
Rhino JavaScript Java Library is an open-source implementation of JavaScript written entirely in Java.
Rhino JavaScript Java Library Source Code files are provided in binary package (rhino-1.7.14.zip).
You can also browse the source code below:
✍: FYIcenter.com
⏎ org/mozilla/javascript/NativeJavaArray.java
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.javascript; import java.lang.reflect.Array; /** * This class reflects Java arrays into the JavaScript environment. * * @author Mike Shaver * @see NativeJavaClass * @see NativeJavaObject * @see NativeJavaPackage */ public class NativeJavaArray extends NativeJavaObject implements SymbolScriptable { private static final long serialVersionUID = -924022554283675333L; @Override public String getClassName() { return "JavaArray"; } public static NativeJavaArray wrap(Scriptable scope, Object array) { return new NativeJavaArray(scope, array); } @Override public Object unwrap() { return array; } public NativeJavaArray(Scriptable scope, Object array) { super(scope, null, ScriptRuntime.ObjectClass); Class<?> cl = array.getClass(); if (!cl.isArray()) { throw new RuntimeException("Array expected"); } this.array = array; this.length = Array.getLength(array); this.cls = cl.getComponentType(); } @Override public boolean has(String id, Scriptable start) { return id.equals("length") || super.has(id, start); } @Override public boolean has(int index, Scriptable start) { return 0 <= index && index < length; } @Override public boolean has(Symbol key, Scriptable start) { return SymbolKey.IS_CONCAT_SPREADABLE.equals(key); } @Override public Object get(String id, Scriptable start) { if (id.equals("length")) return Integer.valueOf(length); Object result = super.get(id, start); if (result == NOT_FOUND && !ScriptableObject.hasProperty(getPrototype(), id)) { throw Context.reportRuntimeErrorById( "msg.java.member.not.found", array.getClass().getName(), id); } return result; } @Override public Object get(int index, Scriptable start) { if (0 <= index && index < length) { Context cx = Context.getContext(); Object obj = Array.get(array, index); return cx.getWrapFactory().wrap(cx, this, obj, cls); } return Undefined.instance; } @Override public Object get(Symbol key, Scriptable start) { if (SymbolKey.IS_CONCAT_SPREADABLE.equals(key)) { return Boolean.TRUE; } return Scriptable.NOT_FOUND; } @Override public void put(String id, Scriptable start, Object value) { // Ignore assignments to "length"--it's readonly. if (!id.equals("length")) throw Context.reportRuntimeErrorById( "msg.java.array.member.not.found", id); } @Override public void put(int index, Scriptable start, Object value) { if (0 <= index && index < length) { Array.set(array, index, Context.jsToJava(value, cls)); } else { throw Context.reportRuntimeErrorById( "msg.java.array.index.out.of.bounds", String.valueOf(index), String.valueOf(length - 1)); } } @Override public void delete(Symbol key) { // All symbols are read-only } @Override public Object getDefaultValue(Class<?> hint) { if (hint == null || hint == ScriptRuntime.StringClass) return array.toString(); if (hint == ScriptRuntime.BooleanClass) return Boolean.TRUE; if (hint == ScriptRuntime.NumberClass) return ScriptRuntime.NaNobj; return this; } @Override public Object[] getIds() { Object[] result = new Object[length]; int i = length; while (--i >= 0) result[i] = Integer.valueOf(i); return result; } @Override public boolean hasInstance(Scriptable value) { if (!(value instanceof Wrapper)) return false; Object instance = ((Wrapper)value).unwrap(); return cls.isInstance(instance); } @Override public Scriptable getPrototype() { if (prototype == null) { prototype = ScriptableObject.getArrayPrototype(this.getParentScope()); } return prototype; } Object array; int length; Class<?> cls; }
⏎ org/mozilla/javascript/NativeJavaArray.java
Or download all of them as a single archive file:
File name: rhino-1.7.14-sources.jar File size: 1029165 bytes Release date: 2022-01-06 Download
⇒ Example code to Test rhino-runtime-1.7.14.jar
⇐ Download Rhino JavaScript Binary Package
2022-05-03, 35589👍, 1💬
Popular Posts:
JDOM provides a solution for using XML from Java that is as simple as Java itself. There is no compe...
JLayer is a library that decodes/plays/converts MPEG 1/2/2.5 Layer 1/2/3 (i.e. MP3) in real time for...
Apache Neethi provides general framework for the programmers to use WS Policy. It is compliant with ...
Apache Log4j Core Implementation provides the functional components of the logging system. Users are...
Provides a simple high-level Http server API, which can be used to build embedded HTTP servers. Both...