public class JavaProxy extends RubyObject
| Modifier and Type | Class and Description |
|---|---|
static class |
JavaProxy.ClassMethods |
RubyObject.DataRubyBasicObject.Finalizer| Modifier and Type | Field and Description |
|---|---|
private static ObjectAllocator |
ALLOCATOR |
private JavaObject |
javaObject |
private static java.lang.String |
NONPERSISTENT_IVAR_MESSAGE |
private static java.lang.String |
NONPERSISTENT_SINGLETON_MESSAGE |
(package private) java.lang.Object |
object |
FIELD_ALLOCATED_CLASSES, FIELD_ALLOCATORS, IVAR_INSPECTING_OBJECT_ALLOCATOR, OBJECT_ALLOCATOR, OBJECT_VAR0_ALLOCATOR, OBJECT_VAR1_ALLOCATOR, OBJECT_VAR2_ALLOCATOR, OBJECT_VAR3_ALLOCATOR, OBJECT_VAR4_ALLOCATOR, OBJECT_VAR5_ALLOCATOR, OBJECT_VAR6_ALLOCATOR, OBJECT_VAR7_ALLOCATOR, OBJECT_VAR8_ALLOCATOR, OBJECT_VAR9_ALLOCATOR, REIFYING_OBJECT_ALLOCATORALL_F, BASICOBJECT_ALLOCATOR, COMPARE_BY_IDENTITY_F, ERR_INSECURE_SET_INST_VAR, FALSE_F, FL_USHIFT, flags, FROZEN_F, metaClass, NEVER, NIL_F, STAMP_OFFSET, TAINTED_F, UNDEF, UNTRUSTED_F, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F, USER8_F, VAR_TABLE_OFFSET, varTable, varTableStampNULL_ARRAY| Constructor and Description |
|---|
JavaProxy(Ruby runtime,
RubyClass klazz) |
JavaProxy(Ruby runtime,
RubyClass klazz,
java.lang.Object object) |
| Modifier and Type | Method and Description |
|---|---|
private static void |
checkArgSizeMismatch(Ruby runtime,
int expected,
RubyArray argTypes) |
private void |
confirmCachedProxy(java.lang.String message) |
static RubyClass |
createJavaProxy(ThreadContext context) |
java.lang.Object |
dataGetStruct()
Our version of Data_Get_Struct.
|
void |
dataWrapStruct(java.lang.Object object)
Our version of Data_Wrap_Struct.
|
IRubyObject |
equal_p(ThreadContext context,
IRubyObject other)
rb_obj_equal
Will use Java identity equality.
|
static IRubyObject |
field_accessor(ThreadContext context,
IRubyObject self,
IRubyObject[] args) |
static IRubyObject |
field_reader(ThreadContext context,
IRubyObject self,
IRubyObject[] args) |
static IRubyObject |
field_writer(ThreadContext context,
IRubyObject self,
IRubyObject[] args) |
private static void |
findFields(ThreadContext context,
RubyModule topModule,
IRubyObject[] args,
boolean asReader,
boolean asWriter) |
private static java.util.Map<java.lang.String,java.lang.String> |
getFieldListFromArgs(IRubyObject[] args)
Create a name/newname map of fields to be exposed as methods.
|
java.lang.Class |
getJavaClass()
Will return the Java interface that most closely can represent
this object, when working through JAva integration
translations.
|
private JavaObject |
getJavaObject() |
private java.lang.reflect.Method |
getMethod(java.lang.String name,
java.lang.Class... argTypes) |
private MethodInvoker |
getMethodInvoker(java.lang.reflect.Method method) |
java.lang.Object |
getObject() |
private RubyMethod |
getRubyMethod(java.lang.String name,
java.lang.Class... argTypes) |
RubyClass |
getSingletonClass()
rb_singleton_class
Note: this method is specialized for RubyFixnum, RubySymbol,
RubyNil and RubyBoolean
Will either return the existing singleton class for this
object, or create a new one and return that.
|
java.lang.Object |
getVariable(int index) |
static IRubyObject |
inherited(ThreadContext context,
IRubyObject recv,
IRubyObject subclass) |
IRubyObject |
initialize_copy(IRubyObject original)
rb_obj_init_copy
Initializes this object as a copy of the original, that is the
parameter to this object.
|
protected int |
inspectHashCode()
We override RubyBasicObject.inspectHashCode to be the identity hash of
the contained object, so it remains consistent across wrappers.
|
private static void |
installField(ThreadContext context,
java.util.Map<java.lang.String,java.lang.String> fieldMap,
java.lang.reflect.Field field,
RubyModule module,
boolean asReader,
boolean asWriter) |
(package private) static JavaClass |
java_class(ThreadContext context,
RubyModule module) |
IRubyObject |
java_method(ThreadContext context,
IRubyObject rubyName) |
IRubyObject |
java_method(ThreadContext context,
IRubyObject rubyName,
IRubyObject argTypes) |
IRubyObject |
java_send(ThreadContext context,
IRubyObject rubyName) |
IRubyObject |
java_send(ThreadContext context,
IRubyObject[] args) |
IRubyObject |
java_send(ThreadContext context,
IRubyObject rubyName,
IRubyObject argTypes) |
IRubyObject |
java_send(ThreadContext context,
IRubyObject rubyName,
IRubyObject argTypes,
IRubyObject arg0) |
IRubyObject |
marshal_dump() |
IRubyObject |
marshal_load(ThreadContext context,
IRubyObject str) |
static IRubyObject |
new_array(ThreadContext context,
IRubyObject self,
IRubyObject len) |
static IRubyObject |
op_aref(ThreadContext context,
IRubyObject self,
IRubyObject[] args) |
static IRubyObject |
persistent(IRubyObject clazz,
IRubyObject value) |
static IRubyObject |
persistent(ThreadContext context,
IRubyObject clazz) |
void |
setObject(java.lang.Object object) |
void |
setVariable(int index,
java.lang.Object value) |
static RubyClass |
singleton_class(IRubyObject self) |
java.lang.Object |
toJava(java.lang.Class type)
Convert the object to the specified Java class, if possible.
|
java.lang.Object |
unwrap() |
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, convertToType, createObjectClass, eqlInternal, equalInternal, equals, getNativeTypeIndex, hashCode, initialize, initialize, inspect, op_eqq, puts, specificEval, toStringaddFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkCallMethod, checkFrozen, checkStringType, checkStringType19, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStructChecked, display, dup, ensureInstanceVariablesSettable, eql_p, eql, equal_p19, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, freeze, frozen_p, getFFIHandle, getFlag, getInstanceEvalClass, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getMetaClass, getNativeHandle, getObjectId, getRuntime, getSingletonClassClone, getType, getVariableCount, getVariableList, getVariableNameList, hash, hashyInspect, hasInstanceVariable, hasInternalVariable, hasVariables, id_deprecated, id, infectBy, initialize19, inspect, instance_eval, instance_eval, instance_eval, instance_eval, instance_eval19, instance_eval19, instance_eval19, instance_eval19, instance_exec, instance_exec19, instance_of_p, instance_variable_defined_p, instance_variable_get, instance_variable_set, instance_variables, instance_variables19, isBuiltin, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isTaint, isTrue, isUntrusted, kind_of_p, makeMetaClass, method_missing19, method, method19, methods, methods, methods19, nil_p, op_cmp, op_equal_19, op_equal, op_match, op_match19, op_not_equal, op_not_match, op_not, private_methods, private_methods19, protected_methods, protected_methods19, public_methods, public_methods19, rbClone, remove_instance_variable, removeFinalizers, removeInstanceVariable, removeInternalVariable, respond_to_p, respond_to_p, respond_to_p19, respond_to_p19, respondsTo, respondsToMissing, respondsToMissing, send, send, send, send, send, send19, send19, send19, send19, setFFIHandle, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setNativeHandle, setTaint, setUntrusted, singleton_method_added19, singleton_method_removed19, singleton_method_undefined19, singleton_methods, singleton_methods19, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_s, trust, type_deprecated, type, untaint, untrust, untrusted_p, validateInstanceVariable, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableRemove, variableTableStore, variableTableSync, yieldUnder, yieldUnderprivate transient JavaObject javaObject
java.lang.Object object
private static final ObjectAllocator ALLOCATOR
private static final java.lang.String NONPERSISTENT_IVAR_MESSAGE
private static final java.lang.String NONPERSISTENT_SINGLETON_MESSAGE
public static RubyClass createJavaProxy(ThreadContext context)
public java.lang.Object dataGetStruct()
IRubyObjectdataGetStruct in interface IRubyObjectdataGetStruct in class RubyBasicObjectIRubyObject.dataGetStruct()public void dataWrapStruct(java.lang.Object object)
IRubyObjectdataWrapStruct in interface IRubyObjectdataWrapStruct in class RubyBasicObjectobject - the object to wrapIRubyObject.dataWrapStruct(Object)public java.lang.Object getObject()
public void setObject(java.lang.Object object)
public java.lang.Object unwrap()
private JavaObject getJavaObject()
public java.lang.Class getJavaClass()
RubyBasicObjectgetJavaClass in interface IRubyObjectgetJavaClass in class RubyBasicObjectstatic JavaClass java_class(ThreadContext context, RubyModule module)
public static IRubyObject inherited(ThreadContext context, IRubyObject recv, IRubyObject subclass)
public static RubyClass singleton_class(IRubyObject self)
public static IRubyObject op_aref(ThreadContext context, IRubyObject self, IRubyObject[] args)
public static IRubyObject new_array(ThreadContext context, IRubyObject self, IRubyObject len)
public static IRubyObject persistent(IRubyObject clazz, IRubyObject value)
public static IRubyObject persistent(ThreadContext context, IRubyObject clazz)
public IRubyObject initialize_copy(IRubyObject original)
RubyBasicObjectinitialize_copy in class RubyBasicObjectprivate static java.util.Map<java.lang.String,java.lang.String> getFieldListFromArgs(IRubyObject[] args)
private static void installField(ThreadContext context, java.util.Map<java.lang.String,java.lang.String> fieldMap, java.lang.reflect.Field field, RubyModule module, boolean asReader, boolean asWriter)
private static void findFields(ThreadContext context, RubyModule topModule, IRubyObject[] args, boolean asReader, boolean asWriter)
public static IRubyObject field_accessor(ThreadContext context, IRubyObject self, IRubyObject[] args)
public static IRubyObject field_reader(ThreadContext context, IRubyObject self, IRubyObject[] args)
public static IRubyObject field_writer(ThreadContext context, IRubyObject self, IRubyObject[] args)
public IRubyObject equal_p(ThreadContext context, IRubyObject other)
RubyBasicObjectequal_p in class RubyBasicObjectpublic IRubyObject java_send(ThreadContext context, IRubyObject rubyName)
public IRubyObject java_send(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes)
public IRubyObject java_send(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes, IRubyObject arg0)
public IRubyObject java_send(ThreadContext context, IRubyObject[] args)
private static void checkArgSizeMismatch(Ruby runtime, int expected, RubyArray argTypes)
public IRubyObject java_method(ThreadContext context, IRubyObject rubyName)
public IRubyObject java_method(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes)
public IRubyObject marshal_dump()
public IRubyObject marshal_load(ThreadContext context, IRubyObject str)
protected int inspectHashCode()
inspectHashCode in class RubyBasicObjectprivate java.lang.reflect.Method getMethod(java.lang.String name,
java.lang.Class... argTypes)
private MethodInvoker getMethodInvoker(java.lang.reflect.Method method)
private RubyMethod getRubyMethod(java.lang.String name, java.lang.Class... argTypes)
public java.lang.Object toJava(java.lang.Class type)
IRubyObjecttoJava in interface IRubyObjecttoJava in class RubyBasicObjecttype - The target type to which the object should be converted.IRubyObject.toJava(java.lang.Class)public java.lang.Object getVariable(int index)
getVariable in interface IRubyObjectgetVariable in class RubyBasicObjectpublic void setVariable(int index,
java.lang.Object value)
setVariable in interface IRubyObjectsetVariable in class RubyBasicObjectpublic RubyClass getSingletonClass()
getSingletonClass in interface IRubyObjectgetSingletonClass in class RubyBasicObjectprivate void confirmCachedProxy(java.lang.String message)