All Classes

Class
Description
Signal that a process was aborted before completion.
 
 
 
Implements common functions to be used across ISignaturePatterns.
 
 
The five kinds of advice in AspectJ.
These attributes are written to and read from .class files (see the JVM spec).
 
Synthetic members should have NO advice put on them or on their contents.
 
 
 
 
 
 
 
 
 
 
The AjcMemberMaker is responsible for creating the representations of methods/fields/etc that are placed in both aspects and affected target types.
 
 
 
Represents the AND of two other signature patterns.
left && right
Represents any element that may have annotations
Simple representation of an annotation that the weaver can work with.
 
 
 
Represents adding an annotation to a type
 
(at)Annotation((at)Foo) or (at)Annotation(foo)
A TypeSafeEnum similar to the Java5 ElementType Enum
 
 
 
 
This type represents a type pattern of '*' but with an annotation specified, e.g.
 
args(arguments)
 
Represents a resolved array type
 
 
 
Exception to use inside the bcweaver.
Represents an attempt to bind the field of an annotation within a pointcut.
 
Marker interface for BindingTypePattern and BindingAnnotationTypePattern
 
BindingScope that knows the enclosingType, which is needed for pointcut reference resolution
 
A BoundedReferenceType is the result of a generics wildcard expression ?
 
 
 
Representation of a shadow munger for a declare error or warning declaration.
 
 
 
This class is responsible for tracking progress through the various phases of compilation and weaving.
A variation of a DataOutputStream that is linked to a constant pool writer.
 
 
 
Used during attribute reading to decode constant pool references.
Used during attribute writing to encode common strings/etc as constant pool references.
 
Some useful weaver constants.
Pointcut expression interface for pointcut expressions returned by a PointcutDesignatorHandler.
 
When an entry is added to the CompilationAndWeavingContext stack, a ContextToken is returned.
Wrap an IMessageHandler to count messages handled.
This holds on to all members that have an invasive effect outside of there own compilation unit.
This holds on to all CrosscuttingMembers for a world.
This interface is introduced to support tools like PointcutDoctor.
 
Represents a declare annotation statement, one of atField, atMethod, atConstructor or atType.
Captures type of declare annotation (method/type/field/constructor)
 
 
Constructed based on an @DeclareMixin being found in an aspect.
 
 
For a declare error/warning that specified a type pattern rather than a pointcut.
Default implementation of MatchingContext, backed by a Map.
 
 
 
 
 
 
 
Represents an attempt to bind the field of an annotation within a pointcut.
Matches an annotation of a given type
 
 
Special kind of privileged access munger which exposes a type to be public.
 
Represents a type that pointcuts may match.
 
 
 
A pipe when run reads from an input stream to an output stream, optionally sleeping between reads.
 
A marker class for bindings for which we want to ignore unbound issue and consider them as implicit binding - f.e. to handle JoinPoint in @AJ advices
This class implements boolean that include a "maybe"
This class implements a boolean that includes a "maybe"
Interface implemented by weaving class loaders to allow classes generated by the weaving process to be defined.
A delegate that can sit in the ReferenceType instance created for an aspect generated from aop.xml.
Encapsulate generic signature parsing
 
 
structure holding a parsed class signature
 
 
structure capturing a FormalTypeParameter from the Signature grammar
 
 
 
 
 
This interface exists to support two different strategies for answering generic signature related questions on Java 5 and pre-Java 5.
Parses the generic signature attribute as defined in the JVM spec.
This is a kind of KindedPointcut.
 
 
 
pr354470.
 
