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 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 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; }