Coverage Report - org.apache.commons.javaflow.bytecode.BytecodeClassLoader
 
Classes in this File Line Coverage Branch Coverage Complexity
BytecodeClassLoader
0%
0/7
N/A
1
BytecodeClassLoader$NameClassAdapter
0%
0/6
N/A
1
 
 1  
 package org.apache.commons.javaflow.bytecode;
 2  
 
 3  
 import org.objectweb.asm.ClassAdapter;
 4  
 import org.objectweb.asm.ClassReader;
 5  
 import org.objectweb.asm.commons.EmptyVisitor;
 6  
 
 7  
 
 8  0
 public class BytecodeClassLoader extends ClassLoader {
 9  
 
 10  0
     class NameClassAdapter extends ClassAdapter {
 11  
         private String className;
 12  
 
 13  0
         public NameClassAdapter() {
 14  0
             super(new EmptyVisitor());
 15  0
         }
 16  
         
 17  
         public void visit( int version, int access, String name, String signature, String superName, String[] interfaces ) {
 18  0
             className = name;
 19  0
         }
 20  
         
 21  
         public String getName() {
 22  0
             return className;
 23  
         }
 24  
     }
 25  
     
 26  
     public Class loadClass( final byte[] bytecode ) {
 27  0
         final NameClassAdapter nameClassAdapter = new NameClassAdapter();
 28  
         
 29  0
         new ClassReader(bytecode).accept(nameClassAdapter, false);
 30  
         
 31  0
         final String name = nameClassAdapter.getName().replace('/', '.');
 32  
         
 33  
 //        System.out.println("loading class " + name);
 34  
         
 35  0
         final Class clazz = defineClass(name, bytecode, 0, bytecode.length);
 36  
         
 37  0
         return clazz;
 38  
     }
 39  
 }