import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.FieldVisitor;
import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
/**
*
public DefaultClassFileArchive(File file){
this.file = file;
- parseClassName();
+ try{
+ parseClassName();
+ } catch(ParseClassNameFailedException e){
+ className = null;
+ }
}
public DefaultClassFileArchive(String file, String className){
try {
return file.toURI().toURL();
} catch (MalformedURLException ex) {
+ return null;
}
- return null;
}
public InputStream getInputStream(ClassFileEntry entry) throws IOException{
return className;
}
- private void parseClassName(){
+ private void parseClassName() throws ParseClassNameFailedException{
FileInputStream in = null;
try {
in = new FileInputStream(file);
this.className = visitor.getClassName();
} catch (FileNotFoundException ex) {
- ex.printStackTrace();
+ throw new ParseClassNameFailedException(ex);
} catch (IOException ex) {
- ex.printStackTrace();
+ throw new ParseClassNameFailedException(ex);
} finally{
if(in != null){
try{
in.close();
} catch(IOException e){
+ throw new ParseClassNameFailedException(e);
}
}
}
}
- private static class ClassNameExtractVisitor implements ClassVisitor{
+ private static class ClassNameExtractVisitor extends ClassVisitor{
private String className;
+ public ClassNameExtractVisitor(){
+ super(Opcodes.ASM4);
+ }
+
public String getClassName(){
return className;
}