Klasse Advice

Alle implementierten Schnittstellen:
PartialOrder.PartialComparable, IHasPosition

public abstract class Advice extends ShadowMunger
  • Felddetails

    • attribute

      protected AjAttribute.AdviceAttribute attribute
    • kind

      protected transient AdviceKind kind
    • signature

      protected Member signature
    • concreteAspect

      protected ResolvedType concreteAspect
    • innerCflowEntries

      protected List<ShadowMunger> innerCflowEntries
    • nFreeVars

      protected int nFreeVars
    • exceptionType

      protected TypePattern exceptionType
    • bindingParameterTypes

      protected UnresolvedType[] bindingParameterTypes
    • hasMatchedAtLeastOnce

      protected boolean hasMatchedAtLeastOnce
    • suppressedLintKinds

      protected List<Lint.Kind> suppressedLintKinds
    • lastReportedMonitorExitJoinpointLocation

      public ISourceLocation lastReportedMonitorExitJoinpointLocation
    • ExtraArgument

      public static final int ExtraArgument
      Siehe auch:
    • ThisJoinPoint

      public static final int ThisJoinPoint
      Siehe auch:
    • ThisJoinPointStaticPart

      public static final int ThisJoinPointStaticPart
      Siehe auch:
    • ThisEnclosingJoinPointStaticPart

      public static final int ThisEnclosingJoinPointStaticPart
      Siehe auch:
    • ParameterMask

      public static final int ParameterMask
      Siehe auch:
    • ConstantReference

      public static final int ConstantReference
      Siehe auch:
    • ConstantValue

      public static final int ConstantValue
      Siehe auch:
    • ThisAspectInstance

      public static final int ThisAspectInstance
      Siehe auch:
  • Konstruktordetails

  • Methodendetails

    • makeCflowEntry

      public static Advice makeCflowEntry(World world, Pointcut entry, boolean isBelow, Member stackField, int nFreeVars, List<ShadowMunger> innerCflowEntries, ResolvedType inAspect)
    • makePerCflowEntry

      public static Advice makePerCflowEntry(World world, Pointcut entry, boolean isBelow, Member stackField, ResolvedType inAspect, List<ShadowMunger> innerCflowEntries)
    • makePerObjectEntry

      public static Advice makePerObjectEntry(World world, Pointcut entry, boolean isThis, ResolvedType inAspect)
    • makePerTypeWithinEntry

      public static Advice makePerTypeWithinEntry(World world, Pointcut p, ResolvedType inAspect)
    • isAroundAdvice

      public boolean isAroundAdvice()
      Setzt außer Kraft:
      isAroundAdvice in Klasse ShadowMunger
    • makeSoftener

      public static Advice makeSoftener(World world, Pointcut entry, TypePattern exceptionType, ResolvedType inAspect, IHasSourceLocation loc)
    • match

      public boolean match(Shadow shadow, World world)
      Beschreibung aus Klasse kopiert: ShadowMunger
      All overriding methods should call super
      Setzt außer Kraft:
      match in Klasse ShadowMunger
    • getKind

      public AdviceKind getKind()
    • getSignature

      public Member getSignature()
    • hasExtraParameter

      public boolean hasExtraParameter()
    • getExtraParameterFlags

      protected int getExtraParameterFlags()
    • getExtraParameterCount

      protected int getExtraParameterCount()
    • getBindingParameterTypes

      public UnresolvedType[] getBindingParameterTypes()
    • setBindingParameterTypes

      public void setBindingParameterTypes(UnresolvedType[] types)
    • countOnes

      public static int countOnes(int bits)
    • getBaseParameterCount

      public int getBaseParameterCount()
    • getBaseParameterNames

      public String[] getBaseParameterNames(World world)
    • getExtraParameterType

      public UnresolvedType getExtraParameterType()
      Return the type of the 'extra argument'. For either after returning or after throwing advice, the extra argument will be the returned value or the thrown exception respectively. With annotation style the user may declare the parameters in any order, whereas for code style they are in a well defined order. So there is some extra complexity in here for annotation style that looks up the correct parameter in the advice signature by name, based on the name specified in the annotation. If this fails then we 'fallback' to guessing at positions, where the extra argument is presumed to come at the end.
      Gibt zurück:
      the type of the extraParameter
    • getDeclaringAspect

      public UnresolvedType getDeclaringAspect()
    • getOriginalSignature

      protected Member getOriginalSignature()
    • extraParametersToString

      protected String extraParametersToString()
    • getPointcut

      public Pointcut getPointcut()
      Setzt außer Kraft:
      getPointcut in Klasse ShadowMunger
    • concretize

      public ShadowMunger concretize(ResolvedType fromType, World world, PerClause clause)
      Angegeben von:
      concretize in Klasse ShadowMunger
      Parameter:
      fromType - is guaranteed to be a non-abstract aspect
      clause - has been concretized at a higher level
    • toString

      public String toString()
      Setzt außer Kraft:
      toString in Klasse Object
    • equals

      public boolean equals(Object other)
      Setzt außer Kraft:
      equals in Klasse Object
    • hashCode

      public int hashCode()
      Setzt außer Kraft:
      hashCode in Klasse Object
    • setLexicalPosition

      public void setLexicalPosition(int lexicalPosition)
    • isAnnotationStyle

      public boolean isAnnotationStyle()
    • getConcreteAspect

      public ResolvedType getConcreteAspect()
      Angegeben von:
      getConcreteAspect in Klasse ShadowMunger
    • hasMatchedSomething

      public boolean hasMatchedSomething()
    • setHasMatchedSomething

      public void setHasMatchedSomething(boolean hasMatchedSomething)
    • hasDynamicTests

      public abstract boolean hasDynamicTests()