Class AsmRelationshipProvider

java.lang.Object
org.aspectj.weaver.model.AsmRelationshipProvider

public class AsmRelationshipProvider extends Object
  • Field Details

  • Constructor Details

    • AsmRelationshipProvider

      public AsmRelationshipProvider()
  • Method Details

    • addDeclareErrorOrWarningRelationship

      public static void addDeclareErrorOrWarningRelationship(AsmManager model, Shadow affectedShadow, Checker deow)
      Add a relationship for a declare error or declare warning
    • addRelationship

      public static void addRelationship(AsmManager model, ResolvedType onType, ResolvedTypeMunger typeTransformer, ResolvedType originatingAspect)
      Add a relationship for a type transformation (declare parents, intertype method declaration, declare annotation on type).
    • createFileStructureNode

      public static IProgramElement createFileStructureNode(AsmManager asm, String sourceFilePath)
    • addDeclareAnnotationRelationship

      public static void addDeclareAnnotationRelationship(AsmManager model, ISourceLocation declareAnnotationLocation, ISourceLocation annotatedLocation, boolean isRemove)
      Adds a declare annotation relationship, sometimes entities don't have source locs (methods/fields) so use other variants of this method if that is the case as they will look the entities up in the structure model.
    • createHierarchyForBinaryAspect

      public static void createHierarchyForBinaryAspect(AsmManager asm, ShadowMunger munger)
      Creates the hierarchy for binary aspects
    • getHandle

      public static String getHandle(AsmManager asm, Advice advice)
    • addAdvisedRelationship

      public static void addAdvisedRelationship(AsmManager model, Shadow matchedShadow, ShadowMunger munger)
    • getNode

      protected static IProgramElement getNode(AsmManager model, Shadow shadow)
    • addDeclareAnnotationMethodRelationship

      public static void addDeclareAnnotationMethodRelationship(ISourceLocation sourceLocation, String affectedTypeName, ResolvedMember affectedMethod, AsmManager model)
      Add a relationship for a matching declare annotation method or declare annotation constructor. Locating the method is a messy (for messy read 'fragile') bit of code that could break at any moment but it's working for my simple testcase.
    • addDeclareAnnotationFieldRelationship

      public static void addDeclareAnnotationFieldRelationship(AsmManager model, ISourceLocation declareLocation, String affectedTypeName, ResolvedMember affectedFieldName, boolean isRemove)
      Add a relationship for a matching declare ATfield. Locating the field is trickier than it might seem since we have no line number info for it, we have to dig through the structure model under the fields' type in order to locate it.