Package org.jruby.embed.variable
Class GlobalVariable
java.lang.Object
org.jruby.embed.variable.AbstractVariable
org.jruby.embed.variable.GlobalVariable
- All Implemented Interfaces:
BiVariable
- Direct Known Subclasses:
LocalGlobalVariable
An implementation of BiVariable for a Ruby global variable.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.jruby.embed.variable.BiVariable
BiVariable.Type -
Field Summary
FieldsFields inherited from class org.jruby.embed.variable.AbstractVariable
fromRuby, javaObject, javaType, name, receiver, rubyObject -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedGlobalVariable(RubyObject receiver, String name, Object... javaObjects) (package private)GlobalVariable(RubyObject receiver, String name, IRubyObject irubyObject) A constructor used when global variables are retrieved from Ruby. -
Method Summary
Modifier and TypeMethodDescriptionstatic BiVariablegetInstance(RubyObject receiver, String name, Object... javaObject) Returns an instance of this class.getType()Returns enum type of this variable defined inBiVariable.voidinject()A global variable is injected when it is set.protected static booleanisPredefined(String name) booleanReturns true if a given receiver is identical to the receiver this object has.static booleanisValidName(Object name) Returns true if the given name is a decent Ruby global variable.voidremove()Attempts to remove this variable from top self or receiver.static voidretrieve(IRubyObject receiver, BiVariableMap vars) Retrieves global variables from Ruby after the evaluation.static voidretrieveByKey(Ruby runtime, BiVariableMap vars, String key) Retrieves a global variable by key from Ruby after the evaluation.voidsetJavaObject(Ruby runtime, Object javaObject) Sets a Java object and its Ruby type as a value of this object.voidtryEagerInjection(Ruby runtime, IRubyObject receiver) Deprecated.voidtryEagerInjection(IRubyObject receiver) Injects a global variable value to a parsed Ruby script.private static voidupdateGlobalVar(BiVariableMap vars, RubyObject receiver, String name, IRubyObject value) Methods inherited from class org.jruby.embed.variable.AbstractVariable
getCurrentContext, getJavaObject, getName, getReceiver, getRubyClass, getRubyObject, getRuntime, getTopSelf, getTopSelf, isValidName, setRubyObject, updateByJavaObject, updateRubyObject
-
Field Details
-
VALID_NAME
- See Also:
-
PREDEFINED_PATTERNS
-
PREDEFINED_NAMES
-
-
Constructor Details
-
GlobalVariable
-
GlobalVariable
GlobalVariable(RubyObject receiver, String name, IRubyObject irubyObject) A constructor used when global variables are retrieved from Ruby.- Parameters:
name- the global variable nameirubyObject- Ruby global object
-
-
Method Details
-
getInstance
Returns an instance of this class. This factory method is used when a global variable is put inBiVariableMap.- Parameters:
runtime- Ruby runtimename- a variable namejavaObject- Java object that should be assigned to.- Returns:
- the instance of GlobalVariable
-
retrieve
Retrieves global variables from Ruby after the evaluation.- Parameters:
runtime- Ruby runtimereceiver- receiver object returned when a script is evaluated.vars- map to save retrieved global variables.
-
updateGlobalVar
private static void updateGlobalVar(BiVariableMap vars, RubyObject receiver, String name, IRubyObject value) -
retrieveByKey
Retrieves a global variable by key from Ruby after the evaluation.- Parameters:
runtime- Ruby runtimereceiver- receiver object returned when a script is evaluated.vars- map to save a retrieved global variable.key- name of the global variable
-
isPredefined
-
getType
Returns enum type of this variable defined inBiVariable.- Returns:
- this enum type, BiVariable.Type.GlobalVariable.
-
isValidName
Returns true if the given name is a decent Ruby global variable. Unless returns false.- Parameters:
name- is a name to be checked.- Returns:
- true if the given name is of a Ruby global variable.
-
setJavaObject
Sets a Java object and its Ruby type as a value of this object. At the same time, sets Ruby object to Ruby runtime.- Specified by:
setJavaObjectin interfaceBiVariable- Overrides:
setJavaObjectin classAbstractVariable- Parameters:
runtime- is used to convert a Java object to Ruby object.javaObject- is a variable value to be set.
-
inject
public void inject()A global variable is injected when it is set. This method does nothing. Instead injection is done by tryEagerInjection. -
tryEagerInjection
Deprecated. -
tryEagerInjection
Injects a global variable value to a parsed Ruby script. This method is invoked during EvalUnit#run() is executed.- Parameters:
runtime- is environment where a variable injection occursreceiver- is the instance that will have variable injection.
-
remove
public void remove()Attempts to remove this variable from top self or receiver. -
isReceiverIdentical
Returns true if a given receiver is identical to the receiver this object has.- Specified by:
isReceiverIdenticalin interfaceBiVariable- Overrides:
isReceiverIdenticalin classAbstractVariable- Returns:
- true always
-