org.jruby.javasupport
Class JavaUtil

java.lang.Object
  extended by org.jruby.javasupport.JavaUtil

public class JavaUtil
extends java.lang.Object


Nested Class Summary
static interface JavaUtil.JavaConverter
           
static interface JavaUtil.RubyConverter
           
 
Field Summary
static JavaUtil.RubyConverter ARRAY_BIGDECIMAL_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_BIGINTEGER_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_BOOLEAN_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_BYTE_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_CHAR_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_CLASS_CONVERTER
           
static java.util.Map<java.lang.Class,JavaUtil.RubyConverter> ARRAY_CONVERTERS
           
static JavaUtil.RubyConverter ARRAY_DOUBLE_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_FLOAT_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_INT_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_LONG_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_OBJECT_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_SHORT_CONVERTER
           
static JavaUtil.RubyConverter ARRAY_STRING_CONVERTER
           
static JavaUtil.JavaConverter BYTELIST_CONVERTER
           
static JavaUtil.JavaConverter JAVA_BIGINTEGER_CONVERTER
           
static JavaUtil.JavaConverter JAVA_BOOLEAN_CONVERTER
           
static JavaUtil.JavaConverter JAVA_BOOLEANPRIM_CONVERTER
           
static JavaUtil.JavaConverter JAVA_BYTE_CONVERTER
           
static JavaUtil.JavaConverter JAVA_BYTEPRIM_CONVERTER
           
static JavaUtil.JavaConverter JAVA_CHAR_CONVERTER
           
static JavaUtil.JavaConverter JAVA_CHARPRIM_CONVERTER
           
static JavaUtil.JavaConverter JAVA_DEFAULT_CONVERTER
           
static JavaUtil.JavaConverter JAVA_DOUBLE_CONVERTER
           
static JavaUtil.JavaConverter JAVA_DOUBLEPRIM_CONVERTER
           
static JavaUtil.JavaConverter JAVA_FLOAT_CONVERTER
           
static JavaUtil.JavaConverter JAVA_FLOATPRIM_CONVERTER
           
static JavaUtil.JavaConverter JAVA_INT_CONVERTER
           
static JavaUtil.JavaConverter JAVA_INTPRIM_CONVERTER
           
static JavaUtil.JavaConverter JAVA_LONG_CONVERTER
           
static JavaUtil.JavaConverter JAVA_LONGPRIM_CONVERTER
           
static JavaUtil.JavaConverter JAVA_SHORT_CONVERTER
           
static JavaUtil.JavaConverter JAVA_SHORTPRIM_CONVERTER
           
static JavaUtil.JavaConverter JAVA_STRING_CONVERTER
           
static JavaUtil.RubyConverter RUBY_BOOLEAN_CONVERTER
           
static JavaUtil.RubyConverter RUBY_BYTE_CONVERTER
           
static JavaUtil.RubyConverter RUBY_CHAR_CONVERTER
           
static java.util.Map<java.lang.Class,JavaUtil.RubyConverter> RUBY_CONVERTERS
           
static JavaUtil.RubyConverter RUBY_DOUBLE_CONVERTER
           
static JavaUtil.RubyConverter RUBY_FLOAT_CONVERTER
           
static JavaUtil.RubyConverter RUBY_INTEGER_CONVERTER
           
static JavaUtil.RubyConverter RUBY_LONG_CONVERTER
           
static JavaUtil.RubyConverter RUBY_SHORT_CONVERTER
           
 
Constructor Summary
JavaUtil()
           
 
Method Summary
static java.lang.Object coerceBignumToType(RubyBignum bignum, java.lang.Class target)
           
static java.lang.Object coerceFixnumToType(RubyFixnum fixnum, java.lang.Class target)
           
static java.lang.Object coerceFloatToType(RubyFloat flote, java.lang.Class target)
           
static java.lang.Object coerceJavaObjectToType(ThreadContext context, java.lang.Object javaObject, java.lang.Class target)
           
static java.lang.Object coerceNilToType(RubyNil nil, java.lang.Class target)
           
static java.lang.Object coerceNumericToType(RubyNumeric numeric, java.lang.Class target)
           
