org.aspectj.ajdt.internal.compiler.ast
Class PointcutDeclaration

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
      extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration
          extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.MethodDeclaration
              extended by org.aspectj.ajdt.internal.compiler.ast.AjMethodDeclaration
                  extended by org.aspectj.ajdt.internal.compiler.ast.PointcutDeclaration
All Implemented Interfaces:
ReferenceContext, TypeConstants, TypeIds, ProblemSeverities

public class PointcutDeclaration
extends AjMethodDeclaration

pointcut [declaredModifiers] [declaredName]([arguments]): [pointcutDesignator];

No method will actually be generated for this node but an attribute will be added to the enclosing class.


Field Summary
static char[] mangledPrefix
           
 PointcutDesignator pointcutDesignator
           
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.MethodDeclaration
returnType, typeParameters
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration
annotations, arguments, binding, bodyEnd, bodyStart, compilationResult, declarationSourceEnd, declarationSourceStart, explicitDeclarations, ignoreFurtherInvestigation, javadoc, modifiers, modifiersSourceStart, scope, selector, statements, thrownExceptions
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
Bit1, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15, Bit16, Bit17, Bit18, Bit19, Bit2, Bit20, Bit21, Bit22, Bit23, Bit24, Bit25, Bit26, Bit27, Bit28, Bit29, Bit3, Bit30, Bit31, Bit32, Bit32L, Bit33L, Bit34L, Bit35L, Bit36L, Bit37L, Bit38L, Bit39L, Bit4, Bit40L, Bit41L, Bit42L, Bit43L, Bit44L, Bit45L, Bit46L, Bit47L, Bit48L, Bit49L, Bit5, Bit50L, Bit51L, Bit52L, Bit53L, Bit54L, Bit55L, Bit56L, Bit57L, Bit58L, Bit59L, Bit6, Bit60L, Bit61L, Bit62L, Bit63L, Bit64L, Bit7, Bit8, Bit9, bits, BlockExit, CanBeStatic, ContainsAssertion, DepthMASK, DepthSHIFT, DidResolve, DisableUnnecessaryCastCheck, DiscardEnclosingInstance, DocumentedFallthrough, Empty, ErrorInSignature, FirstAssignmentToLocal, GenerateCheckcast, HasAbstractMethods, HasAllMethodBodies, HasBeenGenerated, HasBeenResolved, HasLocalType, HasSyntaxErrors, IgnoreNoEffectAssignCheck, IgnoreRawTypeCheck, InsideExpressionStatement, InsideJavadoc, INVOCATION_ARGUMENT_OK, INVOCATION_ARGUMENT_UNCHECKED, INVOCATION_ARGUMENT_WILDCARD, IsAnnotationDefaultValue, IsAnonymousType, IsAnySubRoutineEscaping, IsArgument, IsCompoundAssigned, IsDefaultConstructor, IsDiamond, IsElseIfStatement, IsElseStatementUnreachable, IsImplicitThis, IsImplicitUnit, IsLocalDeclarationReachable, IsLocalType, IsMemberType, IsNonNull, IsReachable, IsRecovered, IsReturnedValue, IsSecondaryType, IsStrictlyAssigned, IsSubRoutineEscaping, IsSuperType, IsSynchronized, IsThenStatementUnreachable, IsTryBlockExiting, IsUnionType, IsUsefulEmptyStatement, IsVarArgs, LabelUsed, NeededScope, NeedFreeReturn, NeedReceiverGenericCast, OnDemand, OperatorMASK, OperatorSHIFT, OverridingMethodWithSupercall, ParenthesizedMASK, ParenthesizedSHIFT, ResolveJavadoc, RestrictiveFlagMASK, ReturnTypeIDMASK, sourceEnd, sourceStart, SuperAccess, ThenExit, Unchecked, UndocumentedEmptyBlock, UnnecessaryCast, UnsafeCast, Used
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.problem.ProblemSeverities
Abort, AbortCompilation, AbortCompilationUnit, AbortMethod, AbortType, Error, Fatal, Ignore, Optional, SecondaryError, Warning
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants
ANNOTATION, ANNOTATION_PREFIX, ANNOTATION_SUFFIX, ANONYM_PREFIX, ANONYM_SUFFIX, BOOLEAN, BYTE, CHAR, CharArray_JAVA_IO_OBJECTINPUTSTREAM, CharArray_JAVA_IO_OBJECTOUTPUTSTREAM, CharArray_JAVA_IO_OBJECTSTREAMFIELD, CharArray_JAVA_LANG_ANNOTATION_ANNOTATION, CharArray_JAVA_LANG_ENUM, CharArray_JAVA_LANG_OBJECT, CLINIT, CLONE, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, DOUBLE, EQUALS, FLOAT, GETCLASS, HASHCODE, INIT, INT, INVOKE, IO, JAVA, JAVA_IO, JAVA_IO_EXTERNALIZABLE, JAVA_IO_IOEXCEPTION, JAVA_IO_OBJECTINPUTSTREAM, JAVA_IO_OBJECTOUTPUTSTREAM, JAVA_IO_OBJECTSTREAMEXCEPTION, JAVA_IO_PRINTSTREAM, JAVA_IO_SERIALIZABLE, JAVA_LANG, JAVA_LANG_ANNOTATION_ANNOTATION, JAVA_LANG_ANNOTATION_DOCUMENTED, JAVA_LANG_ANNOTATION_ELEMENTTYPE, JAVA_LANG_ANNOTATION_INHERITED, JAVA_LANG_ANNOTATION_RETENTION, JAVA_LANG_ANNOTATION_RETENTIONPOLICY, JAVA_LANG_ANNOTATION_TARGET, JAVA_LANG_ASSERTIONERROR, JAVA_LANG_AUTOCLOSEABLE, JAVA_LANG_BOOLEAN, JAVA_LANG_BYTE, JAVA_LANG_CHARACTER, JAVA_LANG_CLASS, JAVA_LANG_CLASSNOTFOUNDEXCEPTION, JAVA_LANG_CLONEABLE, JAVA_LANG_DEPRECATED, JAVA_LANG_DOUBLE, JAVA_LANG_ENUM, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_NOCLASSDEFERROR, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SAFEVARARGS, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_SUPPRESSWARNINGS, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, JAVA_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVAX_RMI_CORBA_STUB, LANG, LENGTH, LONG, MAIN, MISMATCH, NULL, OBJECT, OK, PACKAGE_INFO_NAME, READOBJECT, READRESOLVE, REFLECT, SERIALPERSISTENTFIELDS, SERIALVERSIONUID, SHORT, SYNTHETIC_ACCESS_METHOD_PREFIX, SYNTHETIC_ASSERT_DISABLED, SYNTHETIC_CLASS, SYNTHETIC_ENCLOSING_INSTANCE_PREFIX, SYNTHETIC_ENUM_CONSTANT_INITIALIZATION_METHOD_PREFIX, SYNTHETIC_ENUM_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, SYNTHETIC_STATIC_FACTORY, SYNTHETIC_SWITCH_ENUM_TABLE, TYPE, UNCHECKED, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALUE, VALUEOF, VALUES, VOID, WILDCARD_CAPTURE, WILDCARD_CAPTURE_NAME_PREFIX, WILDCARD_CAPTURE_NAME_SUFFIX, WILDCARD_EXTENDS, WILDCARD_MINUS, WILDCARD_NAME, WILDCARD_PLUS, WILDCARD_STAR, WILDCARD_SUPER, WRITEOBJECT, WRITEREPLACE
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeIds
Boolean2Boolean, Boolean2Int, Boolean2String, BOXING, Byte2Byte, Byte2Char, Byte2Double, Byte2Float, Byte2Int, Byte2Long, Byte2Short, Byte2String, Char2Byte, Char2Char, Char2Double, Char2Float, Char2Int, Char2Long, Char2Short, Char2String, COMPILE_TYPE_MASK, Double2Byte, Double2Char, Double2Double, Double2Float, Double2Int, Double2Long, Double2Short, Double2String, Float2Byte, Float2Char, Float2Double, Float2Float, Float2Int, Float2Long, Float2Short, Float2String, IMPLICIT_CONVERSION_MASK, Int2Byte, Int2Char, Int2Double, Int2Float, Int2Int, Int2Long, Int2Short, Int2String, Long2Byte, Long2Char, Long2Double, Long2Float, Long2Int, Long2Long, Long2Short, Long2String, NoId, Null2Null, Null2String, Object2boolean, Object2byte, Object2char, Object2double, Object2float, Object2int, Object2long, Object2Object, Object2short, Object2String, Short2Byte, Short2Char, Short2Double, Short2Float, Short2Int, Short2Long, Short2Short, Short2String, String2String, T_boolean, T_byte, T_char, T_double, T_float, T_int, T_JavaIoException, T_JavaIoExternalizable, T_JavaIoObjectStreamException, T_JavaIoPrintStream, T_JavaIoSerializable, T_JavaLangAnnotationAnnotation, T_JavaLangAnnotationDocumented, T_JavaLangAnnotationElementType, T_JavaLangAnnotationInherited, T_JavaLangAnnotationRetention, T_JavaLangAnnotationRetentionPolicy, T_JavaLangAnnotationTarget, T_JavaLangAssertionError, T_JavaLangAutoCloseable, T_JavaLangBoolean, T_JavaLangByte, T_JavaLangCharacter, T_JavaLangClass, T_JavaLangClassNotFoundException, T_JavaLangCloneable, T_JavaLangDeprecated, T_JavaLangDouble, T_JavaLangEnum, T_JavaLangError, T_JavaLangException, T_JavaLangFloat, T_JavaLangIllegalArgumentException, T_JavaLangInteger, T_JavaLangInvokeMethodHandlePolymorphicSignature, T_JavaLangIterable, T_JavaLangLong, T_JavaLangNoClassDefError, T_JavaLangObject, T_JavaLangOverride, T_JavaLangReflectConstructor, T_JavaLangReflectField, T_JavaLangReflectMethod, T_JavaLangRuntimeException, T_JavaLangSafeVarargs, T_JavaLangShort, T_JavaLangString, T_JavaLangStringBuffer, T_JavaLangStringBuilder, T_JavaLangSuppressWarnings, T_JavaLangSystem, T_JavaLangThrowable, T_JavaLangVoid, T_JavaUtilCollection, T_JavaUtilIterator, T_long, T_null, T_short, T_undefined, T_void, UNBOXING
 