An IClassWeaver is initialized with a class (a type, really, but let's ignore that for now) and a world, and has one method that actually weaves the contents of the world into the class implementation.
Command wrapper with collecting parameter for messages.
Clients can pass a single cross-reference handler to the weaver on construction of a BcelWorld.
 
 
 
 
 
 
 
Interface that can be implemented by MessageHandlers that need to perform some additional processing when a build is starting and when it has finished.
Wrap message with any associated throwable or source location.
 
 
Handle messages, logging and/or aborting as appropriate.
Hold and query a collection of messages.
 
 
Used to give progress information typically to IDEs
 
 
 
 
Represent source location as a starting line/column and ending line in a source file.
Abstraction of a structure model
 
 
A filter represents a mapping function from Iterator to Iterator
A getter represents a mapping function from Object to Iterator
 
 
 
 
History: 246125
Implementors provide a 'verify()' method that is invoked at the end of type binding completion.
 
Encapsulates operations that a world will need to support if it is actually going to modify bytecode rather than just match against it.
Under JDK 1.4 or lower, we can't give generic signature info...
 
 
 
Iterates over the signatures of a join point, calculating new signatures lazily to minimize processing and to avoid unneccessary "can't find type" errors.
 
 
Handle an external process asynchrously.
 
check if input contains any packages to elide.
 
 
 
When extending AspectJ's pointcut parsing and matching with custom PointcutDesignatorHandlers, it may be necessary to match based on context information at a join point not exposed simply by java.lang.reflect member information or argument values.
Test that uses MatchingContext to match (or not)
Abstract representation of a member (field/constructor/method) within a type.
 
 
Common utility methods for members.
Implement messages.
This handler accumulates messages.
Convenience API's for constructing, printing, and sending messages.
parameterize rendering behavior for messages
An IMessageHandler implementation that writes all to a PrintWriter.
Type munger for annotation style ITD declare parents. with an interface AND an implementation.
 
When we try to resolve a type in the world that we require to be present, and then fail to find it, we return an instance of this class.
 
Common super type for Pointcuts that can bind formal parameters.
 
 
 
Code that created version one style ITD type mungers will be using direct field access from the dispatchers
Weaver representation of an intertype declared member class.
 
 
 
 
 
Represents the NOT of a signature pattern
!
 
 
 
 
Represents the OR of two other signature patterns.
left || right
 
This class implements a partial order It includes routines for doing a topo-sort
All classes that want to be part of a partial order must implement PartialOrder.PartialComparable.
 
A Pointcut or TypePattern visitor
 
 
 
 
 
 
 
 
 
 
A visitor that turns a pointcut into a type pattern equivalent for a perthis or pertarget matching: - pertarget(target(Foo)) → Foo+ (this one is a special case..) - pertarget(execution(* Foo.do()) → Foo - perthis(call(* Foo.do()) → * - perthis(!
 
 
 
The lifecycle of Pointcuts is modeled by Pointcut.State.
 
The PointcutDesignator interface allows extension of the AspectJ pointcut language so that third-party tools integrating with AspectJ can add easily their own custom domain-specific designators and have them interoperate seamlessly with the standard AspectJ designators.
Implementation of Pointcut that is backed by a user-extension pointcut designator handler.
 
Represents an AspectJ pointcut expression and provides convenience methods to determine whether or not the pointcut matches join points specified in terms of the java.lang.reflect interfaces.
Map from weaver.tools interface to internal Pointcut implementation...
 
 
 
A PointcutParser can be used to build PointcutExpressions for a user-defined subset of AspectJ's pointcut language
An enumeration of the different kinds of pointcut primitives supported by AspectJ.
Performs term rewriting for pointcut expressions.
Walks a pointcut and determines if the synchronization related designators have been used: lock() or unlock()
 
A privileged access munger is for handling privileged access to a member.
 
A reference type represents some 'real' type, not a primitive, not an array - but a real type, for example java.util.List.
Abstraction over a type - a reference type is Object or a descendant of Object, other types (int/etc) are considered primitive types.
 
 
 
Subtype of ResolvedMemberImpl used in reflection world.
 
An implementation of FastMatchInfo that can also expose a MatchingContext.
 
A variable at a reflection shadow, used by the residual tests.
A ReflectionWorld is used solely for purposes of type resolution based on the runtime classpath (java.lang.reflect).
 
Carries an array of unresolved types - will resolve them on demand.
 
Represent a resolved member.
 
 
This is an abstraction over method/field introduction.
 
Captures important runtime versions.
A scope that also considers type variables when looking up a type.
 
A type-safe enum representing the kind of shadows
The result of asking a PointcutExpression to match at a shadow (method execution, handler, constructor call, and so on).
 
For every shadow munger, nothing can be done with it until it is concretized.
 
 
 
 
 
 
Immutable source location.
This type represents the weavers abstraction of an annotation - it is not tied to any underlying BCI toolkit.
Represents an AspectJ pointcut expression and provides convenience methods to determine whether or not the pointcut matches join points specified in terms of the java.lang.reflect interfaces.
Map from weaver.tools interface to internal Pointcut implementation...
 
A PointcutParser can be used to build PointcutExpressions for a user-defined subset of AspectJ's pointcut language
 
 
 
Some methods need a temporary type munger (because ConcreteTypeMunger is abstract - dont ask...).
 
 
Corresponds to target or this pcd.
 
 
 
 
A TypeCategoryTypePattern matches on the category of a type, one of class/interface/aspect/inner/anonymous/enum/annotation, and these are specified in the pointcut via isClass() isInterface() isAspect() isInner() isAnonymous() isEnum() isAnnotation().
 
On creation, type pattern only contains WildTypePattern nodes, not BindingType or ExactType.
 
 
A compiled AspectJ type pattern that can be used to match against types at runtime.
 
 
 
Represents a type variable with possible bounds.
Tag interface - methods and types can be declaring elements for type variables.
 
 
Implemented by Types that represent references to type variables
ReferenceType pointing to a type variable.
A UnresolvedType represents a type to the weaver.
 
 
 
Load classes as File from File[] dirs or URL[] jars.
 
 
release-specific version information
Lightweight subclass of DataInputStream that knows what version of the weaver was used to construct the data in it.
Wraps a reference to a classloader inside a WeakReference.
 
 
 
WeaverStateInfo represents how a type was processed.
An interface for weaving class loaders to provide callbacks for a WeavingAdaptor.
 
Represents a wildcarded bound for a generic type, this can be unbounded '?'
 
The PatternParser always creates WildTypePatterns for type patterns in pointcut expressions (apart from *, which is sometimes directly turned into TypePattern.ANY). resolveBindings() tries to work out what we've really got and turn it into a type pattern that we can use for matching.
 
 
 
 
A World is a collection of known types and crosscutting members.