static java.lang.Object coerceOtherToType(ThreadContext context, IRubyObject arg, java.lang.Class target)
           
static java.lang.Object coerceStringToType(RubyString string, java.lang.Class target)
           
static java.lang.Object convertArgument(Ruby runtime, java.lang.Object argument, java.lang.Class<?> parameterType)
           
static java.lang.Object convertArgumentToType(ThreadContext context, IRubyObject arg, java.lang.Class target)
           
static IRubyObject convertJavaArrayElementToRuby(Ruby runtime, JavaUtil.JavaConverter converter, java.lang.Object array, int i)
           
static IRubyObject[] convertJavaArrayToRuby(Ruby runtime, java.lang.Object[] objects)
           
static IRubyObject convertJavaToRuby(Ruby runtime, boolean b)
           
static IRubyObject convertJavaToRuby(Ruby runtime, double d)
           
static IRubyObject convertJavaToRuby(Ruby runtime, float f)
           
static IRubyObject convertJavaToRuby(Ruby runtime, int i)
           
static IRubyObject convertJavaToRuby(Ruby runtime, JavaUtil.JavaConverter converter, java.lang.Object object)
           
static IRubyObject convertJavaToRuby(Ruby runtime, long l)
           
static IRubyObject convertJavaToRuby(Ruby runtime, java.lang.Object object)
          Converts object to the corresponding Ruby type; however, for non-primitives, a JavaObject instance is returned.
static IRubyObject convertJavaToRuby(Ruby runtime, java.lang.Object object, java.lang.Class javaClass)
           
static IRubyObject convertJavaToUsableRubyObject(Ruby runtime, java.lang.Object object)
          Returns a usable RubyObject; for types that are not converted to Ruby native types, a Java proxy will be returned.
static java.lang.Object convertProcToInterface(ThreadContext context, RubyObject rubyObject, java.lang.Class target)
           
static java.lang.Object convertRubyToJava(IRubyObject rubyObject)
           
static java.lang.Object convertRubyToJava(IRubyObject rubyObject, java.lang.Class javaClass)
           
static boolean convertRubyToJavaBoolean(IRubyObject rubyObject)
           
static byte convertRubyToJavaByte(IRubyObject rubyObject)
           
static char convertRubyToJavaChar(IRubyObject rubyObject)
           
static double convertRubyToJavaDouble(IRubyObject rubyObject)
           
static float convertRubyToJavaFloat(IRubyObject rubyObject)
           
static int convertRubyToJavaInt(IRubyObject rubyObject)
           
static long convertRubyToJavaLong(IRubyObject rubyObject)
           
static short convertRubyToJavaShort(IRubyObject rubyObject)
           
static JavaUtil.RubyConverter getArrayConverter(java.lang.Class type)
           
static java.lang.String getJavaCasedName(java.lang.String javaCasedName)
           
static JavaUtil.JavaConverter getJavaConverter(java.lang.Class clazz)
           
static java.lang.String getJavaPropertyName(java.lang.String beanMethodName)
           
static java.lang.String getRubyCasedName(java.lang.String javaCasedName)
           
static java.util.Set<java.lang.String> getRubyNamesForJavaName(java.lang.String javaName, java.util.List<java.lang.reflect.Method> methods)
          Given a simple Java method name and the Java Method objects that represent all its overloads, add to the given nameSet all possible Ruby names that would be valid.
static boolean isDuckTypeConvertable(java.lang.Class providedArgumentType, java.lang.Class parameterType)
           
static boolean isJavaObject(IRubyObject candidate)
           
static IRubyObject java_to_primitive(IRubyObject recv, IRubyObject object, Block unusedBlock)
           
static IRubyObject java_to_ruby(Ruby runtime, IRubyObject object)
          High-level object conversion utility function 'java_to_primitive' is the low-level version
static IRubyObject primitive_to_java(IRubyObject recv, IRubyObject object, Block unusedBlock)
           
static java.lang.Class<?> primitiveToWrapper(java.lang.Class<?> type)
           
static IRubyObject ruby_to_java(IRubyObject recv, IRubyObject object, Block unusedBlock)
          High-level object conversion utility.
static java.lang.Object unwrapJavaObject(IRubyObject object)
           