Constructor Summary
PointcutDeclaration(CompilationResult compilationResult)
           
 
Method Summary
 void addAtAspectJAnnotations()
          Called from the AtAspectJVisitor to create the @Pointcut annotation (and corresponding method) for this pointcut
 void generateCode(ClassScope classScope, ClassFile classFile)
          A pointcut declaration exists in a classfile only as an attibute on the class.
protected  int generateInfoAttributes(ClassFile classFile)
          Generates my info attributes, hook for subclasses
 AjAttribute makeAttribute()
           
 ResolvedPointcutDefinition makeResolvedPointcutDefinition(EclipseFactory inWorld)
           
 void parseStatements(Parser parser, CompilationUnitDeclaration unit)
          Fill up the method body with statement
 void postParse(TypeDeclaration typeDec)
          Just before building bindings, hook for subclasses
 java.lang.StringBuffer printBody(int indent, java.lang.StringBuffer output)
           
 java.lang.StringBuffer printReturnType(int indent, java.lang.StringBuffer output)
           
 void resolve(ClassScope upperScope)
           
 void resolvePointcut(ClassScope upperScope)
           
 void resolveStatements()
           
 void setGenerateSyntheticPointcutMethod()
           
 
Methods inherited from class org.aspectj.ajdt.internal.compiler.ast.AjMethodDeclaration
addAttribute, addDeclarationStartLineAttribute, generateInfoAttributes
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.MethodDeclaration
analyseCode, isMethod, traverse, typeParameters
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration
abort, bindArguments, bindThrownExceptions, compilationResult, ensureScopeSetup, finishResolveTypes, generateCode, hasErrors, isAbstract, isAnnotationMethod, isClinit, isConstructor, isDefaultConstructor, isInitializationMethod, isNative, isStatic, print, resolveJavadoc, tagAsHavingErrors
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
checkInvocationArguments, concreteStatement, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, printAnnotations, printIndent, printModifiers, resolveAnnotations, resolveDeprecatedAnnotations, sourceEnd, sourceStart, toString, traverse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mangledPrefix

