48 This framework avoids the primary disadvantage of using reflection |
48 This framework avoids the primary disadvantage of using reflection |
49 for this purpose, namely the loss of compile-time checking. */ |
49 for this purpose, namely the loss of compile-time checking. */ |
50 |
50 |
51 public class SharedSecrets { |
51 public class SharedSecrets { |
52 private static final Unsafe unsafe = Unsafe.getUnsafe(); |
52 private static final Unsafe unsafe = Unsafe.getUnsafe(); |
53 private static JavaUtilJarAccess javaUtilJarAccess; |
53 private static JavaAWTAccess javaAWTAccess; |
|
54 private static JavaAWTFontAccess javaAWTFontAccess; |
|
55 private static JavaBeansAccess javaBeansAccess; |
54 private static JavaLangAccess javaLangAccess; |
56 private static JavaLangAccess javaLangAccess; |
|
57 private static JavaLangInvokeAccess javaLangInvokeAccess; |
55 private static JavaLangModuleAccess javaLangModuleAccess; |
58 private static JavaLangModuleAccess javaLangModuleAccess; |
56 private static JavaLangInvokeAccess javaLangInvokeAccess; |
|
57 private static JavaLangRefAccess javaLangRefAccess; |
59 private static JavaLangRefAccess javaLangRefAccess; |
|
60 private static JavaLangReflectAccess javaLangReflectAccess; |
58 private static JavaIOAccess javaIOAccess; |
61 private static JavaIOAccess javaIOAccess; |
|
62 private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess; |
|
63 private static JavaIOFilePermissionAccess javaIOFilePermissionAccess; |
|
64 private static JavaIORandomAccessFileAccess javaIORandomAccessFileAccess; |
|
65 private static JavaObjectInputStreamAccess javaObjectInputStreamAccess; |
|
66 private static JavaObjectInputFilterAccess javaObjectInputFilterAccess; |
59 private static JavaNetInetAddressAccess javaNetInetAddressAccess; |
67 private static JavaNetInetAddressAccess javaNetInetAddressAccess; |
60 private static JavaNetHttpCookieAccess javaNetHttpCookieAccess; |
68 private static JavaNetHttpCookieAccess javaNetHttpCookieAccess; |
61 private static JavaNetUriAccess javaNetUriAccess; |
69 private static JavaNetUriAccess javaNetUriAccess; |
62 private static JavaNetURLAccess javaNetURLAccess; |
70 private static JavaNetURLAccess javaNetURLAccess; |
63 private static JavaNioAccess javaNioAccess; |
71 private static JavaNioAccess javaNioAccess; |
64 private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess; |
72 private static JavaUtilJarAccess javaUtilJarAccess; |
65 private static JavaIOFilePermissionAccess javaIOFilePermissionAccess; |
|
66 private static JavaSecurityAccess javaSecurityAccess; |
|
67 private static JavaUtilZipFileAccess javaUtilZipFileAccess; |
73 private static JavaUtilZipFileAccess javaUtilZipFileAccess; |
68 private static JavaUtilResourceBundleAccess javaUtilResourceBundleAccess; |
74 private static JavaUtilResourceBundleAccess javaUtilResourceBundleAccess; |
69 private static JavaAWTAccess javaAWTAccess; |
75 private static JavaSecurityAccess javaSecurityAccess; |
70 private static JavaAWTFontAccess javaAWTFontAccess; |
|
71 private static JavaBeansAccess javaBeansAccess; |
|
72 private static JavaObjectInputStreamAccess javaObjectInputStreamAccess; |
|
73 private static JavaObjectInputFilterAccess javaObjectInputFilterAccess; |
|
74 private static JavaIORandomAccessFileAccess javaIORandomAccessFileAccess; |
|
75 private static JavaSecuritySignatureAccess javaSecuritySignatureAccess; |
76 private static JavaSecuritySignatureAccess javaSecuritySignatureAccess; |
76 private static JavaxCryptoSealedObjectAccess javaxCryptoSealedObjectAccess; |
77 private static JavaxCryptoSealedObjectAccess javaxCryptoSealedObjectAccess; |
77 |
78 |
78 public static JavaUtilJarAccess javaUtilJarAccess() { |
79 public static JavaUtilJarAccess javaUtilJarAccess() { |
79 if (javaUtilJarAccess == null) { |
80 if (javaUtilJarAccess == null) { |
127 |
128 |
128 public static JavaLangRefAccess getJavaLangRefAccess() { |
129 public static JavaLangRefAccess getJavaLangRefAccess() { |
129 return javaLangRefAccess; |
130 return javaLangRefAccess; |
130 } |
131 } |
131 |
132 |
|
133 public static void setJavaLangReflectAccess(JavaLangReflectAccess jlra) { |
|
134 javaLangReflectAccess = jlra; |
|
135 } |
|
136 |
|
137 public static JavaLangReflectAccess getJavaLangReflectAccess() { |
|
138 return javaLangReflectAccess; |
|
139 } |
|
140 |
132 public static void setJavaNetUriAccess(JavaNetUriAccess jnua) { |
141 public static void setJavaNetUriAccess(JavaNetUriAccess jnua) { |
133 javaNetUriAccess = jnua; |
142 javaNetUriAccess = jnua; |
134 } |
143 } |
135 |
144 |
136 public static JavaNetUriAccess getJavaNetUriAccess() { |
145 public static JavaNetUriAccess getJavaNetUriAccess() { |