static JavaObject unwrapJavaObject(Ruby runtime, IRubyObject convertee, java.lang.String errorMessage)
           
static java.lang.Object unwrapJavaValue(Ruby runtime, IRubyObject obj, java.lang.String errorMessage)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RUBY_BOOLEAN_CONVERTER

public static final JavaUtil.RubyConverter RUBY_BOOLEAN_CONVERTER

RUBY_BYTE_CONVERTER

public static final JavaUtil.RubyConverter RUBY_BYTE_CONVERTER

RUBY_SHORT_CONVERTER

public static final JavaUtil.RubyConverter RUBY_SHORT_CONVERTER

RUBY_CHAR_CONVERTER

public static final JavaUtil.RubyConverter RUBY_CHAR_CONVERTER

RUBY_INTEGER_CONVERTER

public static final JavaUtil.RubyConverter RUBY_INTEGER_CONVERTER

RUBY_LONG_CONVERTER

public static final JavaUtil.RubyConverter RUBY_LONG_CONVERTER

RUBY_FLOAT_CONVERTER

public static final JavaUtil.RubyConverter RUBY_FLOAT_CONVERTER

RUBY_DOUBLE_CONVERTER

public static final JavaUtil.RubyConverter RUBY_DOUBLE_CONVERTER

ARRAY_BOOLEAN_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_BOOLEAN_CONVERTER

ARRAY_BYTE_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_BYTE_CONVERTER

ARRAY_SHORT_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_SHORT_CONVERTER

ARRAY_CHAR_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_CHAR_CONVERTER

ARRAY_INT_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_INT_CONVERTER

ARRAY_LONG_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_LONG_CONVERTER

ARRAY_FLOAT_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_FLOAT_CONVERTER

ARRAY_DOUBLE_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_DOUBLE_CONVERTER

ARRAY_OBJECT_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_OBJECT_CONVERTER

ARRAY_CLASS_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_CLASS_CONVERTER

ARRAY_STRING_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_STRING_CONVERTER

ARRAY_BIGINTEGER_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_BIGINTEGER_CONVERTER

ARRAY_BIGDECIMAL_CONVERTER

public static final JavaUtil.RubyConverter ARRAY_BIGDECIMAL_CONVERTER

RUBY_CONVERTERS

public static final java.util.Map<java.lang.Class,JavaUtil.RubyConverter> RUBY_CONVERTERS

ARRAY_CONVERTERS

public static final java.util.Map<java.lang.Class,JavaUtil.RubyConverter> ARRAY_CONVERTERS

JAVA_DEFAULT_CONVERTER

public static final JavaUtil.JavaConverter JAVA_DEFAULT_CONVERTER

JAVA_BOOLEAN_CONVERTER

public static final JavaUtil.JavaConverter JAVA_BOOLEAN_CONVERTER

JAVA_FLOAT_CONVERTER

public static final JavaUtil.JavaConverter JAVA_FLOAT_CONVERTER

JAVA_DOUBLE_CONVERTER

public static final JavaUtil.JavaConverter JAVA_DOUBLE_CONVERTER

JAVA_CHAR_CONVERTER

public static final JavaUtil.JavaConverter JAVA_CHAR_CONVERTER

JAVA_BYTE_CONVERTER

public static final JavaUtil.JavaConverter JAVA_BYTE_CONVERTER

JAVA_SHORT_CONVERTER

public static final JavaUtil.JavaConverter JAVA_SHORT_CONVERTER

JAVA_INT_CONVERTER

public static final JavaUtil.JavaConverter JAVA_INT_CONVERTER

JAVA_LONG_CONVERTER

public static final JavaUtil.JavaConverter JAVA_LONG_CONVERTER

JAVA_BOOLEANPRIM_CONVERTER

public static final JavaUtil.JavaConverter JAVA_BOOLEANPRIM_CONVERTER

JAVA_FLOATPRIM_CONVERTER

public static final JavaUtil.JavaConverter JAVA_FLOATPRIM_CONVERTER

JAVA_DOUBLEPRIM_CONVERTER

public static final JavaUtil.JavaConverter JAVA_DOUBLEPRIM_CONVERTER

