Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
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 (322)
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/LambdaSlot.java
package org.mozilla.javascript;
import java.util.function.Consumer;
import java.util.function.Supplier;
/**
* This is a specialization of property access using some lambda functions. It behaves exactly like
* any other slot that has only a value, but instead of getting the value directly, it comes from
* calling the functions. This makes it different from GetterSlot, which lets the user see directly
* that there is a getter or a setter function involved. This makes this class useful for
* implementing properties that behave like any other JavaScript property but which are implemented
* using some native functionality without using reflection.
*/
public class LambdaSlot extends Slot {
private static final long serialVersionUID = -3046681698806493052L;
LambdaSlot(Slot oldSlot) {
super(oldSlot);
}
transient Supplier<Object> getter;
transient Consumer<Object> setter;
@Override
boolean isValueSlot() {
return false;
}
@Override
boolean isSetterSlot() {
return false;
}
@Override
ScriptableObject getPropertyDescriptor(Context cx, Scriptable scope) {
ScriptableObject desc = (ScriptableObject) cx.newObject(scope);
if (getter != null) {
desc.defineProperty("value", getter.get(), ScriptableObject.EMPTY);
} else {
desc.defineProperty("value", value, ScriptableObject.EMPTY);
}
desc.setCommonDescriptorProperties(getAttributes(), true);
return desc;
}
@Override
public boolean setValue(Object value, Scriptable owner, Scriptable start) {
if (setter != null) {
if (owner == start) {
setter.accept(value);
return true;
}
return false;
}
return super.setValue(value, owner, start);
}
@Override
public Object getValue(Scriptable start) {
if (getter != null) {
return getter.get();
}
return super.getValue(start);
}
}
⏎ org/mozilla/javascript/LambdaSlot.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, ≈133🔥, 1💬
Popular Posts:
iText is an ideal library for developers looking to enhance web- and other applications with dynamic...
JDK 17 java.sql.rowset.jmod is the JMOD file for JDK 17 SQL Rowset module. JDK 17 SQL Rowset module ...
JSP(tm) Standard Tag Library 1.1 implementation - Jakarta Taglibs hosts the Standard Taglib 1.1, an ...
JDK 11 jdk.compiler.jmod is the JMOD file for JDK 11 Compiler tool, which can be invoked by the "jav...
maven-compat-3.5.4.jar is the JAR file for Apache Maven 3.5.4 Compact module. The JAR file name may ...