Glossary advice Code, similar to a method, that is executed when a join point is reached. There are three kinds of advice: before advice that runs when a join point is reached, but before the method in question executes, after advice that executes after the method body executes, but before control returns to the caller, and around advice that runs before and after the method in question runs, and also has explicit control over whether the method is run at all. AOP See aspect-oriented programming. aspect A modular unit of crosscutting implementation in aspect-oriented programming, just as classes are the modular unit of implementation in object-oriented programming. aspect-oriented programming A type or style of programming that explicitly takes into account crosscutting concerns, just as object-oriented programming explicitly takes into account classes and objects. crosscutting concerns Issues or programmer concerns that are not local to the natural unit of modularity. dynamic context The state of a program while it is executing. Contrast with lexical context. join point A well-defined instant in the execution of a program. In AspectJ, join points are also principled, i.e. not every possible instance in the execution of a program is a potential join point. lexical context The state of a program as it is written. Contrast with dynamic context. name-based pointcut designator A type of pointcut designator that enumerates and composes explicitly named join points. For example, pointcut move(): call(void FigureElement.setXY(int,int)) || call(void Point.setX(int)) || call(void Point.setY(int)) || call(void Line.setP1(Point)) || call(void Line.setP2(Point)); is a pointcut designator that explicitly names five join points. See also property-based pointcut designator. pointcut A collection of join points. pointcut designator The name of a pointcut, or an expression which identifies a pointcut. Pointcut designators can be primitive or composite. Composite pointcut designators are primitive pointcut designators composed using the operators ||, &&, and !. See also name-based pointcut designator and property-based pointcut sesignator. post-condition A test or assertion that must be true after a method has executed. pre-condition A test or assertion that must be true when a method is called. property-based pointcut designator A type of pointcut designator that specifies pointcuts in terms of the properties of methods rather than just their names. For example, call(public * Figure.*(..)) specifies all the public methods in the class Figure regardless of the type and number of their arguments or return type. See also name-based pointcut designator. reusable aspect An aspect that can be extended or inherited from. signature The number, order and type of the arguments to a method. thisJoinPoint The special variable that identifies the current join point when a non-static join point is reached.