JoinPointListener.java :  » Byte-Code » PROSE » ch » ethz » prose » engine » Java Open Source

Java Open Source » Byte Code » PROSE 
PROSE » ch » ethz » prose » engine » JoinPointListener.java
//
//  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
//
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.