JAVA_CHARPRIM_CONVERTER

public static final JavaUtil.JavaConverter JAVA_CHARPRIM_CONVERTER

JAVA_BYTEPRIM_CONVERTER

public static final JavaUtil.JavaConverter JAVA_BYTEPRIM_CONVERTER

JAVA_SHORTPRIM_CONVERTER

public static final JavaUtil.JavaConverter JAVA_SHORTPRIM_CONVERTER

JAVA_INTPRIM_CONVERTER

public static final JavaUtil.JavaConverter JAVA_INTPRIM_CONVERTER

JAVA_LONGPRIM_CONVERTER

public static final JavaUtil.JavaConverter JAVA_LONGPRIM_CONVERTER

JAVA_STRING_CONVERTER

public static final JavaUtil.JavaConverter JAVA_STRING_CONVERTER

BYTELIST_CONVERTER

public static final JavaUtil.JavaConverter BYTELIST_CONVERTER

JAVA_BIGINTEGER_CONVERTER

public static final JavaUtil.JavaConverter JAVA_BIGINTEGER_CONVERTER
Constructor Detail

JavaUtil

public JavaUtil()
Method Detail

convertRubyToJava

public static java.lang.Object convertRubyToJava(IRubyObject rubyObject)

getArrayConverter

public static JavaUtil.RubyConverter getArrayConverter(java.lang.Class type)

convertRubyToJavaByte

public static byte convertRubyToJavaByte(IRubyObject rubyObject)

convertRubyToJavaShort

public static short convertRubyToJavaShort(IRubyObject rubyObject)

convertRubyToJavaChar

public static char convertRubyToJavaChar(IRubyObject rubyObject)

convertRubyToJavaInt

public static int convertRubyToJavaInt(IRubyObject rubyObject)

convertRubyToJavaLong

public static long convertRubyToJavaLong(IRubyObject rubyObject)

convertRubyToJavaFloat

public static float convertRubyToJavaFloat(IRubyObject rubyObject)

convertRubyToJavaDouble

public static double convertRubyToJavaDouble(IRubyObject rubyObject)

convertRubyToJavaBoolean

public static boolean convertRubyToJavaBoolean(IRubyObject rubyObject)

convertRubyToJava

public static java.lang.Object convertRubyToJava(IRubyObject rubyObject,
                                                 java.lang.Class javaClass)

convertJavaArrayToRuby

public static IRubyObject[] convertJavaArrayToRuby(Ruby runtime,
                                                   java.lang.Object[] objects)

getJavaConverter

public static JavaUtil.JavaConverter getJavaConverter(java.lang.Class clazz)

convertJavaToRuby

public static IRubyObject convertJavaToRuby(Ruby runtime,
                                            java.lang.Object object)
Converts object to the corresponding Ruby type; however, for non-primitives, a JavaObject instance is returned. This must be subsequently wrapped by calling one of Java.wrap, Java.java_to_ruby, Java.new_instance_for, or Java.getInstance, depending on context.

Parameters:
runtime -
object -
Returns:
corresponding Ruby type, or a JavaObject instance

convertJavaToRuby

public static IRubyObject convertJavaToRuby(Ruby runtime,
                                            int i)

convertJavaToRuby

public static IRubyObject convertJavaToRuby(Ruby runtime,
                                            long l)

convertJavaToRuby

public static IRubyObject convertJavaToRuby(Ruby runtime,
                                            float f)

convertJavaToRuby

public static IRubyObject convertJavaToRuby(Ruby runtime,
                                            double d)

convertJavaToRuby

public static IRubyObject convertJavaToRuby(Ruby runtime,
                                            boolean b)

convertJavaToRuby

public static IRubyObject convertJavaToRuby(Ruby runtime,
                                            java.lang.Object object,
                                            java.lang.Class javaClass)

convertJavaToUsableRubyObject

public static IRubyObject convertJavaToUsableRubyObject(Ruby runtime,
                                                        java.lang.Object object)
Returns a usable RubyObject; for types that are not converted to Ruby native types, a Java proxy will be returned.

Parameters:
runtime -
object -
Returns:
corresponding Ruby type, or a functional Java proxy

convertJavaToRuby

