KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > aspectj > compiler > crosscuts > joinpoints > CodeBodyJp


1 /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2  *
3  * This file is part of the compiler and core tools for the AspectJ(tm)
4  * programming language; see http://aspectj.org
5  *
6  * The contents of this file are subject to the Mozilla Public License
7  * Version 1.1 (the "License"); you may not use this file except in
8  * compliance with the License. You may obtain a copy of the License at
9  * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/.
10  *
11  * Software distributed under the License is distributed on an "AS IS" basis,
12  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13  * for the specific language governing rights and limitations under the
14  * License.
15  *
16  * The Original Code is AspectJ.
17  *
18  * The Initial Developer of the Original Code is Xerox Corporation. Portions
19  * created by Xerox Corporation are Copyright (C) 1999-2002 Xerox Corporation.
20  * All Rights Reserved.
21  *
22  * Contributor(s):
23  */

24
25 package org.aspectj.compiler.crosscuts.joinpoints;
26
27 import org.aspectj.compiler.base.ast.*;
28 import org.aspectj.compiler.crosscuts.*;
29
30 public abstract class CodeBodyJp extends JoinPoint {
31     private JoinPoint enclosingJoinPoint;
32
33     public CodeBodyJp(JoinPoint enclosingJoinPoint) {
34         super(enclosingJoinPoint.getCompiler());
35         this.enclosingJoinPoint = enclosingJoinPoint;
36     }
37
38     public Expr makeStaticEnclosingExecutionJoinPointExpr() {
39         if (getEnclosingExecutionJoinPoint() == null) return getAST().makeNull();
40         
41         return getEnclosingExecutionJoinPoint().makeStaticJoinPointVarExpr();
42     }
43
44     public JoinPoint getEnclosingExecutionJoinPoint() {
45         return enclosingJoinPoint;
46     }
47
48     
49     //XXX move most of the default behavior in JoinPoin/Jp to here
50
public abstract ASTObject getSourceLocation();
51
52     public boolean isStaticContext() { return enclosingJoinPoint.isStaticContext(); }
53
54     public abstract String JavaDoc toString();
55
56     public void makeCorrespondences() {
57         if (plans == null) return;
58         super.makeCorrespondences();
59         
60         Dec enclosingDec = getSourceLocation().getEnclosingCodeDec();
61         if (!enclosingDec.fromSource() || enclosingDec instanceof InitializerDec) {
62             enclosingDec = enclosingDec.getLexicalType().getTypeDec();
63         }
64         
65         //System.out.println(this + ": " + enclosingDec);
66

67         ((AspectJCompiler)getCompiler()).getCorrespondences().addPointsTo(
68             enclosingDec, getSourceLocation());
69     }
70 }
71
Popular Tags