Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jruby.java.invokers;
  
  import java.util.List;
  import org.jruby.Ruby;
  import org.jruby.RubyProc;
 
 public final class ConstructorInvoker extends RubyToJavaInvoker {
 
     public ConstructorInvoker(RubyModule hostList<Constructorctors) {
         super(hostctors.toArray(new Constructor[ctors.size()]));
 
     }
 
     @Override
     protected JavaCallable createCallable(Ruby rubyMember member) {
         return JavaConstructor.create(ruby, (Constructor)member);
     }
 
     @Override
     protected JavaCallable[] createCallableArray(JavaCallable callable) {
         return new JavaConstructor[] {(JavaConstructor)callable};
     }
 
     @Override
     protected JavaCallable[] createCallableArray(int size) {
         return new JavaConstructor[size];
     }
 
     @Override
     protected JavaCallable[][] createCallableArrayArray(int size) {
         return new JavaConstructor[size][];
     }
 
     @Override
     protected Class[] getMemberParameterTypes(Member member) {
         return ((Constructormember).getParameterTypes();
     }
 
     @Override
     protected boolean isMemberVarArgs(Member member) {
         return ((Constructormember).isVarArgs();
     }
 
     @Override
     public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject[] args) {
         JavaProxy proxy = castJavaProxy(self);
         JavaConstructor constructor = (JavaConstructorfindCallable(selfnameargsargs.length);
 
         final Object[] convertedArgs = convertArguments(constructorargs);
         proxy.setObjectconstructor.newInstanceDirect(convertedArgs) );
         return self;
     }
 
     @Override
     public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString name) {
         if ( != nullreturn call(contextselfclazzname.);
         JavaProxy proxy = castJavaProxy(self);
         JavaConstructor constructor = (JavaConstructorfindCallableArityZero(selfname);
 
         proxy.setObject(constructor.newInstanceDirect());
 
         return self;
     }
 
     @Override
     public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject arg0) {
         if ( != nullreturn call(contextselfclazznamenew IRubyObject[] {arg0});
         JavaProxy proxy = castJavaProxy(self);
         JavaConstructor constructor = (JavaConstructorfindCallableArityOne(selfnamearg0);
         final Class<?>[] paramTypes = constructor.getParameterTypes();
         Object cArg0 = arg0.toJava(paramTypes[0]);
 
         proxy.setObject(constructor.newInstanceDirect(cArg0));
 
         return self;
     }
 
     @Override
     public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject arg0IRubyObject arg1) {
         if ( != nullreturn call(contextselfclazznamenew IRubyObject[] {arg0arg1});
         JavaProxy proxy = castJavaProxy(self);
         JavaConstructor constructor = (JavaConstructorfindCallableArityTwo(selfnamearg0arg1);
         final Class<?>[] paramTypes = constructor.getParameterTypes();
         Object cArg0 = arg0.toJava(paramTypes[0]);
         Object cArg1 = arg1.toJava(paramTypes[1]);
 
         proxy.setObject(constructor.newInstanceDirect(cArg0cArg1));
 
         return self;
    }
    @Override
    public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject arg0IRubyObject arg1IRubyObject arg2) {
        if ( != nullreturn call(contextselfclazznamenew IRubyObject[] {arg0arg1arg2});
        JavaProxy proxy = castJavaProxy(self);
        JavaConstructor constructor = (JavaConstructorfindCallableArityThree(selfnamearg0arg1arg2);
        final Class<?>[] paramTypes = constructor.getParameterTypes();
        Object cArg0 = arg0.toJava(paramTypes[0]);
        Object cArg1 = arg1.toJava(paramTypes[1]);
        Object cArg2 = arg2.toJava(paramTypes[2]);
        proxy.setObject(constructor.newInstanceDirect(cArg0cArg1cArg2));
        return self;
    }
    @Override
    public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject[] argsBlock block) {
        if (block.isGiven()) {
            JavaProxy proxy = castJavaProxy(self);
            int len = args.length;
            // too much array creation!
            Object[] convertedArgs = new Object[len + 1];
            IRubyObject[] intermediate = new IRubyObject[len + 1];
            System.arraycopy(args, 0, intermediate, 0, len);
            intermediate[len] = RubyProc.newProc(context.runtimeblockblock.type);
            JavaConstructor constructor = (JavaConstructorfindCallable(selfnameintermediatelen + 1);
            final Class<?>[] paramTypes = constructor.getParameterTypes();
            for (int i = 0; i < len + 1; i++) {
                convertedArgs[i] = intermediate[i].toJava(paramTypes[i]);
            }
            proxy.setObject(constructor.newInstanceDirect(convertedArgs));
            return self;
        }
        return call(contextselfclazznameargs);
    }
    @Override
    public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameBlock block) {
        if (block.isGiven()) {
            JavaProxy proxy = castJavaProxy(self);
            RubyProc proc = RubyProc.newProc(context.runtimeblockblock.type);
            JavaConstructor constructor = (JavaConstructorfindCallableArityOne(selfnameproc);
            final Class<?>[] paramTypes = constructor.getParameterTypes();
            Object cArg0 = proc.toJava(paramTypes[0]);
            proxy.setObject(constructor.newInstanceDirect(cArg0));
            return self;
        }
        return call(contextselfclazzname);
    }
    @Override
    public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject arg0Block block) {
        if (block.isGiven()) {
            JavaProxy proxy = castJavaProxy(self);
            RubyProc proc = RubyProc.newProc(context.runtimeblockblock.type);
            JavaConstructor constructor = (JavaConstructorfindCallableArityTwo(selfnamearg0proc);
            final Class<?>[] paramTypes = constructor.getParameterTypes();
            Object cArg0 = arg0.toJava(paramTypes[0]);
            Object cArg1 = proc.toJava(paramTypes[1]);
            proxy.setObject(constructor.newInstanceDirect(cArg0cArg1));
            return self;
        }
        return call(contextselfclazznamearg0);
    }
    @Override
    public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject arg0IRubyObject arg1Block block) {
        if (block.isGiven()) {
            JavaProxy proxy = castJavaProxy(self);
            RubyProc proc = RubyProc.newProc(context.runtimeblockblock.type);
            JavaConstructor constructor = (JavaConstructorfindCallableArityThree(selfnamearg0arg1proc);
            final Class<?>[] paramTypes = constructor.getParameterTypes();
            Object cArg0 = arg0.toJava(paramTypes[0]);
            Object cArg1 = arg1.toJava(paramTypes[1]);
            Object cArg2 = proc.toJava(paramTypes[2]);
            proxy.setObject(constructor.newInstanceDirect(cArg0cArg1cArg2));
            return self;
        }
        return call(contextselfclazznamearg0arg1);
    }
    @Override
    public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject arg0IRubyObject arg1IRubyObject arg2Block block) {
        if (block.isGiven()) {
            JavaProxy proxy = castJavaProxy(self);
            RubyProc proc = RubyProc.newProc(context.runtimeblockblock.type);
            JavaConstructor constructor = (JavaConstructorfindCallableArityFour(selfnamearg0arg1arg2proc);
            final Class<?>[] paramTypes = constructor.getParameterTypes();
            Object cArg0 = arg0.toJava(paramTypes[0]);
            Object cArg1 = arg1.toJava(paramTypes[1]);
            Object cArg2 = arg2.toJava(paramTypes[2]);
            Object cArg3 = proc.toJava(paramTypes[3]);
            proxy.setObject(constructor.newInstanceDirect(cArg0cArg1cArg2cArg3));
            return self;
        }
        return call(contextselfclazznamearg0arg1arg2);
    }
New to GrepCode? Check out our FAQ X