To: lorenz, wupc Subject: our contributions Cc: kojarski Hi David and Pengcheng: please mark this with your comments. We need to put this into the paper. -- Karl The paper makes the following contributions: 1. We define a generic join point model for checking the LoD generically. The join points are nodes in join point trees, the pointcuts are predicates over the join points and advice is declare warning advice as in AspectJ. 2. We show how the generic LoD checker is used to check the Object Form of the LoD and we provide an elegant implementation in AspectJ. 3. We show how the generic LoD checker is used to check the Class Form of the LoD and we note that we cannot provide an elegant implementation in AspectJ. We can only provide an approximation to a class form checker which checks the LoD Class Form rules for one execution. 4. AspectJ provides lexical join point information through dynamic join points. The paper proposes two ways to extend AspectJ to provide access to lexical join points directly. The first one, proposes statically executable advice and pointcuts in terms of lexical join points and the second one proposes to expose the abstract syntax tree of the program and apply aspect-oriented programming (including Demeter style support for traversal-related concerns) to the abstract syntax tree. We can view the second one as statically executable meta-advice. The title of the paper really should be: A Case for a Lexical Join Point Model: Checking the Law of Demeter with AspectJ -- Karl