Top Inners Fields Constructors Methods
org.jruby.javasupport

public Class JavaUtil

extends Object
Class Inheritance
Imports
java.io.Serializable, .UnsupportedEncodingException, java.lang.invoke.MethodHandle, .MethodHandles, java.lang.reflect.Array, .Field, .InvocationTargetException, .Method, .Modifier, java.math.BigDecimal, .BigInteger, java.util.Collections, .HashMap, .IdentityHashMap, .LinkedHashSet, .List, .Map, .Set, java.util.function.Predicate, .Supplier, java.util.regex.Matcher, .Pattern, com.headius.backport9.modules.Modules, org.jcodings.Encoding, org.jruby.MetaClass, .Ruby, .RubyArray, .RubyBasicObject, .RubyBignum, .RubyBoolean, .RubyClass, .RubyEncoding, .RubyFixnum, .RubyFloat, .RubyModule, .RubyNil, .RubyNumeric, .RubyObject, .RubyProc, .RubyString, .RubyTime, org.jruby.api.Convert, org.jruby.exceptions.TypeError, org.jruby.ext.bigdecimal.RubyBigDecimal, org.jruby.java.proxies.ArrayJavaProxy, .JavaProxy, .RubyObjectHolderProxy, org.jruby.javasupport.proxy.ReifiedJavaProxy, org.jruby.runtime.Helpers, .Block, .ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.util.ByteList, .CodegenUtils, .TypeConverter

Nested and Inner Type Summary

Modifier and TypeClass and Description
public abstract static class
public static interface
public static interface
public static class

Field Summary

Modifier and TypeField and Description
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final Map<Class<T>, JavaUtil.RubyConverter>
ARRAY_CONVERTERS

Deprecated
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.JavaConverter
public static final boolean
CAN_SET_ACCESSIBLE

Deprecated
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
private static final Map<Class<T>, JavaUtil.JavaConverter>
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.JavaConverter
public static final JavaUtil.StringConverter
private static final Map<Class<T>, JavaUtil.NumericConverter<T>>
private static final JavaUtil.NumericConverter<BigInteger>
private static final JavaUtil.NumericConverter<Byte>
private static final JavaUtil.NumericConverter<Character>
private static final JavaUtil.NumericConverter<Double>
private static final JavaUtil.NumericConverter<Float>
private static final JavaUtil.NumericConverter<Integer>
private static final JavaUtil.NumericConverter<Long>
private static final JavaUtil.NumericConverter<Object>
private static final JavaUtil.NumericConverter<T>
private static final JavaUtil.NumericConverter<Short>
private static final JavaUtil.NumericConverter<T>
public static final Map<String, Class<T>>
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
private static final Pattern
public static final JavaUtil.RubyConverter
public static final Map<Class<T>, JavaUtil.RubyConverter>
RUBY_CONVERTERS

Deprecated
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter
public static final JavaUtil.RubyConverter

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static void
addRubyNamesForJavaName(final String javaName, final Method method, final String javaPropertyName, final String rubyName, final LinkedHashSet<String> nameSet)

public static <T> T

Returns:

cloned object or null (if method is not found or inaccessible)
clone
(final Object object)

Clone a Java object, assuming its class has an accessible clone method.

pack-priv static Object
clone(final Object object, final boolean silent)

public static Object
coerceJavaObjectToType(ThreadContext context, Object javaObject, Class<T> target)
Deprecated

public static Object
coerceNilToType(RubyNil nil, Class<T> target)
Deprecated

public static Object
coerceOtherToType(ThreadContext context, IRubyObject arg, Class<T> target)
Deprecated

public static Object
coerceStringToType(RubyString string, Class<T> target)
Deprecated

private static int
consume(final StringBuilder rubyName, final char[] javaName, int i)

public static Object
convertArgument(Ruby runtime, Object argument, Class<?> parameterType)
Deprecated

public static Object[]
convertArguments(final IRubyObject[] args, final Class<?>[] types)

public static Object[]
convertArguments(final IRubyObject[] args, final Class<?>[] types, int offset)

public static Object
convertArgumentToType(ThreadContext context, IRubyObject arg, Class<T> target)
Deprecated

public static IRubyObject
public static IRubyObject[]
convertJavaArrayToRuby(final Ruby runtime, final Object[] objects)

public static RubyArray<T extends IRubyObject>
public static IRubyObject
convertJavaToRuby(Ruby runtime, Object object)

public static IRubyObject
convertJavaToRuby(Ruby runtime, Object object, Class<T> javaClass)

public static IRubyObject
convertJavaToRuby(Ruby runtime, int i)

public static IRubyObject
convertJavaToRuby(Ruby runtime, long l)

public static IRubyObject
convertJavaToRuby(Ruby runtime, float f)

public static IRubyObject
convertJavaToRuby(Ruby runtime, double d)

public static IRubyObject
convertJavaToRuby(Ruby runtime, boolean b)

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

public static IRubyObject

Returns:

corresponding Ruby type, or a functional Java proxy
convertJavaToUsableRubyObject
(Ruby runtime, Object object)

Returns a usable RubyObject; for types that are not converted to Ruby native types, a Java proxy will be returned.

