@JRubyMethod(name = {"==", "eql?"}) public IRubyObject op_equal(IRubyObject other) { if (!(other instanceof JavaProxyReflectionObject)) { Object otherObj = other.dataGetStruct(); if (!(otherObj instanceof JavaObject)) { return getRuntime().getFalse(); } other = (IRubyObject)otherObj; } boolean isEqual = equals(other); return isEqual ? getRuntime().getTrue() : getRuntime().getFalse(); }
@JRubyMethod public JavaClass java_class() { return JavaClass.get(getRuntime(), getJavaClass()); }
@Override @JRubyMethod public RubyFixnum hash() { return getRuntime().newFixnum(hashCode()); }
@Deprecated public IRubyObject op_equal(IRubyObject other) { return op_eqq(getRuntime().getCurrentContext(), other); }
@Deprecated public IRubyObject same(IRubyObject other) { return op_equal(getRuntime().getCurrentContext(), other); }
@Override @JRubyMethod public IRubyObject to_s() { return getRuntime().newString(toString()); }
final RubyArray toRubyArray(final IRubyObject[] elements) { return RubyArray.newArrayMayCopy(getRuntime(), elements); }
public static RubyClass createJavaProxyClassClass(final Ruby runtime, final RubyModule Java) { RubyClass JavaProxyClass = Java.defineClassUnder("JavaProxyClass", runtime.getObject(), ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR ); JavaProxyReflectionObject.registerRubyMethods(runtime, JavaProxyClass); JavaProxyClass.defineAnnotatedMethods(JavaProxyClass.class); return JavaProxyClass; }
@Override @JRubyMethod(name = {"==", "eql?"}) public RubyBoolean op_eqq(final ThreadContext context, IRubyObject obj) { if ( ! ( obj instanceof JavaProxyReflectionObject ) ) { final Object wrappedObj = obj.dataGetStruct(); if ( ! ( wrappedObj instanceof JavaObject ) ) { return context.fals; } obj = (IRubyObject) wrappedObj; } return context.runtime.newBoolean( this.equals(obj) ); }
@Override public int hashCode() { return 11 * getJavaClass().hashCode(); }
final RubyArray toRubyArray(final Class<?>[] classes) { return JavaClass.toRubyArray(getRuntime(), classes); }
@Override @JRubyMethod public IRubyObject to_s() { return getRuntime().newString(toString()); }
public static RubyClass createJavaProxyMethodClass(Ruby runtime, RubyModule javaProxyModule) { RubyClass result = javaProxyModule.defineClassUnder("JavaProxyMethod", runtime.getObject(), ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR); JavaProxyReflectionObject.registerRubyMethods(runtime, result); result.defineAnnotatedMethods(ProxyMethodImpl.class); return result; }
@Deprecated public IRubyObject op_equal(IRubyObject other) { return op_eqq(getRuntime().getCurrentContext(), other); }
@Deprecated public IRubyObject same(IRubyObject other) { return op_equal(getRuntime().getCurrentContext(), other); }
@Override @JRubyMethod(name = {"==", "eql?"}) public RubyBoolean op_eqq(final ThreadContext context, IRubyObject obj) { if ( ! ( obj instanceof JavaProxyReflectionObject ) ) { final Object wrappedObj = obj.dataGetStruct(); if ( ! ( wrappedObj instanceof JavaObject ) ) { return context.fals; } obj = (IRubyObject) wrappedObj; } return context.runtime.newBoolean( this.equals(obj) ); }
@Override public int hashCode() { return 11 * getJavaClass().hashCode(); }
@JRubyMethod public JavaClass java_class() { return JavaClass.get(getRuntime(), getJavaClass()); }
final RubyArray toRubyArray(final Class<?>[] classes) { return JavaClass.toRubyArray(getRuntime(), classes); }
@JRubyMethod public IRubyObject to_s() { return getRuntime().newString(toString()); }