aboutsummaryrefslogtreecommitdiffstats
path: root/docs/progGuideDB/glossary.xml
blob: 4516ce2bd359325deb0c88a44e5c541fcc440647 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<appendix id="glossary" xreflabel="Glossary">

  <title>Glossary</title>

  <glosslist>

<!--
    <glossentry><glossterm>
</glossterm>
      <glossdef>
         <para></para>
      </glossdef>
    </glossentry>

-->

    <glossentry><glossterm>
advice</glossterm>
      <glossdef>
	  <para>Code, similar to a method, that is executed when a join
	  point<emphasis></emphasis> 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.</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
AOP</glossterm>
      <glossdef>
	  <para>See <emphasis>aspect-oriented programming</emphasis>.</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
aspect</glossterm>
      <glossdef>
	  <para>A modular unit of crosscutting implementation in
	  <emphasis>aspect-oriented programming</emphasis>, just as classes are
	  the modular unit of implementation in object-oriented
	  programming.</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
aspect-oriented programming</glossterm>
      <glossdef>
	  <para>A type or style of programming that explicitly takes into
	  account <emphasis>crosscutting concerns</emphasis>, just as
	  object-oriented programming explicitly takes into account classes and
	  objects. </para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
crosscutting concerns</glossterm>
      <glossdef>
	  <para>Issues or programmer concerns that are not local to the natural
	  unit of modularity. </para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
dynamic context</glossterm>
      <glossdef>
	  <para>The state of a program while it is executing. Contrast with
	  <emphasis>lexical context</emphasis>.</para> 
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
join point</glossterm>
      <glossdef>
	 <para> 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.
	</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
lexical context</glossterm>
      <glossdef>
	  <para>The state of a program as it is written. Contrast with
	  <emphasis>dynamic context</emphasis>.</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
name-based pointcut designator</glossterm>
      <glossdef>
	  <para>A type of pointcut designator that enumerates and composes
	  explicitly named join points. For example,</para>
	  <programlisting>
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));</programlisting>
	  <para>is a pointcut designator that explicitly names five join
	  points. See also <emphasis>property-based pointcut
	    designator</emphasis>.
	</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
pointcut</glossterm>
      <glossdef>
	  <para>A collection of join points.</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
pointcut designator</glossterm>
      <glossdef>
	  <para>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 <literal>||</literal>,
	  <literal>&amp;&amp;<literal>, and </literal>!</literal>. See also
	  <emphasis>name-based pointcut designator</emphasis> and
	  <emphasis>property-based pointcut sesignator</emphasis>. </para>
      </glossdef>
    </glossentry>
    
    <glossentry><glossterm>
post-condition</glossterm>
      <glossdef>
	  <para>A test or assertion that must be true after a method has
	  executed.</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
pre-condition</glossterm>
      <glossdef>
	  <para>A test or assertion that must be true when a method is
	  called.</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
property-based pointcut designator</glossterm>
      <glossdef>
	  <para>A type of pointcut designator that specifies pointcuts in terms
	  of the properties of methods rather than just their names. For
	  example,</para>  
	  <programlisting>
call(public * Figure.*(..))</programlisting>
	  <para>specifies all the public methods in the class
	  <classname>Figure</classname> regardless of the type and number of
	  their arguments or return type. See also <emphasis>name-based
	  pointcut designator</emphasis>.</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
reusable aspect</glossterm>
      <glossdef>
	  <para>An aspect that can be extended or inherited from.</para>
      </glossdef>
    </glossentry>

    <glossentry><glossterm>
signature</glossterm>
      <glossdef>
	  <para>The number, order and type of the arguments to a method.</para>
      </glossdef>
    </glossentry>
    
    <glossentry><glossterm>
<literal>thisJoinPoint</literal></glossterm>
      <glossdef>
	  <para>The special variable that identifies the current join point
	  when a non-static join point is reached.</para>
      </glossdef>
    </glossentry>

  </glosslist>
  
</appendix>

<!-- Local variables: -->
<!-- fill-column: 79 -->
<!-- sgml-local-ecat-files: progguide.ced -->
<!-- sgml-parent-document:("progguide.sgml" "book" "appendix") -->
<!-- End: -->