abc.ra.ast
Interface RANodeFactory

All Superinterfaces:
AJNodeFactory, EAJNodeFactory, TMNodeFactory
All Known Implementing Classes:
RANodeFactory_c

public interface RANodeFactory
extends TMNodeFactory

Node factory for relational aspects extension.

Author:
Eric Bodden

Method Summary
 SymbolDecl AdviceSymbolDeclaration(Position pos, java.lang.String name, SymbolKind kind, Pointcut pc, boolean giveWarning)
          Generates a special SymbolDecl that gives the warning that the advice never matches, in case the synbol never matches.
 SymbolDecl AssociateSymbolDecl(Position pos, java.lang.String name, java.lang.String tracematch_name, boolean bindAspectInstanceInReturn, RelAspectDecl container)
          Returns an associate-symbol declaration.
 AdviceDecl CustomWarningPerSymbolAdviceDecl(Position position, Flags none, AdviceSpec spec, java.util.List tlist, Pointcut pc, Block body, java.lang.String tm_id, SymbolDecl sym, Position tm_pos, int warningType)
          Returns an advice declaration which issues custom warnings in case it never matches.
 RelAspectDecl RelAspectDecl(Position pos, boolean is_privileged, Flags flags, java.lang.String name, TypeNode superClass, java.util.List interfaces, java.util.List formals, AspectBody body)
          Returns a new relational aspect declaration.
 RelationalAround RelationalAround(Position pos, TypeNode returnType, java.util.List formals, java.util.List proceedIdentifiers)
          Creates a relational around advice.
 SymbolDecl ReleaseSymbolDecl(Position pos, java.lang.String name, java.lang.String tracematch_name, RelAspectDecl container)
          Returns a release-symbol declaration.
 SymbolDecl StartSymbolDecl(Position pos, java.lang.String name)
          Returns a symbol representing program start.
 
Methods inherited from interface abc.tm.ast.TMNodeFactory
AfterReturningSymbol, AfterReturningSymbol, AfterSymbol, AfterThrowingSymbol, AfterThrowingSymbol, AroundSymbol, BeforeSymbol, ClosedPointcut, PerEventAdviceDecl, PerSymbolAdviceDecl, RegexAlternation, RegexConjunction, RegexCount, RegexPlus, RegexSkipSeq, RegexStar, RegexSymbol, SymbolDecl, TMDecl, TMModsAndType
 
Methods inherited from interface abc.eaj.ast.EAJNodeFactory
GlobalPointcutDecl, PCArrayGet, PCArraySet, PCCast, PCCflowBelowDepth, PCCflowDepth, PCContains, PCLet, PCLocalVars, PCLock, PCThrow, PCUnlock
 
Methods inherited from interface abc.aspectj.ast.AJNodeFactory
AdviceDecl, AdviceFormal, After, AfterReturning, AfterThrowing, AmbExpr, AmbTypeOrLocal, ArgDotDot, ArgStar, Around, AspectBody, AspectDecl, Before, CharLit, ClassTypeDotId, ClassTypeDotNew, constructClassnamePatternFromTypePattern, ConstructorPattern, CPEBinary, CPEName, CPENot, CPESubName, CPEUniversal, DeclareError, DeclareParents, DeclarePrecedence, DeclareSoft, DeclareWarning, DotDotFormalPattern, DotDotNamePattern, DotNamePattern, Field, FieldPattern, hostConstructorCall, hostSpecial, IntertypeConstructorDecl, IntertypeFieldDecl, IntertypeMethodDecl, IsSingleton, MethodPattern, ModifierPattern, PCAdviceExecution, PCArgs, PCBinary, PCCall, PCCflow, PCCflowBelow, PCEmpty, PCExecution, PCGet, PCHandler, PCIf, PCInitialization, PCName, PCNot, PCPreinitialization, PCSet, PCStaticInitialization, PCTarget, PCThis, PCWithin, PCWithinCode, PerCflow, PerCflowBelow, PerTarget, PerThis, PointcutDecl, ProceedCall, RTPName, RTPSubName, SimpleNamePattern, ThrowsPattern, TPEArray, TPEBinary, TPENot, TPERefTypePat, TPEType, TPEUniversal, TypeFormalPattern
 

Method Detail

RelAspectDecl

RelAspectDecl RelAspectDecl(Position pos,
                            boolean is_privileged,
                            Flags flags,
                            java.lang.String name,
                            TypeNode superClass,
                            java.util.List interfaces,
                            java.util.List formals,
                            AspectBody body)
Returns a new relational aspect declaration.

Parameters:
formals - relational aspect formals
See Also:
AJNodeFactory.AspectDecl(Position, boolean, Flags, String, TypeNode, List, abc.aspectj.ast.PerClause, AspectBody)

AssociateSymbolDecl

SymbolDecl AssociateSymbolDecl(Position pos,
                               java.lang.String name,
                               java.lang.String tracematch_name,
                               boolean bindAspectInstanceInReturn,
                               RelAspectDecl container)
Returns an associate-symbol declaration.

Parameters:
pos - position in code
name - name of the symbol, should most often be associate
tracematch_name - name of surrounding tracematch
bindAspectInstanceInReturn - is true, the newly created advice instance is boudn via after-returning
container - declaration of containing relational aspect

ReleaseSymbolDecl

SymbolDecl ReleaseSymbolDecl(Position pos,
                             java.lang.String name,
                             java.lang.String tracematch_name,
                             RelAspectDecl container)
Returns a release-symbol declaration.

Parameters:
pos - position in code
name - name of the symbol, should most often be release
tracematch_name - name of surrounding tracematch
container - declaration of containing relational aspect

StartSymbolDecl

SymbolDecl StartSymbolDecl(Position pos,
                           java.lang.String name)
Returns a symbol representing program start. It is established via before execution(* *.main(String[])).

Parameters:
pos - position in the code
name - name of the symbol

CustomWarningPerSymbolAdviceDecl

AdviceDecl CustomWarningPerSymbolAdviceDecl(Position position,
                                            Flags none,
                                            AdviceSpec spec,
                                            java.util.List tlist,
                                            Pointcut pc,
                                            Block body,
                                            java.lang.String tm_id,
                                            SymbolDecl sym,
                                            Position tm_pos,
                                            int warningType)
Returns an advice declaration which issues custom warnings in case it never matches.

Parameters:
warningType - see CustomWarningPerSymbolAdviceDecl
See Also:
AJNodeFactory.AdviceDecl(Position, Flags, AdviceSpec, List, Pointcut, Block)

AdviceSymbolDeclaration

SymbolDecl AdviceSymbolDeclaration(Position pos,
                                   java.lang.String name,
                                   SymbolKind kind,
                                   Pointcut pc,
                                   boolean giveWarning)
Generates a special SymbolDecl that gives the warning that the advice never matches, in case the synbol never matches.

Parameters:
if - true. the warning is given, if false it is not
See Also:
TMNodeFactory.SymbolDecl(Position, String, SymbolKind, Pointcut)

RelationalAround

RelationalAround RelationalAround(Position pos,
                                  TypeNode returnType,
                                  java.util.List formals,
                                  java.util.List proceedIdentifiers)
Creates a relational around advice. In addition to its normal formal parameters, it can have a list of proceed-variables in the header.