All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.pitest.highwheel.bytecodeparser.DependencyFieldVisitor Maven / Gradle / Ivy

package org.pitest.highwheel.bytecodeparser;

import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.FieldVisitor;
import org.objectweb.asm.Opcodes;
import org.pitest.highwheel.classpath.AccessVisitor;
import org.pitest.highwheel.model.AccessPoint;
import org.pitest.highwheel.model.AccessType;
import org.pitest.highwheel.model.ElementName;

public class DependencyFieldVisitor extends FieldVisitor {

  private final AccessPoint   parent;
  private final AccessVisitor typeReceiver;

  public DependencyFieldVisitor(final AccessPoint owner,
      final AccessVisitor typeReceiver) {
    super(Opcodes.ASM5, null);
    this.typeReceiver = typeReceiver;
    this.parent = owner;
  }
  
  @Override
  public AnnotationVisitor visitAnnotation(final String desc,
      final boolean visible) {
    this.typeReceiver.apply(
        this.parent,
        AccessPoint.create(ElementName.fromString(org.objectweb.asm.Type.getType(
            desc).getClassName())), AccessType.ANNOTATED);
    return null;
  }
  
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy