public abstract class RealClassGenerator
extends java.lang.Object
Constructor and Description |
---|
RealClassGenerator() |
Modifier and Type | Method and Description |
---|---|
static int |
calcBaseIndex(java.lang.Class[] params,
int baseIndex) |
static void |
coerceArgumentsToRuby(SkinnyMethodAdapter mv,
java.lang.Class[] paramTypes,
int rubyIndex) |
static void |
coerceResult(SkinnyMethodAdapter mv,
java.lang.Class returnType,
boolean doReturn) |
static void |
coerceResultAndReturn(SkinnyMethodAdapter mv,
java.lang.Class returnType) |
static java.lang.Class |
createOldStyleImplClass(java.lang.Class[] superTypes,
RubyClass rubyClass,
Ruby ruby,
java.lang.String name,
ClassDefiningClassLoader classLoader) |
static java.lang.Class |
createRealImplClass(java.lang.Class superClass,
java.lang.Class<?>[] interfaces,
RubyClass rubyClass,
Ruby ruby,
java.lang.String name) |
static java.lang.Class |
defineOldStyleImplClass(Ruby ruby,
java.lang.String name,
java.lang.String[] superTypeNames,
java.util.Map<java.lang.String,java.util.List<java.lang.reflect.Method>> simpleToAll,
ClassDefiningClassLoader loader)
This variation on defineImplClass uses all the classic type coercion logic
for passing args and returning results.
|
static java.lang.Class |
defineRealImplClass(Ruby runtime,
java.lang.String name,
java.lang.Class superClass,
java.lang.String[] superTypeNames,
java.util.Map<java.lang.String,java.util.List<java.lang.reflect.Method>> simpleToAll)
This variation on defineImplClass uses all the classic type coercion logic
for passing args and returning results.
|
static void |
makeConcreteConstructorIROProxy(org.objectweb.asm.ClassWriter cw,
PositionAware initPosition,
RubyClass.ConcreteJavaReifier cjr)
Public access for IRubyObject constructor
|
static java.lang.String |
makeConcreteConstructorProxy(org.objectweb.asm.ClassWriter cw,
PositionAware initPosition,
boolean hasRuby,
RubyClass.ConcreteJavaReifier cjr,
java.lang.Class[] ctorTypes,
boolean nested)
Defines a constructor that delegates to the main switch constructor
|
static void |
makeConcreteConstructorSwitch(org.objectweb.asm.ClassWriter cw,
PositionAware initPosition,
int superpos,
boolean hasParent,
RubyClass.ConcreteJavaReifier cjr,
JavaConstructor[] constructors)
Main switch constructor.
|
static org.objectweb.asm.commons.GeneratorAdapter |
makeGenerator(SkinnyMethodAdapter m) |
public static java.lang.Class createOldStyleImplClass(java.lang.Class[] superTypes, RubyClass rubyClass, Ruby ruby, java.lang.String name, ClassDefiningClassLoader classLoader)
public static java.lang.Class createRealImplClass(java.lang.Class superClass, java.lang.Class<?>[] interfaces, RubyClass rubyClass, Ruby ruby, java.lang.String name)
public static java.lang.Class defineOldStyleImplClass(Ruby ruby, java.lang.String name, java.lang.String[] superTypeNames, java.util.Map<java.lang.String,java.util.List<java.lang.reflect.Method>> simpleToAll, ClassDefiningClassLoader loader)
ruby
- name
- superTypeNames
- simpleToAll
- public static java.lang.Class defineRealImplClass(Ruby runtime, java.lang.String name, java.lang.Class superClass, java.lang.String[] superTypeNames, java.util.Map<java.lang.String,java.util.List<java.lang.reflect.Method>> simpleToAll)
runtime
- name
- superTypeNames
- simpleToAll
- public static void coerceArgumentsToRuby(SkinnyMethodAdapter mv, java.lang.Class[] paramTypes, int rubyIndex)
public static void coerceResultAndReturn(SkinnyMethodAdapter mv, java.lang.Class returnType)
public static void coerceResult(SkinnyMethodAdapter mv, java.lang.Class returnType, boolean doReturn)
public static int calcBaseIndex(java.lang.Class[] params, int baseIndex)
public static void makeConcreteConstructorSwitch(org.objectweb.asm.ClassWriter cw, PositionAware initPosition, int superpos, boolean hasParent, RubyClass.ConcreteJavaReifier cjr, JavaConstructor[] constructors)
public static void makeConcreteConstructorIROProxy(org.objectweb.asm.ClassWriter cw, PositionAware initPosition, RubyClass.ConcreteJavaReifier cjr)
public static java.lang.String makeConcreteConstructorProxy(org.objectweb.asm.ClassWriter cw, PositionAware initPosition, boolean hasRuby, RubyClass.ConcreteJavaReifier cjr, java.lang.Class[] ctorTypes, boolean nested)
cw
- class builderinitPosition
- source code position of initializehasRuby
- If this method accepts ruby & rubyclass on the end (auto-added)ctorTypes
- signature, minus any ruby argumentsnested
- If this is a nested/secondary ruby class ([ruby <]+ ruby < java )public static org.objectweb.asm.commons.GeneratorAdapter makeGenerator(SkinnyMethodAdapter m)
Copyright © 2001-2022 JRuby. All Rights Reserved.