Package org.jruby.embed.variable
Class ClassVariable
java.lang.Object
org.jruby.embed.variable.AbstractVariable
org.jruby.embed.variable.ClassVariable
- All Implemented Interfaces:
BiVariable
An implementation of BiVariable for a Ruby class 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
ConstructorsModifierConstructorDescriptionprivateClassVariable(RubyObject receiver, String name, Object... javaObjects) Constructor when the variable is originated from Java(package private)ClassVariable(RubyObject receiver, String name, IRubyObject irubyObject) A constructor used when this variable is 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()Injects a class variable value to a parsed Ruby script.static booleanisValidName(Object name) Returns true if the given name is a decent Ruby class variable.voidremove()Attempts to remove this variable from top self or receiver.static voidretrieve(RubyObject receiver, BiVariableMap vars) Retrieves class variables from Ruby after the evaluation.static voidretrieveByKey(RubyObject receiver, BiVariableMap vars, String name) Retrieves a class variable by key from Ruby runtime after the evaluation.private static voidupdateClassVar(RubyObject receiver, BiVariableMap vars) Methods inherited from class org.jruby.embed.variable.AbstractVariable
getCurrentContext, getJavaObject, getName, getReceiver, getRubyClass, getRubyObject, getRuntime, getTopSelf, getTopSelf, isReceiverIdentical, isValidName, setJavaObject, setRubyObject, updateByJavaObject, updateRubyObject
-
Field Details
-
VALID_NAME
- See Also:
-
-
Constructor Details
-
ClassVariable
Constructor when the variable is originated from Java- Parameters:
receiver-name-javaObject-
-
ClassVariable
ClassVariable(RubyObject receiver, String name, IRubyObject irubyObject) A constructor used when this variable is retrieved from Ruby.- Parameters:
receiver- a receiver object that this variable/constant is originally in. When the variable/constant is originated from Ruby, receiver may not be null.name- the class variable nameirubyObject- Ruby class variable object
-
-
Method Details
-
getInstance
Returns an instance of this class. This factory method is used when a class variables is put inBiVariableMap. This variable is originated from Java.- Parameters:
runtime-name- a variable namejavaObject- Java object that should be assigned to.- Returns:
- the instance of ClassVariable
-
retrieve
Retrieves class variables from Ruby after the evaluation.- Parameters:
runtime- Ruby runtimereceiver- receiver object returned when a script is evaluated.vars- map to save retrieved class variables.
-
updateClassVar
-
retrieveByKey
Retrieves a class variable by key from Ruby runtime after the evaluation. This method is used when eager retrieval is off.- Parameters:
receiver- receiver object returned when a script is evaluated.vars- map to save retrieved instance variables.name- instace varible name
-
getType
Returns enum type of this variable defined inBiVariable.- Returns:
- this enum type, BiVariable.Type.ClassVariable.
-
isValidName
Returns true if the given name is a decent Ruby class variable. Unless returns false.- Parameters:
name- is a name to be checked.- Returns:
- true if the given name is of a Ruby class variable.
-
inject
public void inject()Injects a class 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.
-