1 package org.bukkit.plugin.java;
4 import java.net.URLClassLoader;
5 import java.util.HashMap;
8 import java.util.logging.Level;
10 import org.apache.commons.lang.Validate;
11 import org.bukkit.plugin.AuthorNagException;
18 private final Map<String, Class<?>> classes =
new HashMap<String, Class<?>>();
26 this(loader, urls, parent, null);
30 loader.server.
getLogger().log(Level.WARNING,
"PluginClassLoader not intended to be extended by " + getClass() +
", and may be final in a future version of Bukkit");
32 loader.server.
getLogger().log(Level.WARNING,
"Constructor \"public PluginClassLoader(JavaPluginLoader, URL[], ClassLoader)\" is Deprecated, and may be removed in a future version of Bukkit",
new AuthorNagException(
""));
41 Validate.notNull(loader,
"Loader cannot be null");
52 protected Class<?>
findClass(String name)
throws ClassNotFoundException {
53 return extended ?
findClass(name,
true) : findClass0(name,
true);
60 protected Class<?>
findClass(String name,
boolean checkGlobal)
throws ClassNotFoundException {
62 loader.server.
getLogger().log(Level.WARNING,
"Method \"protected Class<?> findClass(String, boolean)\" is Deprecated, and may be removed in a future version of Bukkit",
new AuthorNagException(
""));
65 return findClass0(name, checkGlobal);
68 Class<?> findClass0(String name,
boolean checkGlobal)
throws ClassNotFoundException {
69 if (name.startsWith(
"org.bukkit.") || name.startsWith(
"net.minecraft.")) {
70 throw new ClassNotFoundException(name);
72 Class<?> result = classes.get(name);
76 result = loader.extended ? loader.
getClassByName(name) : loader.getClassByName0(name);
80 result = super.findClass(name);
83 if (loader.extended) {
86 loader.setClass0(name, result);
91 classes.put(name, result);
103 loader.server.
getLogger().log(Level.WARNING,
"Method \"public Set<String> getClasses()\" is Deprecated, and may be removed in a future version of Bukkit",
new AuthorNagException(
""));
106 return getClasses0();
109 Set<String> getClasses0() {
110 return classes.keySet();