org.checkerframework.checker.signature.jdk.astub Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of checker Show documentation
Show all versions of checker Show documentation
The Checker Framework enhances Java's type system to
make it more powerful and useful. This lets software developers
detect and prevent errors in their Java programs.
The Checker Framework includes compiler plug-ins ("checkers")
that find bugs or verify their absence. It also permits you to
write your own compiler plug-ins.
import org.checkerframework.checker.signature.qual.*;
package java.lang;
class Class implements Serializable, GenericDeclaration, Type, AnnotatedElement {
Class forName(@ClassGetName String className) throws ClassNotFoundException;
Class forName(@ClassGetName String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException;
@ClassGetName String getName();
@ClassGetName String name;
@ClassGetName String getName0();
@ClassGetSimpleName String getSimpleName();
@FullyQualifiedName String getCanonicalName();
}
// Would BinaryNameForNonArray be more accurate for some of these methods?
class ClassLoader {
protected Class loadClass(@BinaryName String name, boolean resolve) throws ClassNotFoundException;
Class loadClass(@BinaryName String name) throws ClassNotFoundException;
protected Class findClass(@BinaryName String name) throws ClassNotFoundException;
@SuppressWarnings("signature")
protected Class defineClass(byte[] b, int off, int len) throws ClassFormatError;
protected Class defineClass(@BinaryName String name, byte[] b, int off, int len) throws ClassFormatError;
protected Class defineClass(@BinaryName String name, byte[] b, int off, int len, ProtectionDomain protectionDomain) throws ClassFormatError;
protected Class defineClass(@BinaryName String name, ByteBuffer b, ProtectionDomain protectionDomain) throws ClassFormatError;
protected Class findSystemClass(@BinaryName String name) throws ClassNotFoundException;
protected Class findLoadedClass(@BinaryName String name);
protected Package definePackage(@FullyQualifiedName String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase) throws IllegalArgumentException;
class SystemClassLoaderAction implements PrivilegedExceptionAction {
public ClassLoader run() throws Exception {
@SuppressWarnings("signature")
@BinaryName String cls = System.getProperty("java.system.class.loader");
if (cls == null) {
return parent;
}
Constructor ctor = Class.forName(cls, true, parent)
.getDeclaredConstructor(new Class[] { ClassLoader.class });
ClassLoader sys = (ClassLoader) ctor.newInstance(
new Object[] { parent });
Thread.currentThread().setContextClassLoader(sys);
return sys;
}
}
}
class Package implements AnnotatedElement {
@FullyQualifiedName String getName();
Package(@FullyQualifiedName String name, String spectitle, String specversion, String specvendor, String impltitle, String implversion, String implvendor, URL sealbase, ClassLoader loader);
}
class StackTraceElement {
public StackTraceElement(@FullyQualifiedName String declaringClass, String methodName, String fileName, int lineNumber);
public @FullyQualifiedName String getClassName();
}
class String {
public @PolySignature String intern(@PolySignature String this);
}
class TypeNotPresentException extends RuntimeException {
public TypeNotPresentException(@FullyQualifiedName String typeName, Throwable cause);
public @FullyQualifiedName String typeName();
}
package java.lang.instrument;
class ClassFileTransformer {
byte[] transform(ClassLoader loader,
@InternalForm String className,
Class classBeingRedefined,
ProtectionDomain protectionDomain,
byte[] classfileBuffer);
}
package java.lang.management;
enum PlatformComponent {
@SuppressWarnings("signature")
CLASS_LOADING(
"java.lang.management.ClassLoadingMXBean",
"java.lang", "ClassLoading", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
return Collections.singletonList(ManagementFactoryHelper.getClassLoadingMXBean());
}
}),
@SuppressWarnings("signature")
COMPILATION(
"java.lang.management.CompilationMXBean",
"java.lang", "Compilation", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
CompilationMXBean m = ManagementFactoryHelper.getCompilationMXBean();
if (m == null) {
return Collections.emptyList();
} else {
return Collections.singletonList(m);
}
}
}),
@SuppressWarnings("signature")
MEMORY(
"java.lang.management.MemoryMXBean",
"java.lang", "Memory", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
return Collections.singletonList(ManagementFactoryHelper.getMemoryMXBean());
}
}),
@SuppressWarnings("signature")
GARBAGE_COLLECTOR(
"java.lang.management.GarbageCollectorMXBean",
"java.lang", "GarbageCollector", keyProperties("name"),
new MXBeanFetcher() {
public List getMXBeans() {
return ManagementFactoryHelper.
getGarbageCollectorMXBeans();
}
}),
@SuppressWarnings("signature")
MEMORY_MANAGER(
"java.lang.management.MemoryManagerMXBean",
"java.lang", "MemoryManager", keyProperties("name"),
new MXBeanFetcher() {
public List getMXBeans() {
return ManagementFactoryHelper.getMemoryManagerMXBeans();
}
},
GARBAGE_COLLECTOR),
@SuppressWarnings("signature")
MEMORY_POOL(
"java.lang.management.MemoryPoolMXBean",
"java.lang", "MemoryPool", keyProperties("name"),
new MXBeanFetcher() {
public List getMXBeans() {
return ManagementFactoryHelper.getMemoryPoolMXBeans();
}
}),
@SuppressWarnings("signature")
OPERATING_SYSTEM(
"java.lang.management.OperatingSystemMXBean",
"java.lang", "OperatingSystem", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
return Collections.singletonList(ManagementFactoryHelper.getOperatingSystemMXBean());
}
}),
@SuppressWarnings("signature")
RUNTIME(
"java.lang.management.RuntimeMXBean",
"java.lang", "Runtime", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
return Collections.singletonList(ManagementFactoryHelper.getRuntimeMXBean());
}
}),
@SuppressWarnings("signature")
THREADING(
"java.lang.management.ThreadMXBean",
"java.lang", "Threading", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
return Collections.singletonList(ManagementFactoryHelper.getThreadMXBean());
}
}),
@SuppressWarnings("signature")
LOGGING(
"java.util.logging.PlatformLoggingMXBean",
"java.util.logging", "Logging", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
return ManagementFactoryHelper.getLoggingMXBean();
}
}),
@SuppressWarnings("signature")
BUFFER_POOL(
"java.nio.BufferPoolMXBean",
"java.nio", "BufferPool", keyProperties("name"),
new MXBeanFetcher() {
public List getMXBeans() {
return ManagementFactoryHelper.getBufferPoolMXBeans();
}
}),
@SuppressWarnings("signature")
SUN_GARBAGE_COLLECTOR(
"com.sun.management.GarbageCollectorMXBean",
"java.lang", "GarbageCollector", keyProperties("name"),
new MXBeanFetcher() {
public List getMXBeans() {
return getGcMXBeanList(com.sun.management.GarbageCollectorMXBean.class);
}
}),
@SuppressWarnings("signature")
SUN_OPERATING_SYSTEM(
"com.sun.management.OperatingSystemMXBean",
"java.lang", "OperatingSystem", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
return getOSMXBeanList(com.sun.management.OperatingSystemMXBean.class);
}
}),
@SuppressWarnings("signature")
SUN_UNIX_OPERATING_SYSTEM(
"com.sun.management.UnixOperatingSystemMXBean",
"java.lang", "OperatingSystem", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
return getOSMXBeanList(com.sun.management.UnixOperatingSystemMXBean.class);
}
}),
@SuppressWarnings("signature")
HOTSPOT_DIAGNOSTIC(
"com.sun.management.HotSpotDiagnosticMXBean",
"com.sun.management", "HotSpotDiagnostic", defaultKeyProperties(),
new MXBeanFetcher() {
public List getMXBeans() {
return Collections.singletonList(ManagementFactoryHelper.getDiagnosticMXBean());
}
});
@BinaryName String getMXBeanInterfaceName();
}
public class MonitorInfo extends LockInfo {
public MonitorInfo(@BinaryName String className, int identityHashCode, int stackDepth, StackTraceElement stackFrame);
public static MonitorInfo from(CompositeData cd) {
if (cd == null) {
return null;
}
if (cd instanceof MonitorInfoCompositeData) {
return ((MonitorInfoCompositeData) cd).getMonitorInfo();
} else {
MonitorInfoCompositeData.validateCompositeData(cd);
/* This might be a potentially bug! I have put the annotation so that everything compiles
however, there is no information in the documentation of MonitorInfoCompositeData
class that getClassName returns a @FullyQualifiedName. */
// @SuppressWarnings("signature")
/* This comes from sun.management, so I presume it is true. */
@SuppressWarnings("signature")
@BinaryName String className = MonitorInfoCompositeData.getClassName(cd);
int identityHashCode = MonitorInfoCompositeData.getIdentityHashCode(cd);
int stackDepth = MonitorInfoCompositeData.getLockedStackDepth(cd);
StackTraceElement stackFrame = MonitorInfoCompositeData.getLockedStackFrame(cd);
return new MonitorInfo(className,
identityHashCode,
stackDepth,
stackFrame);
}
}
}
public class LockInfo {
public LockInfo(@ClassGetName String className, int identityHashCode);
public @ClassGetName String getClassName();
}
package java.util;
class ResourceBundle {
ResourceBundle getBundle(@BinaryName String baseName);
ResourceBundle getBundle(@BinaryName String baseName, Control control);
ResourceBundle getBundle(@BinaryName String baseName, Locale locale);
ResourceBundle getBundle(@BinaryName String baseName, Locale targetLocale, Control control);
ResourceBundle getBundle(@BinaryName String baseName, Locale locale, ClassLoader loader);
ResourceBundle getBundle(@BinaryName String baseName, Locale targetLocale, ClassLoader loader, Control control);
class Control {
public @BinaryName String toBundleName(@BinaryName String baseName, Locale locale) {
if (locale == Locale.ROOT) {
return baseName;
}
String language = locale.getLanguage();
String country = locale.getCountry();
String variant = locale.getVariant();
if (language == "" && country == "" && variant == "") {
return baseName;
}
StringBuilder sb = new StringBuilder(baseName);
sb.append('_');
if (variant != "") {
sb.append(language).append('_').append(country).append('_').append(variant);
} else if (country != "") {
sb.append(language).append('_').append(country);
} else {
sb.append(language);
}
/* I have to do this to bypass the annotation of toString() method of
StringBuilder (which would be wrong). */
@SuppressWarnings("signature")
@BinaryName String result = sb.toString();
return result;
}
public ResourceBundle newBundle(@BinaryName String baseName, Locale locale, String format, ClassLoader loader, boolean reload) throws IllegalAccessException, InstantiationException, IOException;
public boolean needsReload(@BinaryName String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime);
}
}
class SecurityManager {
protected int classDepth(@FullyQualifiedName String name);
protected boolean inClass(@FullyQualifiedName String name);
}
package java.util.logging;
class Level implements Serializable {
@SuppressWarnings("signature")
protected Level(String name, int value);
protected Level(String name, int value, @BinaryName String resourceBundleName);
@BinaryName String getResourceBundleName();
}
class Logger {
public static Logger getAnonymousLogger() {
/* I have to de it to permit null as binary name. */
@SuppressWarnings("signature")
@BinaryName String temp = null;
return getAnonymousLogger(temp);
}
protected Logger(String name, @BinaryName String resourceBundleName);
Logger getLogger(String name, @BinaryName String resourceBundleName);
Logger getAnonymousLogger(@BinaryName String resourceBundleName);
@BinaryName String getResourceBundleName();
void logrb(Level level, String sourceClass, String sourceMethod, @BinaryName String bundleName, String msg);
void logrb(Level level, String sourceClass, String sourceMethod, @BinaryName String bundleName, String msg, Object param1);
void logrb(Level level, String sourceClass, String sourceMethod, @BinaryName String bundleName, String msg, Object[] params);
void logrb(Level level, String sourceClass, String sourceMethod, @BinaryName String bundleName, String msg, Throwable thrown);
}
class LogManager {
static {
AccessController.doPrivileged(new PrivilegedAction