public static Class createOldStyleImplClass(Class[] superTypes, RubyClass rubyClass, Ruby ruby, String name, ClassDefiningClassLoader classLoader) { String[] superTypeNames = new String[superTypes.length]; Map<String, List<Method>> simpleToAll = buildSimpleToAllMap(superTypes, superTypeNames); Class newClass = defineOldStyleImplClass(ruby, name, superTypeNames, simpleToAll, classLoader); return newClass; }
public static Class createOldStyleImplClass(Class[] superTypes, RubyClass rubyClass, Ruby ruby, String name, ClassDefiningClassLoader classLoader) { String[] superTypeNames = new String[superTypes.length]; // interfaces now do have a convention that they only override an interface default method // if a Ruby method (stub) is present in the implementing Ruby class : Map<String, List<Method>> simpleToAll = buildSimpleToAllMap(superTypes, superTypeNames, rubyClass); Class newClass = defineOldStyleImplClass(ruby, name, superTypeNames, simpleToAll, classLoader); return newClass; }
public static Class createRealImplClass(Class superClass, Class[] interfaces, RubyClass rubyClass, Ruby ruby, String name) { String[] superTypeNames = new String[interfaces.length]; // interfaces now do have a convention that they only override an interface default method // if a Ruby method (stub) is present in the implementing Ruby class : Map<String, List<Method>> simpleToAll = buildSimpleToAllMap(interfaces, superTypeNames, rubyClass); Class newClass = defineRealImplClass(ruby, name, superClass, superTypeNames, simpleToAll); // Confirm all interfaces got implemented for (Class ifc : interfaces) { assert ifc.isAssignableFrom(newClass); } return newClass; }
public static Class createOldStyleImplClass(Class[] superTypes, RubyClass rubyClass, Ruby ruby, String name, ClassDefiningClassLoader classLoader) { String[] superTypeNames = new String[superTypes.length]; // interfaces now do have a convention that they only override an interface default method // if a Ruby method (stub) is present in the implementing Ruby class : Map<String, List<Method>> simpleToAll = buildSimpleToAllMap(superTypes, superTypeNames, rubyClass); Class newClass = defineOldStyleImplClass(ruby, name, superTypeNames, simpleToAll, classLoader); return newClass; }
public static Class createRealImplClass(Class superClass, Class[] interfaces, RubyClass rubyClass, Ruby ruby, String name) { String[] superTypeNames = new String[interfaces.length]; // interfaces now do have a convention that they only override an interface default method // if a Ruby method (stub) is present in the implementing Ruby class : Map<String, List<Method>> simpleToAll = buildSimpleToAllMap(interfaces, superTypeNames, rubyClass); Class newClass = defineRealImplClass(ruby, name, superClass, superTypeNames, simpleToAll); // Confirm all interfaces got implemented for (Class ifc : interfaces) { assert ifc.isAssignableFrom(newClass); } return newClass; }
public static Class createOldStyleImplClass(Class[] superTypes, RubyClass rubyClass, Ruby ruby, String name, ClassDefiningClassLoader classLoader) { String[] superTypeNames = new String[superTypes.length]; Map<String, List<Method>> simpleToAll = buildSimpleToAllMap(superTypes, superTypeNames); Class newClass = defineOldStyleImplClass(ruby, name, superTypeNames, simpleToAll, classLoader); return newClass; }
public static Class createRealImplClass(Class superClass, Class[] interfaces, RubyClass rubyClass, Ruby ruby, String name) { String[] superTypeNames = new String[interfaces.length]; Map<String, List<Method>> simpleToAll = buildSimpleToAllMap(interfaces, superTypeNames); Class newClass = defineRealImplClass(ruby, name, superClass, superTypeNames, simpleToAll); return newClass; }
public static Class createRealImplClass(Class superClass, Class[] interfaces, RubyClass rubyClass, Ruby ruby, String name) { String[] superTypeNames = new String[interfaces.length]; Map<String, List<Method>> simpleToAll = buildSimpleToAllMap(interfaces, superTypeNames); Class newClass = defineRealImplClass(ruby, name, superClass, superTypeNames, simpleToAll); return newClass; }