@Deprecated // not used public static void copyDataToJavaArray(final ThreadContext context, final RubyArray rubyArray, final JavaArray javaArray) { copyDataToJavaArray(rubyArray, javaArray, 0); }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject rubyArray, IRubyObject dims) { final Ruby runtime = context.runtime; if ( ! ( rubyArray instanceof RubyArray ) ) { return runtime.newEmptyArray(); } assert dims instanceof RubyArray; return calcDimensions(runtime, (RubyArray) rubyArray, (RubyArray) dims, 0); }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject rubyArray) { return dimensions(context, rubyArray, context.runtime.newEmptyArray()); }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject maybeArray, IRubyObject dims) { Ruby runtime = context.runtime; if (!(maybeArray instanceof RubyArray)) { return runtime.newEmptyArray(); } assert dims instanceof RubyArray; RubyArray rubyArray = (RubyArray)maybeArray; return dimsRecurse(context, rubyArray, (RubyArray)dims, 0); }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject maybeArray, IRubyObject dims) { Ruby runtime = context.runtime; if (!(maybeArray instanceof RubyArray)) { return runtime.newEmptyArray(); } assert dims instanceof RubyArray; RubyArray rubyArray = (RubyArray)maybeArray; return dimsRecurse(context, rubyArray, (RubyArray)dims, 0); }
@Deprecated // not used public static void copyDataToJavaArray(final ThreadContext context, final RubyArray rubyArray, final JavaArray javaArray) { copyDataToJavaArray(rubyArray, javaArray, 0); }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject maybeArray, IRubyObject dims, IRubyObject index) { Ruby runtime = context.runtime; if (!(maybeArray instanceof RubyArray)) { return runtime.newEmptyArray(); } assert dims instanceof RubyArray; assert index instanceof RubyFixnum; RubyArray rubyArray = (RubyArray)maybeArray; return dimsRecurse(context, rubyArray, (RubyArray)dims, (int)((RubyFixnum)index).getLongValue()); }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject rubyArray, IRubyObject dims) { final Ruby runtime = context.runtime; if ( ! ( rubyArray instanceof RubyArray ) ) { return runtime.newEmptyArray(); } assert dims instanceof RubyArray; return calcDimensions(runtime, (RubyArray) rubyArray, (RubyArray) dims, 0); }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject rubyArray) { return dimensions(context, rubyArray, context.runtime.newEmptyArray()); }
@JRubyMethod(name = { "copy_data", "copy_data_simple" }) public static IRubyObject copy_data(final ThreadContext context, IRubyObject fromRuby, IRubyObject toJava) { JavaArray javaArray = (JavaArray) toJava.dataGetStruct(); RubyArray rubyArray = (RubyArray) fromRuby; copyDataToJavaArray(rubyArray, javaArray, 0); return toJava; }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject maybeArray, IRubyObject dims, IRubyObject index) { Ruby runtime = context.runtime; if (!(maybeArray instanceof RubyArray)) { return runtime.newEmptyArray(); } assert dims instanceof RubyArray; assert index instanceof RubyFixnum; RubyArray rubyArray = (RubyArray)maybeArray; return dimsRecurse(context, rubyArray, (RubyArray)dims, (int)((RubyFixnum)index).getLongValue()); }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject rubyArray, IRubyObject dims, IRubyObject index) { final Ruby runtime = context.runtime; if ( ! ( rubyArray instanceof RubyArray ) ) { return runtime.newEmptyArray(); } assert dims instanceof RubyArray; assert index instanceof RubyFixnum; final int i = (int) ((RubyFixnum) index).getLongValue(); return calcDimensions(runtime, (RubyArray) rubyArray, (RubyArray) dims, i); }
@JRubyMethod(name = { "copy_data", "copy_data_simple" }) public static IRubyObject copy_data(final ThreadContext context, IRubyObject fromRuby, IRubyObject toJava) { JavaArray javaArray = (JavaArray) toJava.dataGetStruct(); RubyArray rubyArray = (RubyArray) fromRuby; copyDataToJavaArray(rubyArray, javaArray, 0); return toJava; }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject maybeArray) { Ruby runtime = context.runtime; if (!(maybeArray instanceof RubyArray)) { return runtime.newEmptyArray(); } RubyArray rubyArray = (RubyArray)maybeArray; RubyArray dims = runtime.newEmptyArray(); return dimsRecurse(context, rubyArray, dims, 0); }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject rubyArray, IRubyObject dims, IRubyObject index) { final Ruby runtime = context.runtime; if ( ! ( rubyArray instanceof RubyArray ) ) { return runtime.newEmptyArray(); } assert dims instanceof RubyArray; assert index instanceof RubyFixnum; final int i = (int) ((RubyFixnum) index).getLongValue(); return calcDimensions(runtime, (RubyArray) rubyArray, (RubyArray) dims, i); }
@JRubyMethod public static IRubyObject copy_data_simple( ThreadContext context, IRubyObject from, IRubyObject to) { JavaArray javaArray = (JavaArray)to.dataGetStruct(); RubyArray rubyArray = (RubyArray)from; copyDataToJavaArray(context, rubyArray, javaArray); return to; }
@JRubyMethod public static IRubyObject dimensions(ThreadContext context, IRubyObject maybeArray) { Ruby runtime = context.runtime; if (!(maybeArray instanceof RubyArray)) { return runtime.newEmptyArray(); } RubyArray rubyArray = (RubyArray)maybeArray; RubyArray dims = runtime.newEmptyArray(); return dimsRecurse(context, rubyArray, dims, 0); }
private static RubyArray calcDimensions(final Ruby runtime, final RubyArray array, final RubyArray dims, final int index) { while ( dims.size() <= index ) { dims.append( RubyFixnum.zero(runtime) ); } final long dim = ((RubyFixnum) dims.eltInternal(index)).getLongValue(); if ( array.size() > dim ) { dims.eltInternalSet(index, RubyFixnum.newFixnum(runtime, array.size())); } for ( int i = 0; i < array.size(); i++ ) { final IRubyObject element = array.eltInternal(i); if ( element instanceof RubyArray ) { calcDimensions(runtime, (RubyArray) element, dims, 1); } } return dims; } }
@JRubyMethod public static IRubyObject copy_data_simple( ThreadContext context, IRubyObject from, IRubyObject to) { JavaArray javaArray = (JavaArray)to.dataGetStruct(); RubyArray rubyArray = (RubyArray)from; copyDataToJavaArray(context, rubyArray, javaArray); return to; }
private static RubyArray dimsRecurse(ThreadContext context, RubyArray rubyArray, RubyArray dims, int index) { Ruby runtime = context.runtime; while (dims.size() <= index) { dims.append(RubyFixnum.zero(runtime)); } if (rubyArray.size() > ((RubyFixnum)dims.eltInternal(index)).getLongValue()) { dims.eltInternalSet(index, RubyFixnum.newFixnum(runtime, rubyArray.size())); } for (int i = 0; i < rubyArray.size(); i++) { if (rubyArray.eltInternal(i) instanceof RubyArray) { dimsRecurse(context, (RubyArray)rubyArray.eltInternal(i), dims, 1); } } return dims; } }