//
// This file is part of the prose package.
//
// The contents of this file are subject to the Mozilla Public License
// Version 1.1 (the "License"); you may not use this file except in
// compliance with the License. You may obtain a copy of the License at
// http://www.mozilla.org/MPL/
//
// Software distributed under the License is distributed on an "AS IS" basis,
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
// for the specific language governing rights and limitations under the
// License.
//
// The Original Code is prose.
//
// The Initial Developer of the Original Code is Andrei Popovici. Portions
// created by Andrei Popovici are Copyright (C) 2002 Andrei Popovici.
// All Rights Reserved.
//
// Contributor(s):
// $Id: JoinPointListener.java,v 1.2 2004/05/12 09:41:55 anicoara Exp $
// =====================================================================
//
// (history at end)
//
package ch.ethz.prose.engine;
import ch.ethz.jvmai.ExceptionJoinPoint;
import ch.ethz.jvmai.ExceptionCatchJoinPoint;
import ch.ethz.jvmai.FieldAccessJoinPoint;
import ch.ethz.jvmai.FieldModificationJoinPoint;
import ch.ethz.jvmai.MethodEntryJoinPoint;
import ch.ethz.jvmai.MethodExitJoinPoint;
import ch.ethz.jvmai.ConstructorJoinPoint;
/**
* Interface JoinPointListener should be implemented by all interfaces
* interested in JoinPointEvents. A listener can be registered
* together with an instance of <code>JoinPointRequest</code> into
* a <code>JoinPointManager</code>. As a consequesce, the listener
* will be notified using the method <code>joinPointReached</code>
* about every time the join point is reached.
*
*
* @version $Revision: 1.2 $
* @author Andrei Popovici
* @author Angela Nicoara
*/
public
abstract class JoinPointListener {
/** A join point corresponding to the request this listener
* was registered together with has occurred.
*/
public abstract void joinPointReached(MethodEntryJoinPoint e)
throws Exception;
public abstract void joinPointReached(MethodExitJoinPoint e)
throws Exception;
public abstract void joinPointReached(FieldAccessJoinPoint e)
throws Exception;
public abstract void joinPointReached(FieldModificationJoinPoint e)
throws Exception;
public abstract void joinPointReached(ExceptionJoinPoint e)
throws Exception;
public abstract void joinPointReached(ExceptionCatchJoinPoint e)
throws Exception;
public abstract void joinPointReached(ConstructorJoinPoint e)
throws Exception;
}
//======================================================================
//
// $Log: JoinPointListener.java,v $
// Revision 1.2 2004/05/12 09:41:55 anicoara
// Remove the README.RVM file
//
// Revision 1.1.1.1 2003/07/02 15:30:51 apopovic
// Imported from ETH Zurich
//
// Revision 1.2 2003/07/02 12:42:54 anicoara
// Added CatchJoinPoint Functionality (Requests, Join-Points, Filters, CatchCuts, Tests)
//
// Revision 1.1 2003/05/05 13:58:26 popovici
// renaming from runes to prose
//
// Revision 1.12 2003/03/04 18:36:04 popovici
// Organization of imprts
//
// Revision 1.11 2003/03/04 11:27:30 popovici
// Important refactorization step (march):
// - removal of 'JoinPointEvents'; JoinPoints now have the same function as events
// - reimplementation of the JVMAIDebuggerAspectInterface (better performance, coding conventions, removal of ProseVM
// structures
//
// Revision 1.10 2002/10/31 18:26:54 pschoch
// Capability of crosscutting Exceptions added to prose.
//
// Revision 1.9 2002/10/25 07:42:38 popovici
// Undo Chnages Phillippe
//
// Revision 1.7 2002/10/17 17:05:54 pschoch
// Added throw capabability to JVMAI
//
// Revision 1.6 2002/10/17 12:23:43 pschoch
// Added throw capabability to JVMAI
//
// Revision 1.5 2002/03/28 13:48:49 popovici
// Mozilla-ified
//
// Revision 1.4 2002/03/12 09:49:32 popovici
// Join Point listener now abstract class (performance reasons)
//
// Revision 1.3 2002/02/21 12:39:20 popovici
// Crosscut efficiency issues:
// - joinPointAction dispatch based on static optimization
// (->doesEventSpecialization, 'setSpecializer' modified)
// (->calculation of 'adviceMethodOptimization', in Func.Crossc)
// - joinPointAction now uses JoinPoints (not Events)
// - JoinPointListeners (including crosscuts) now use joinPointReached(XXXJoinPoint) to avoid casting
// Crosscut architectural issues:
// - AbstractCrosscut now insertable.
// - AbstractCrosscuts owns referecnces to JVMAI
//
// Revision 1.2 2002/02/05 10:00:55 smarkwal
// JVMDI-specific code replaced by JVMAI. Prose-implementation classes and reflection package removed.
//
// Revision 1.1.1.1 2001/11/29 18:13:19 popovici
// Sources from runes
//
// Revision 1.1.2.1 2000/10/16 20:09:19 popovici
// Documentation added.
//
// Revision 1.1 2000/10/16 11:55:37 popovici
// Initial Revision
//
|