< prev index next >
src/java.base/share/classes/java/lang/System.java
Print this page
rev 58760 : 8238358: Implementation of JEP 371: Hidden Classes
Reviewed-by: alanb, cjplummer, coleenp, dholmes, dlong, forax, jlahoda, psandoz, plevart, vromero
Contributed-by: mandy.chung@oracle.com, lois.foltan@oracle.com, david.holmes@oracle.com, harold.seigel@oracle.com, serguei.spitsyn@oracle.com, alex.buckley@oracle.com, jamsheed.c.m@oracle.com, jan.lahoda@oracle.com, amy.lu@oracle.com
@@ -33,10 +33,12 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.lang.annotation.Annotation;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodType;
import java.lang.module.ModuleDescriptor;
import java.lang.reflect.Constructor;
import java.lang.reflect.Executable;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -2173,10 +2175,14 @@
return cl.createOrGetClassLoaderValueMap();
}
public Class<?> defineClass(ClassLoader loader, String name, byte[] b, ProtectionDomain pd, String source) {
return ClassLoader.defineClass1(loader, name, b, 0, b.length, pd, source);
}
+ public Class<?> defineClass(ClassLoader loader, Class<?> lookup, String name, byte[] b, ProtectionDomain pd,
+ boolean initialize, int flags, Object classData) {
+ return ClassLoader.defineClass0(loader, lookup, name, b, 0, b.length, pd, initialize, flags, classData);
+ }
public Class<?> findBootstrapClassOrNull(ClassLoader cl, String name) {
return cl.findBootstrapClassOrNull(name);
}
public Package definePackage(ClassLoader cl, String name, Module module) {
return cl.definePackage(name, module);
@@ -2255,8 +2261,20 @@
}
public void setCause(Throwable t, Throwable cause) {
t.setCause(cause);
}
+
+ public ProtectionDomain protectionDomain(Class<?> c) {
+ return c.protectionDomain();
+ }
+
+ public MethodHandle stringConcatHelper(String name, MethodType methodType) {
+ return StringConcatHelper.lookupStatic(name, methodType);
+ }
+
+ public Object classData(Class<?> c) {
+ return c.getClassData();
+ }
});
}
}
< prev index next >