public static IRubyObject
public static <T> T
convertProcToInterface(ThreadContext context, RubyObject rubyObject, Class<T> targetType)

public static <T> T
convertProcToInterface(ThreadContext context, RubyBasicObject rubyObject, Class<T> targetType)

public static Object
convertRubyToJava(IRubyObject rubyObject)
Deprecated

public static Object
convertRubyToJava(IRubyObject rubyObject, Class<T> javaClass)
Deprecated

public static boolean
convertRubyToJavaBoolean(IRubyObject rubyObject)
Deprecated

public static byte
convertRubyToJavaByte(IRubyObject rubyObject)
Deprecated

public static char
convertRubyToJavaChar(IRubyObject rubyObject)
Deprecated

public static double
convertRubyToJavaDouble(IRubyObject rubyObject)
Deprecated

public static float
convertRubyToJavaFloat(IRubyObject rubyObject)
Deprecated

public static int
convertRubyToJavaInt(IRubyObject rubyObject)
Deprecated

public static long
convertRubyToJavaLong(IRubyObject rubyObject)
Deprecated

public static short
convertRubyToJavaShort(IRubyObject rubyObject)
Deprecated

public static IRubyObject[]
convertStringArrayToRuby(final Ruby runtime, final String[] strings, JavaUtil.StringConverter converter)

public static JavaUtil.RubyConverter
getArrayConverter(Class<T> type)
Deprecated

public static MethodHandle
getGetterSafe(Field field, Class<T> caller, MethodHandles.Lookup lookup)

public static MethodHandle
getHandleSafe(Method method, Class<T> caller, MethodHandles.Lookup lookup)

public static String
getJavaCasedName(String javaCasedName)

public static Class<?>
getJavaClass(final RubyModule type)
Deprecated since 10.0.

public static Class<?>

Returns:

class
getJavaClass
(ThreadContext context, final RubyModule type)

Get the associated JavaClass for a Java proxy module/class or wrapper.

public static Class<?>

Returns:

class or the result of the supplier function
getJavaClass
(final RubyModule type, final Supplier<Class<?>>
fallback if none Java class wrapper
ifNone
)

Get the associated JavaClass for a Java proxy module/class or wrapper.

public static JavaUtil.JavaConverter
public static String

Returns:

the bean property name (or null)
getJavaPropertyName
(final String
the bean method from which to extract a name
beanMethodName
)

For methods that match /(get|set|is)([A-Z0-9])(.*)/, return the "name" part of the property with leading lower-case.

public static <T> JavaUtil.NumericConverter<T>
public static Class<?>
public static String

Returns:

Ruby (under-score) cased named e.g. "get_foo_bar"
getRubyCasedName
(final String javaCasedName)

Build a Ruby name from a Java name by treating '_' as divider and successive caps as all the same word.

public static Set<String>

Returns:

method names
getRubyNamesForJavaName
(final String javaName, final List<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.

public static MethodHandle
getSetterSafe(Field field, Class<T> caller, MethodHandles.Lookup lookup)

public static RubyString
private static boolean
isDoubleFloatable(double value)

public static boolean
isDuckTypeConvertable(final Class<?> argumentType, final Class<?> targetType)

public static boolean

Returns:

true if the object is wrapping a Java object
isJavaObject
(final IRubyObject object)

Test if a passed instance is a wrapper Java object.

private static boolean
isLetterDigit(char c)

private static boolean
isLongByteable(long value)

private static boolean
isLongCharable(long value)

private static boolean
isLongIntable(long value)

private static boolean
isLongShortable(long value)

private static boolean
isLowerDigit(char c)

private static boolean
isUpperDigit(char c)

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

public static IRubyObject
java_to_ruby(Ruby runtime, IRubyObject object)
Deprecated

High-level object conversion utility function 'java_to_primitive' is the low-level version

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

public static Class<?>
primitiveToWrapper(final Class<?> type)

private static long
public static IRubyObject
ruby_to_java(final IRubyObject recv, IRubyObject object, Block unusedBlock)
Deprecated

High-level object conversion utility.

public static String
toJavaGetName(final String propertyName)

public static String
toJavaIsName(final String propertyName)

public static IRubyObject
trySimpleConversions(Ruby runtime, Object object)

public static <T> T

Returns:

java object or passed object
unwrapIfJavaObject
(final IRubyObject object)

Unwrap if the passed object is a Java object, otherwise return object.

public static <T> T
unwrapJava(final Object wrapped, final T defaultValue)

public static <T> T
unwrapJava(final IRubyObject wrapped)
Deprecated since 10.0.

public static <T> T
unwrapJava(ThreadContext context, final IRubyObject wrapped)

public static <T> T

Returns:

Java object
unwrapJavaObject
(final IRubyObject object)

Unwrap a wrapped Java object.

public static JavaObject
unwrapJavaObject(Ruby runtime, IRubyObject convertee, String errorMessage)
Deprecated

public static Object
unwrapJavaValue(final Ruby runtime, final IRubyObject object, final String errorMessage)
Deprecated

public static <T> T

Returns:

unwrapped Java (object's) value
unwrapJavaValue
(final IRubyObject

Note

Returns null if not a wrapped Java value.

object
)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait