private static void validateArgs(Ruby runtime, String targetClassName, Class superClass) { if ( Modifier.isFinal(superClass.getModifiers()) ) { throw runtime.newTypeError("cannot extend final class " + superClass.getName()); } if ( ! hasPublicOrProtectedConstructor(superClass) ) { throw runtime.newTypeError("class " + superClass.getName() + " doesn't have a public or protected constructor"); } String targetPackage = packageName(targetClassName); String packagePath = targetPackage.replace('.', '/'); if (packagePath.startsWith("java")) { throw runtime.newTypeError("cannot add classes to package " + packagePath); } final Package pkg = Package.getPackage(packagePath); if ( pkg != null && pkg.isSealed() ) { throw runtime.newTypeError("package " + pkg + " is sealed"); } }
private static void validateArgs(Ruby runtime, String targetClassName, Class superClass) { if ( Modifier.isFinal(superClass.getModifiers()) ) { throw runtime.newTypeError("cannot extend final class " + superClass.getName()); } if ( ! hasPublicOrProtectedConstructor(superClass) ) { throw runtime.newTypeError("class " + superClass.getName() + " doesn't have a public or protected constructor"); } String targetPackage = packageName(targetClassName); String packagePath = targetPackage.replace('.', '/'); if (packagePath.startsWith("java")) { throw runtime.newTypeError("cannot add classes to package " + packagePath); } final Package pkg = Package.getPackage(packagePath); if ( pkg != null && pkg.isSealed() ) { throw runtime.newTypeError("package " + pkg + " is sealed"); } }
private static void validateArgs(Ruby runtime, String targetClassName, Class superClass) { if (Modifier.isFinal(superClass.getModifiers())) { throw runtime.newTypeError("cannot extend final class " + superClass.getName()); } if(!hasPublicOrProtectedConstructors(superClass)) { throw runtime.newTypeError("class " + superClass.getName() + " doesn't have any public or private constructors"); } String targetPackage = packageName(targetClassName); String pkg = targetPackage.replace('.', '/'); if (pkg.startsWith("java")) { throw runtime.newTypeError("cannot add classes to package " + pkg); } Package p = Package.getPackage(pkg); if (p != null) { if (p.isSealed()) { throw runtime.newTypeError("package " + p + " is sealed"); } } }
private static void validateArgs(Ruby runtime, String targetClassName, Class superClass) { if (Modifier.isFinal(superClass.getModifiers())) { throw runtime.newTypeError("cannot extend final class " + superClass.getName()); } if(!hasPublicOrProtectedConstructors(superClass)) { throw runtime.newTypeError("class " + superClass.getName() + " doesn't have any public or private constructors"); } String targetPackage = packageName(targetClassName); String pkg = targetPackage.replace('.', '/'); if (pkg.startsWith("java")) { throw runtime.newTypeError("cannot add classes to package " + pkg); } Package p = Package.getPackage(pkg); if (p != null) { if (p.isSealed()) { throw runtime.newTypeError("package " + p + " is sealed"); } } }