public static final char[] mangledPrefix

pointcutDesignator

public PointcutDesignator pointcutDesignator
Constructor Detail

PointcutDeclaration

public PointcutDeclaration(CompilationResult compilationResult)
Method Detail

parseStatements

public void parseStatements(Parser parser,
                            CompilationUnitDeclaration unit)
Description copied from class: AbstractMethodDeclaration
Fill up the method body with statement

Overrides:
parseStatements in class MethodDeclaration

postParse

public void postParse(TypeDeclaration typeDec)
Description copied from class: AbstractMethodDeclaration
Just before building bindings, hook for subclasses

Overrides:
postParse in class AbstractMethodDeclaration

addAtAspectJAnnotations

public void addAtAspectJAnnotations()
Called from the AtAspectJVisitor to create the @Pointcut annotation (and corresponding method) for this pointcut


setGenerateSyntheticPointcutMethod

public void setGenerateSyntheticPointcutMethod()

resolve

public void resolve(ClassScope upperScope)
Overrides:
resolve in class AbstractMethodDeclaration

resolvePointcut

public void resolvePointcut(ClassScope upperScope)

resolveStatements

public void resolveStatements()
Overrides:
resolveStatements in class MethodDeclaration

makeResolvedPointcutDefinition

public ResolvedPointcutDefinition makeResolvedPointcutDefinition(EclipseFactory inWorld)

makeAttribute

public AjAttribute makeAttribute()

generateCode

public void generateCode(ClassScope classScope,
                         ClassFile classFile)
A pointcut declaration exists in a classfile only as an attibute on the class. Unlike advice and inter-type declarations, it has no corresponding method.

Overrides:
generateCode in class AbstractMethodDeclaration

generateInfoAttributes

protected int generateInfoAttributes(ClassFile classFile)
Description copied from class: AbstractMethodDeclaration
Generates my info attributes, hook for subclasses

Overrides:
generateInfoAttributes in class AjMethodDeclaration

printReturnType

public java.lang.StringBuffer printReturnType(int indent,
                                              java.lang.StringBuffer output)
Overrides:
printReturnType in class MethodDeclaration

printBody

public java.lang.StringBuffer printBody(int indent,
                                        java.lang.StringBuffer output)
Overrides:
printBody in class AbstractMethodDeclaration