44 this.delegates = delegates;
49 if (key.Length == delegates.Length)
51 for (
int i = 0; i < key.Length; i++)
52 if (key[i] != delegates[i])
63 var tw1 = FindOrLoadGenericClass(name,
LoadMode.Find);
67 foreach (var loader
in delegates)
69 var tw = loader.FindLoadedClass(name);
70 if (tw !=
null && tw.ClassLoader == loader)
77 internal string GetName()
79 var sb =
new ValueStringBuilder();
82 foreach (var loader
in delegates)
87 sb.Append(gcl.GetName());
89 sb.Append(((RuntimeAssemblyClassLoader)loader).MainAssembly.FullName);
99#if IMPORTER == false && EXPORTER == false
101 internal java.util.Enumeration GetResources(
string name)
104 throw new NotImplementedException();
110 if (name.EndsWith(
".class", StringComparison.Ordinal) && name.IndexOf(
'.') == name.Length - 6)
112 var tw = FindLoadedClass(name.Substring(0, name.Length - 6).Replace(
'/',
'.'));
113 if (tw !=
null && !tw.IsArray && !tw.IsDynamic)
115 var loader = tw.ClassLoader;
116 if (loader is RuntimeGenericClassLoader)
118 else if (loader is RuntimeAssemblyClassLoader acl)
119 foreach (
java.net.URL url in acl.FindResources(name))
128 internal java.net.URL FindResource(
string name)
131 throw new NotImplementedException();
133 if (name.EndsWith(
".class", StringComparison.Ordinal) && name.IndexOf(
'.') == name.Length - 6)
135 var tw = FindLoadedClass(name.Substring(0, name.Length - 6).Replace(
'/',
'.'));
136 if (tw !=
null && tw.ClassLoader ==
this && !tw.IsArray && !tw.IsDynamic)
Maintains services relevant to an instane of the IKVM runtime.
RuntimeClassLoaderFactory ClassLoaderFactory
Gets the RuntimeClassLoaderFactory associated with this instance of the runtime.