Top Description Fields Constructors Methods
org.jruby.embed.variable

public Class ClassVariable

extends AbstractVariable
Class Inheritance
Imports
org.jruby.embed.internal.BiVariableMap, org.jruby.RubyClass, .RubyModule, .RubyObject, org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject

An implementation of BiVariable for a Ruby class variable.
Author
Yoko Harada <[email protected]>

Field Summary

Modifier and TypeField and Description
private static final String
Inherited from org.jruby.embed.variable.AbstractVariable:
fromRubyjavaObjectjavaTypenamereceiverrubyObject

Constructor Summary

AccessConstructor and Description
private
ClassVariable(RubyObject
Receiver object returned when a script is evaluated.
receiver
,
String name, Object... javaObjects)

Constructor when the variable is originated from Java

pack-priv
ClassVariable(RubyObject
a receiver object that this variable/constant is originally in. When the variable/constant is originated from Ruby, receiver may not be null.
receiver
,
String
the class variable name
name
,
IRubyObject
Ruby class variable object
irubyObject
)

A constructor used when this variable is retrieved from Ruby.

Method Summary

Modifier and TypeMethod and Description
public static BiVariable

Returns:

the instance of ClassVariable
getInstance
(RubyObject
Receiver object returned when a script is evaluated.
receiver
,
String
a variable name
name
,
Object...
Java object that should be assigned to.
javaObject
)

Returns an instance of this class.

public BiVariable.Type

Returns:

this enum type, BiVariable.Type.ClassVariable.
getType
()

Implements org.jruby.embed.variable.BiVariable.getType.

Returns enum type of this variable defined in BiVariable.

public void
inject()

Implements org.jruby.embed.variable.BiVariable.inject.

Injects a class variable value to a parsed Ruby script.

public static boolean

Returns:

true if the given name is of a Ruby class variable.
isValidName
(Object
is a name to be checked.
name
)

Returns true if the given name is a decent Ruby class variable.

public void
remove()

Implements org.jruby.embed.variable.BiVariable.remove.

Attempts to remove this variable from top self or receiver.

public static void
retrieve(final RubyObject
receiver object returned when a script is evaluated.
receiver
,
final BiVariableMap
map to save retrieved class variables.
vars
)

Retrieves class variables from Ruby after the evaluation.

public static void
retrieveByKey(final RubyObject
receiver object returned when a script is evaluated.
receiver
,
final BiVariableMap
map to save retrieved instance variables.
vars
,
final String
instace varible name
name
)

Retrieves a class variable by key from Ruby runtime after the evaluation.

private static void
updateClassVar(ThreadContext context, final RubyObject receiver, final BiVariableMap vars)

Inherited from org.jruby.embed.variable.AbstractVariable:
getCurrentContextgetJavaObjectgetNamegetReceivergetRubyClassgetRubyObjectgetRuntimegetTopSelfgetTopSelfisReceiverIdenticalisValidNamesetJavaObjectsetRubyObjectupdateByJavaObjectupdateRubyObject

Field Detail

VALID_NAMEback to summary
private static final String VALID_NAME

Constructor Detail

ClassVariableback to summary
private ClassVariable(RubyObject receiver, String name, Object... javaObjects)

Constructor when the variable is originated from Java

Parameters
receiver:RubyObject

Receiver object returned when a script is evaluated.

ClassVariableback to summary
pack-priv ClassVariable(RubyObject receiver, String name, IRubyObject irubyObject)

A constructor used when this variable is retrieved from Ruby.

Parameters
receiver:RubyObject

a receiver object that this variable/constant is originally in. When the variable/constant is originated from Ruby, receiver may not be null.

name:String

the class variable name

irubyObject:IRubyObject

Ruby class variable object

Method Detail

getInstanceback to summary
public static BiVariable getInstance(RubyObject receiver, String name, Object... javaObject)

Returns an instance of this class. This factory method is used when a class variables is put in BiVariableMap. This variable is originated from Java.

Parameters
receiver:RubyObject

Receiver object returned when a script is evaluated.

name:String

a variable name

javaObject:Object[]

Java object that should be assigned to.

Returns:BiVariable

the instance of ClassVariable

getTypeback to summary
public BiVariable.Type getType()

Implements org.jruby.embed.variable.BiVariable.getType.

Returns enum type of this variable defined in BiVariable.

Returns:BiVariable.Type

this enum type, BiVariable.Type.ClassVariable.

Annotations
@Override
injectback to summary
public void inject()

Implements org.jruby.embed.variable.BiVariable.inject.

Injects a class variable value to a parsed Ruby script. This method is invoked during EvalUnit#run() is executed.

Annotations
@Override
isValidNameback to summary
public static boolean isValidName(Object name)

Returns true if the given name is a decent Ruby class variable. Unless returns false.

Parameters
name:Object

is a name to be checked.

Returns:boolean

true if the given name is of a Ruby class variable.

removeback to summary
public void remove()

Implements org.jruby.embed.variable.BiVariable.remove.

Attempts to remove this variable from top self or receiver.

Annotations
@Override
retrieveback to summary
public static void retrieve(final RubyObject receiver, final BiVariableMap vars)

Retrieves class variables from Ruby after the evaluation.

Parameters
receiver:RubyObject

receiver object returned when a script is evaluated.

vars:BiVariableMap

map to save retrieved class variables.

retrieveByKeyback to summary
public static void retrieveByKey(final RubyObject receiver, final BiVariableMap vars, final String name)

Retrieves a class variable by key from Ruby runtime after the evaluation. This method is used when eager retrieval is off.

Parameters
receiver:RubyObject

receiver object returned when a script is evaluated.

vars:BiVariableMap

map to save retrieved instance variables.

name:String

instace varible name

updateClassVarback to summary
private static void updateClassVar(ThreadContext context, final RubyObject receiver, final BiVariableMap vars)