Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jruby.java.addons;
  
  import org.jruby.Ruby;
 
 public class KernelJavaAddons {
     @JRubyMethod(name = {"raise""fail"}, optional = 3, module = true, visibility = ., omit = true)
     public static IRubyObject rbRaise(ThreadContext contextIRubyObject recvIRubyObject[] argsBlock block) {
         Ruby runtime = context.runtime;
 
         // Check for a Java exception
         ConcreteJavaProxy exception = null;
         if (args.length == 0 && runtime.getGlobalVariables().get("$!"instanceof ConcreteJavaProxy) {
             exception = (ConcreteJavaProxy)runtime.getGlobalVariables().get("$!");
         } else if (args.length == 1 && args[0] instanceof ConcreteJavaProxy) {
             exception = (ConcreteJavaProxy)args[0];
         }
 
         if (exception != null) {
             // looks like someone's trying to raise a Java exception. Let them.
             Object maybeThrowable = exception.getObject();
 
             if (maybeThrowable instanceof Throwable) {
                 // yes, we're cheating here.
                 Helpers.throwException((Throwable)maybeThrowable);
                 return recv// not reached
             } else {
                 throw runtime.newTypeError("can't raise a non-Throwable Java object");
             }
         } else {
             return RubyKernel.raise(contextrecvargsblock);
         }
     }
 
     @JRubyMethod
     public static IRubyObject to_java(ThreadContext contextfinal IRubyObject fromObject) {
         if ( fromObject instanceof RubyArray ) {
             final JavaClass targetType = context.runtime.getJavaSupport().getObjectJavaClass();
             return targetType.javaArrayFromRubyArray(context, (RubyArrayfromObject);
         }
         return Java.getInstance(context.runtimefromObject.toJava(Object.class));
     }
 
     @JRubyMethod
     public static IRubyObject to_java(ThreadContext contextfinal IRubyObject fromObjectfinal IRubyObject type) {
         if ( type.isNil() ) return to_java(contextfromObject);
 
         final Ruby runtime = context.runtime;
         final JavaClass targetType = getTargetType(contextruntimetype);
 
         if ( fromObject instanceof RubyArray ) {
             return targetType.javaArrayFromRubyArray(context, (RubyArrayfromObject);
         }
         return Java.getInstance(runtimefromObject.toJava(targetType.javaClass()));
     }
 
     @JRubyMethod(rest = true)
     public static IRubyObject java_signature(IRubyObject recvIRubyObject[] args) {
         // empty stub for now
         return recv.getRuntime().getNil();
     }
 
     @JRubyMethod(rest = true)
     public static IRubyObject java_name(IRubyObject recvIRubyObject[] args) {
         // empty stub for now
         return recv.getRuntime().getNil();
     }
 
     @JRubyMethod(rest = true)
     public static IRubyObject java_implements(IRubyObject recvIRubyObject[] args) {
         // empty stub for now
         return recv.getRuntime().getNil();
     }
 
     @JRubyMethod(rest = true)
     public static IRubyObject java_annotation(IRubyObject recvIRubyObject[] args) {
         // empty stub for now
         return recv.getRuntime().getNil();
     }
 
     @JRubyMethod(rest = true)
     public static IRubyObject java_require(IRubyObject recvIRubyObject[] args) {
         // empty stub for now
         return recv.getRuntime().getNil();
     }
 
    @JRubyMethod(rest = true)
    public static IRubyObject java_package(IRubyObject recvIRubyObject[] args) {
        // empty stub for now
        return recv.getRuntime().getNil();
    }
    @JRubyMethod(rest = true)
    public static IRubyObject java_field(IRubyObject recvIRubyObject[] args) {
        // empty stub for now
        return recv.getRuntime().getNil();
    }
    private static JavaClass getTargetType(ThreadContext contextRuby runtimeIRubyObject type) {
        JavaClass targetType;
        if (type instanceof RubyString || type instanceof RubySymbol) {
            targetType = runtime.getJavaSupport().getNameClassMap().get(type.asJavaString());
            if (targetType == nulltargetType = JavaClass.forNameVerbose(runtimetype.asJavaString());
        }
        else if (type instanceof RubyModule && type.respondsTo("java_class")) {
            targetType = (JavaClass) Helpers.invoke(contexttype"java_class");
        }
        else if (type instanceof JavaProxy) {
            final Object wrapped = ((JavaProxytype).getObject();
            if ( wrapped instanceof Class ) {
                targetType = JavaClass.get(runtime, (Classwrapped);
            } else {
                throw runtime.newTypeError("not a valid target type: " + type);
            }
        } else {
            throw runtime.newTypeError("unable to convert to type: " + type);
        }
        return targetType;
    }
New to GrepCode? Check out our FAQ X