Package org.mozilla.javascript
Class LambdaSlot
- java.lang.Object
-
- org.mozilla.javascript.Slot
-
- org.mozilla.javascript.LambdaSlot
-
- All Implemented Interfaces:
java.io.Serializable
public class LambdaSlot extends Slot
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.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.function.Supplier<java.lang.Object>
getter
private static long
serialVersionUID
(package private) java.util.function.Consumer<java.lang.Object>
setter
-
Fields inherited from class org.mozilla.javascript.Slot
indexOrHash, name, next, orderedNext, value
-
-
Constructor Summary
Constructors Constructor Description LambdaSlot(Slot oldSlot)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) ScriptableObject
getPropertyDescriptor(Context cx, Scriptable scope)
java.lang.Object
getValue(Scriptable start)
(package private) boolean
isSetterSlot()
Return true if this is a "setter slot" which, which we need to know for some legacy support.(package private) boolean
isValueSlot()
Return true if this is a base-class "Slot".boolean
setValue(java.lang.Object value, Scriptable owner, Scriptable start)
-
Methods inherited from class org.mozilla.javascript.Slot
getAttributes, getGetterFunction, getSetterFunction, setAttributes, throwNoSetterException
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
getter
transient java.util.function.Supplier<java.lang.Object> getter
-
setter
transient java.util.function.Consumer<java.lang.Object> setter
-
-
Constructor Detail
-
LambdaSlot
LambdaSlot(Slot oldSlot)
-
-
Method Detail
-
isValueSlot
boolean isValueSlot()
Description copied from class:Slot
Return true if this is a base-class "Slot". Sadly too much code breaks if we try to do this any other way.- Overrides:
isValueSlot
in classSlot
-
isSetterSlot
boolean isSetterSlot()
Description copied from class:Slot
Return true if this is a "setter slot" which, which we need to know for some legacy support.- Overrides:
isSetterSlot
in classSlot
-
getPropertyDescriptor
ScriptableObject getPropertyDescriptor(Context cx, Scriptable scope)
- Overrides:
getPropertyDescriptor
in classSlot
-
setValue
public boolean setValue(java.lang.Object value, Scriptable owner, Scriptable start)
-
getValue
public java.lang.Object getValue(Scriptable start)
-
-