Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package cn.wensiqun.visitor.annotated;
  
  import java.util.List;
  
  import  org.objectweb.asm.AnnotationVisitor;
  import  org.objectweb.asm.Attribute;
  import  org.objectweb.asm.ClassVisitor;
  import  org.objectweb.asm.FieldVisitor;
 import  org.objectweb.asm.MethodVisitor;
 import  org.objectweb.asm.commons.EmptyVisitor;
 
 
 public class ClassDefVisitor extends CommonDef  implements ClassVisitor  {
 
 	
     private ClassGrep classGrep;
 
     protected ClassInfo info;
     
 	public ClassDefVisitor(GrepRobotInternal grepClient) {
 		super(grepClient);
 		this. = grepClient.getClassGrep();
 	}
 
 	public void visit(int versionint accessString nameString signatureString superNameString[] interfaces) {
         if (name.endsWith("package-info")) {
             //info = new PackageInfo(CommonUtils.javaName(name));
         } else {
             ClassInfo classInfo = new ClassInfo(CommonUtils.javaName(name), CommonUtils.javaName(superName));
 
             for (String interfce : interfaces) {
                 classInfo.getInterfaces().add(CommonUtils.javaName(interfce));
             }
              = classInfo;
             .putCacheClassInfo(classInfo.getName(), classInfo);
 
             /*if (grepClient.isExtractSuperInterfaces())*/
             extractSuperInterfaces(classInfo);
         }
 	}
 
     private void extractSuperInterfaces(ClassInfo classInfo) {
         String superType = classInfo.getSuperType();
 
         if (superType != null) {
             ClassInfo base = .getCacheClassInfo(superType);
 
             if (base == null) {
                 //try to load base
                 String resource = superType.replace('.''/') + ".class";
                 
                 .readClassDef(resource);
                 
                 base = .getCacheClassInfo(superType);
             }
 
             if (base != null) {
                 List<Stringinterfaces = classInfo.getSuperInterfaces();
                 interfaces.addAll(base.getSuperInterfaces());
                 interfaces.addAll(base.getInterfaces());
             }
         }
     }
 
 	public AnnotationVisitor visitAnnotation(String descboolean visible) {
 		AnnotationInfo annotationInfo = new AnnotationInfo(desc);
 	        .getAnnotations().add(annotationInfo);
 	        List<ClassInfoinfos = .getAnnotatedClassMap().get(annotationInfo.getName());
 	        if (infos == null) {
 	            infos = new ArrayList<ClassInfo>();
 	            .getAnnotatedClassMap().put(annotationInfo.getName(), infos);
 	        }
 	        infos.add();
 	        .setCompliance(true);
 	        return new AnnotationDefVisitor(annotationInfo);
 		}else{
 			return new EmptyVisitor();
 		}
 	}
 
 	
 	public FieldVisitor visitField(int accessString nameString descString signatureObject value) {
 		FieldInfo fieldInfo = new FieldInfo(namedesc);
 		.getFields().add(fieldInfo);
 		return new FieldDefVisitor(fieldInfo);
 	}
 
 	
 	public MethodVisitor visitMethod(int accessString nameString descString signatureString[] exceptions) {
 		MethodInfo methodInfo = new MethodInfo(namedesc);
		.getMethods().add(methodInfo);
		return new MethodDefVisitor(methodInfo);
	}
	public void visitSource(String sourceString debug) {
	}
	public void visitOuterClass(String ownerString nameString desc) {
	}
	public void visitAttribute(Attribute attr) {
	}
	public void visitInnerClass(String nameString outerNameString innerNameint access) {
	}
	public void visitEnd() {
		}
	}
New to GrepCode? Check out our FAQ X