Package org.jruby.embed.variable
Class VariableInterceptor
java.lang.Object
org.jruby.embed.variable.VariableInterceptor
This class is responsible to local variable behavior dependent processing.
- Author:
- Yoko Harada <[email protected]>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic BiVariable
getVariableInstance
(LocalVariableBehavior behavior, RubyObject receiver, String name, Object... value) Returns an appropriate type of a variable instance to the specified local variable behavior.static void
inject
(BiVariableMap map, Ruby runtime, ManyVarsDynamicScope scope) Deprecated.static void
inject
(BiVariableMap map, DynamicScope scope) Injects variable values from Java to Ruby just before an evaluation or method invocation.static boolean
isKindOfRubyVariable
(LocalVariableBehavior behavior, String name) Checks the given name is whether a legal Ruby variable/constant name or not.static void
retrieve
(LocalVariableBehavior behavior, BiVariableMap map, RubyObject receiver) Retrieves variable/constant names and values after the evaluation or method invocation.static void
terminateGlobalVariables
(LocalVariableBehavior behavior, Collection<BiVariable> variables, Ruby runtime) Clears global variable values from Ruby runtime to behave the same as JSR 223 reference implementation.static void
terminateLocalVariables
(LocalVariableBehavior behavior, List<String> varNames, List<BiVariable> variables) Clears local variables form the variable map so that old local variable name-value pairs are not to be used in successive evaluations.static void
tryLazyRetrieval
(LocalVariableBehavior behavior, BiVariableMap map, IRubyObject receiver, Object key) Retrieves specified variable/constant name and value after the evaluation or method invocation only when it is requested.
-
Constructor Details
-
VariableInterceptor
public VariableInterceptor()
-
-
Method Details
-
getVariableInstance
public static BiVariable getVariableInstance(LocalVariableBehavior behavior, RubyObject receiver, String name, Object... value) Returns an appropriate type of a variable instance to the specified local variable behavior.- Parameters:
behavior
-receiver
- Receiver object returned when a script is evaluated.name
- variable namevalue
- variable value- Returns:
- an appropriate type of the variable instance.
-
inject
Deprecated.Injects variable values from Java to Ruby just before an evaluation or method invocation.- Parameters:
map
- a variable map that has name-value pairs to be injectedruntime
- Ruby runtimescope
- scope to inject local variable values
-
inject
Injects variable values from Java to Ruby just before an evaluation or method invocation.- Parameters:
map
- a variable map that has name-value pairs to be injectedscope
- scope to inject local variable values
-
retrieve
Retrieves variable/constant names and values after the evaluation or method invocation.- Parameters:
map
- variable map that holds retrieved name-value pairs.receiver
- a receiver when the script has been evaluated once
-
tryLazyRetrieval
public static void tryLazyRetrieval(LocalVariableBehavior behavior, BiVariableMap map, IRubyObject receiver, Object key) Retrieves specified variable/constant name and value after the evaluation or method invocation only when it is requested.- Parameters:
map
- variable map that holds retrieved name-value pairs.receiver
- a receiver when the script has been evaluated once
-
terminateGlobalVariables
public static void terminateGlobalVariables(LocalVariableBehavior behavior, Collection<BiVariable> variables, Ruby runtime) Clears global variable values from Ruby runtime to behave the same as JSR 223 reference implementation.- Parameters:
variables
- a variable list to be cleared from Ruby runtimeruntime
- Ruby runtime
-
terminateLocalVariables
public static void terminateLocalVariables(LocalVariableBehavior behavior, List<String> varNames, List<BiVariable> variables) Clears local variables form the variable map so that old local variable name-value pairs are not to be used in successive evaluations.- Parameters:
varNames
- variable name list to be clearedvariables
- variable value list to be cleared
-
isKindOfRubyVariable
Checks the given name is whether a legal Ruby variable/constant name or not.- Parameters:
name
- a given name to be checked- Returns:
- true when the name is a legal Ruby variable/constant name, otherwise false.
-