public RubyFixnum length() { return getRuntime().newFixnum(getLength()); }
public RubyFixnum length() { return getRuntime().newFixnum(getLength()); }
public RubyFixnum length() { return getRuntime().newFixnum(getLength()); }
public RubyFixnum length() { return getRuntime().newFixnum(getLength()); }
public void fillWithExceptionHandling(int intIndex, int intEndIndex, Object javaObject) { try { for ( ; intIndex < intEndIndex; intIndex++) { Array.set(getValue(), intIndex, javaObject); } } catch (IndexOutOfBoundsException e) { throw getRuntime().newArgumentError( "index out of bounds for java array (" + intIndex + " for length " + getLength() + ")"); } catch (ArrayStoreException e) { throw getRuntime().newArgumentError( "wrong element type " + javaObject.getClass() + "(array is " + getValue().getClass() + ")"); } } }
public void fillWithExceptionHandling(int intIndex, int intEndIndex, Object javaObject) { try { for ( ; intIndex < intEndIndex; intIndex++) { Array.set(getValue(), intIndex, javaObject); } } catch (IndexOutOfBoundsException e) { throw getRuntime().newArgumentError( "index out of bounds for java array (" + intIndex + " for length " + getLength() + ")"); } catch (ArrayStoreException e) { throw getRuntime().newArgumentError( "wrong element type " + javaObject.getClass() + "(array is " + getValue().getClass() + ")"); } } }
private static void copyDataToJavaArray( final RubyArray rubyArray, final JavaArray javaArray, int offset) { int length = javaArray.getLength(); if ( length > rubyArray.getLength() ) length = rubyArray.getLength(); final Class<?> targetType = javaArray.getComponentType(); for ( int i = offset; i < length; i++ ) { javaArray.setWithExceptionHandling(i, rubyArray.eltInternal(i).toJava(targetType)); } }
private static void copyDataToJavaArray( final RubyArray rubyArray, final JavaArray javaArray, int offset) { int length = javaArray.getLength(); if ( length > rubyArray.getLength() ) length = rubyArray.getLength(); final Class<?> targetType = javaArray.getComponentType(); for ( int i = offset; i < length; i++ ) { javaArray.setWithExceptionHandling(i, rubyArray.eltInternal(i).toJava(targetType)); } }
@JRubyMethod(name = "copy_data") public static IRubyObject copy_data(final ThreadContext context, final IRubyObject fromRuby, final IRubyObject toJava, final IRubyObject fillValue) { JavaArray javaArray = (JavaArray) toJava.dataGetStruct(); final int javaLength = javaArray.getLength(); final Class<?> targetType = javaArray.getComponentType(); Object fillJavaObject = null; if ( ! fillValue.isNil() ) fillJavaObject = fillValue.toJava(targetType); RubyArray rubyArray = null; if (fromRuby instanceof RubyArray) { rubyArray = (RubyArray) fromRuby; } else { fillJavaObject = fromRuby.toJava(targetType); } int i = 0; if ( rubyArray != null ) { final int rubyLength = rubyArray.getLength(); for (; i < rubyLength && i < javaLength; i++) { javaArray.setWithExceptionHandling(i, rubyArray.eltInternal(i).toJava(targetType)); } } if ( i < javaLength && fillJavaObject != null ) { javaArray.fillWithExceptionHandling(i, javaLength, fillJavaObject); } return toJava; }
@JRubyMethod(name = "copy_data") public static IRubyObject copy_data(final ThreadContext context, final IRubyObject fromRuby, final IRubyObject toJava, final IRubyObject fillValue) { JavaArray javaArray = (JavaArray) toJava.dataGetStruct(); final int javaLength = javaArray.getLength(); final Class<?> targetType = javaArray.getComponentType(); Object fillJavaObject = null; if ( ! fillValue.isNil() ) fillJavaObject = fillValue.toJava(targetType); RubyArray rubyArray = null; if (fromRuby instanceof RubyArray) { rubyArray = (RubyArray) fromRuby; } else { fillJavaObject = fromRuby.toJava(targetType); } int i = 0; if ( rubyArray != null ) { final int rubyLength = rubyArray.getLength(); for (; i < rubyLength && i < javaLength; i++) { javaArray.setWithExceptionHandling(i, rubyArray.eltInternal(i).toJava(targetType)); } } if ( i < javaLength && fillJavaObject != null ) { javaArray.fillWithExceptionHandling(i, javaLength, fillJavaObject); } return toJava; }