byte[] clazzBytes = byteCode.get(className);
if (clazzBytes != null) {
char[] fileName = className.toCharArray();
try {
ClassFileReader classFileReader = new ClassFileReader(clazzBytes, fileName, true);
return new NameEnvironmentAnswer(classFileReader, null);
} catch (ClassFormatException e) {
return null;
}
}
String resourceName = className.replace('.', '/') + ".class";
InputStream in = getClass().getClassLoader().getResourceAsStream(resourceName);
if (in == null) {
return null;
}
byte[] buffer = new byte[8192];
ByteArrayOutputStream out = new ByteArrayOutputStream(buffer.length);
int count;
try {
while ((count = in.read(buffer, 0, buffer.length)) > 0) {
out.write(buffer, 0, count);
}
out.flush();
char[] fileName = className.toCharArray();
ClassFileReader classFileReader = new ClassFileReader(out.toByteArray(), fileName, true);
return new NameEnvironmentAnswer(classFileReader, null);
} catch (IOException e) {
return null;
} catch (ClassFormatException e) {
return null;