public static IRubyObject convertJavaToRuby(Ruby runtime,
                                            JavaUtil.JavaConverter converter,
                                            java.lang.Object object)

convertJavaArrayElementToRuby

public static IRubyObject convertJavaArrayElementToRuby(Ruby runtime,
                                                        JavaUtil.JavaConverter converter,
                                                        java.lang.Object array,
                                                        int i)

primitiveToWrapper

public static java.lang.Class<?> primitiveToWrapper(java.lang.Class<?> type)

convertArgument

public static java.lang.Object convertArgument(Ruby runtime,
                                               java.lang.Object argument,
                                               java.lang.Class<?> parameterType)

isDuckTypeConvertable

public static boolean isDuckTypeConvertable(java.lang.Class providedArgumentType,
                                            java.lang.Class parameterType)

convertProcToInterface

public static java.lang.Object convertProcToInterface(ThreadContext context,
                                                      RubyObject rubyObject,
                                                      java.lang.Class target)

convertArgumentToType

public static java.lang.Object convertArgumentToType(ThreadContext context,
                                                     IRubyObject arg,
                                                     java.lang.Class target)

coerceJavaObjectToType

public static java.lang.Object coerceJavaObjectToType(ThreadContext context,
                                                      java.lang.Object javaObject,
                                                      java.lang.Class target)

coerceNilToType

public static java.lang.Object coerceNilToType(RubyNil nil,
                                               java.lang.Class target)

coerceFixnumToType

public static java.lang.Object coerceFixnumToType(RubyFixnum fixnum,
                                                  java.lang.Class target)

coerceBignumToType

public static java.lang.Object coerceBignumToType(RubyBignum bignum,
                                                  java.lang.Class target)

coerceFloatToType

public static java.lang.Object coerceFloatToType(RubyFloat flote,
                                                 java.lang.Class target)

coerceNumericToType

public static java.lang.Object coerceNumericToType(RubyNumeric numeric,
                                                   java.lang.Class target)

coerceStringToType

public static java.lang.Object coerceStringToType(RubyString string,
                                                  java.lang.Class target)

coerceOtherToType

public static java.lang.Object coerceOtherToType(ThreadContext context,
                                                 IRubyObject arg,
                                                 java.lang.Class target)

primitive_to_java

public static IRubyObject primitive_to_java(IRubyObject recv,
                                            IRubyObject object,
                                            Block unusedBlock)

java_to_ruby

public static IRubyObject java_to_ruby(Ruby runtime,
                                       IRubyObject object)
High-level object conversion utility function 'java_to_primitive' is the low-level version


ruby_to_java

public static IRubyObject ruby_to_java(IRubyObject recv,
                                       IRubyObject object,
                                       Block unusedBlock)
High-level object conversion utility.


java_to_primitive

public static IRubyObject java_to_primitive(IRubyObject recv,
                                            IRubyObject object,
                                            Block unusedBlock)

isJavaObject

public static boolean isJavaObject(IRubyObject candidate)

unwrapJavaObject

public static java.lang.Object unwrapJavaObject(IRubyObject object)

getJavaPropertyName

public static java.lang.String getJavaPropertyName(java.lang.String beanMethodName)

getRubyCasedName

public static java.lang.String getRubyCasedName(java.lang.String javaCasedName)

getJavaCasedName

public static java.lang.String getJavaCasedName(java.lang.String javaCasedName)

getRubyNamesForJavaName

public static java.util.Set<java.lang.String> getRubyNamesForJavaName(java.lang.String javaName,
                                                                      java.util.List<java.lang.reflect.Method> methods)
Given a simple Java method name and the Java Method objects that represent all its overloads, add to the given nameSet all possible Ruby names that would be valid.

Parameters:
simpleName -
nameSet -
methods -

unwrapJavaObject

public static JavaObject unwrapJavaObject(Ruby runtime,
                                          IRubyObject convertee,
                                          java.lang.String errorMessage)

unwrapJavaValue

public static java.lang.Object unwrapJavaValue(Ruby runtime,
                                               IRubyObject obj,
                                               java.lang.String errorMessage)


Copyright © 2002-2007 JRuby Team. All Rights Reserved.