/usr/share/doc/aspectj-doc/progguide/semantics.html is in aspectj-doc 1.8.3-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix B. Language Semantics</title><link rel="stylesheet" type="text/css" href="aspectj-docs.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The AspectJTM Programming Guide"><link rel="up" href="index.html" title="The AspectJTM Programming Guide"><link rel="prev" href="quick-aspectAssociations.html" title="Aspects"><link rel="next" href="semantics-joinPoints.html" title="Join Points"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix B. Language Semantics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="quick-aspectAssociations.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="semantics-joinPoints.html">Next</a></td></tr></table><hr></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a name="semantics"></a>Appendix B. Language Semantics</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="semantics.html#semantics-intro">Introduction</a></span></dt><dt><span class="sect1"><a href="semantics-joinPoints.html">Join Points</a></span></dt><dt><span class="sect1"><a href="semantics-pointcuts.html">Pointcuts</a></span></dt><dd><dl><dt><span class="sect2"><a href="semantics-pointcuts.html#pointcut-definition">Pointcut definition</a></span></dt><dt><span class="sect2"><a href="semantics-pointcuts.html#context-exposure">Context exposure</a></span></dt><dt><span class="sect2"><a href="semantics-pointcuts.html#primitive-pointcuts">Primitive pointcuts</a></span></dt><dt><span class="sect2"><a href="semantics-pointcuts.html#signatures">Signatures</a></span></dt><dt><span class="sect2"><a href="semantics-pointcuts.html#matching">Matching</a></span></dt><dt><span class="sect2"><a href="semantics-pointcuts.html#type-patterns">Type patterns</a></span></dt><dt><span class="sect2"><a href="semantics-pointcuts.html#pattern-summary">Pattern Summary</a></span></dt></dl></dd><dt><span class="sect1"><a href="semantics-advice.html">Advice</a></span></dt><dd><dl><dt><span class="sect2"><a href="semantics-advice.html#advice-modifiers">Advice modifiers</a></span></dt><dt><span class="sect2"><a href="semantics-advice.html#advice-and-checked-exceptions">Advice and checked exceptions</a></span></dt><dt><span class="sect2"><a href="semantics-advice.html#advice-precedence">Advice precedence</a></span></dt><dt><span class="sect2"><a href="semantics-advice.html#reflective-access-to-the-join-point">Reflective access to the join point</a></span></dt></dl></dd><dt><span class="sect1"><a href="semantics-declare.html">Static crosscutting</a></span></dt><dd><dl><dt><span class="sect2"><a href="semantics-declare.html#inter-type-member-declarations">Inter-type member declarations</a></span></dt><dt><span class="sect2"><a href="semantics-declare.html#access-modifiers">Access modifiers</a></span></dt><dt><span class="sect2"><a href="semantics-declare.html#conflicts">Conflicts</a></span></dt><dt><span class="sect2"><a href="semantics-declare.html#extension-and-implementation">Extension and Implementation</a></span></dt><dt><span class="sect2"><a href="semantics-declare.html#interfaces-with-members">Interfaces with members</a></span></dt><dt><span class="sect2"><a href="semantics-declare.html#warnings-and-errors">Warnings and Errors</a></span></dt><dt><span class="sect2"><a href="semantics-declare.html#softened-exceptions">Softened exceptions</a></span></dt><dt><span class="sect2"><a href="semantics-declare.html#advice-precedence">Advice Precedence</a></span></dt><dt><span class="sect2"><a href="semantics-declare.html#statically-determinable-pointcuts">Statically determinable pointcuts</a></span></dt></dl></dd><dt><span class="sect1"><a href="semantics-aspects.html">Aspects</a></span></dt><dd><dl><dt><span class="sect2"><a href="semantics-aspects.html#aspect-declaration">Aspect Declaration</a></span></dt><dt><span class="sect2"><a href="semantics-aspects.html#aspect-extension">Aspect Extension</a></span></dt><dt><span class="sect2"><a href="semantics-aspects.html#aspect-instantiation">Aspect instantiation</a></span></dt><dt><span class="sect2"><a href="semantics-aspects.html#aspect-privilege">Aspect privilege</a></span></dt></dl></dd></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="semantics-intro"></a>Introduction</h2></div></div></div><p>
AspectJ extends Java by overlaying a concept of join points onto the
existing Java semantics and adding a few new program elements to Java:
</p><p>
A join point is a well-defined point in the execution of a
program. These include method and constructor calls, field accesses and
others described below.
</p><p>
A pointcut picks out join points, and exposes some of the values in the
execution context of those join points. There are several primitive
pointcut designators, and others can be named and defined by the
<code class="literal">pointcut</code> declaration.
</p><p>
A piece of advice is code that executes at each join point in a
pointcut. Advice has access to the values exposed by the
pointcut. Advice is defined by <code class="literal">before</code>,
<code class="literal">after</code>, and <code class="literal">around</code> declarations.
</p><p>
Inter-type declarations form AspectJ's static crosscutting features,
that is, is code that may change the type structure of a program, by
adding to or extending interfaces and classes with new fields,
constructors, or methods. Some inter-type declarations are defined
through an extension of usual method, field, and constructor
declarations, and other declarations are made with a new
<code class="literal">declare</code> keyword.
</p><p>
An aspect is a crosscutting type that encapsulates pointcuts, advice,
and static crosscutting features. By type, we mean Java's notion: a
modular unit of code, with a well-defined interface, about which it is
possible to do reasoning at compile time. Aspects are defined by the
<code class="literal">aspect</code> declaration.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="quick-aspectAssociations.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="semantics-joinPoints.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Aspects </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Join Points</td></tr></table></div></body></html>
|