001 /* 002 Copyright (C) 2001 Renaud Pawlak 003 004 This program is free software; you can redistribute it and/or modify 005 it under the terms of the GNU Lesser General Public License as 006 published by the Free Software Foundation; either version 2 of the 007 License, or (at your option) any later version. 008 009 This program is distributed in the hope that it will be useful, 010 but WITHOUT ANY WARRANTY; without even the implied warranty of 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 GNU Lesser General Public License for more details. 013 014 You should have received a copy of the GNU Lesser General Public License 015 along with this program; if not, write to the Free Software 016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 017 018 package org.objectweb.jac.aspects.tracing; 019 020 import org.aopalliance.intercept.ConstructorInvocation; 021 import org.aopalliance.intercept.MethodInvocation; 022 import org.objectweb.jac.core.*; 023 024 public class RecordingWrapper extends Wrapper { 025 public RecordingWrapper(AspectComponent ac) { 026 super(ac); 027 } 028 029 public Object record(Interaction interaction) { 030 Object ret = proceed(interaction); 031 if(Recorder.get().isRecording()) { 032 Recorder.get().recordMethodCall(interaction.wrappee, 033 interaction.method.getName(), 034 interaction.args); 035 } 036 return ret; 037 } 038 039 public Object invoke(MethodInvocation invocation) throws Throwable { 040 return record((Interaction)invocation); 041 } 042 public Object construct(ConstructorInvocation invocation) throws Throwable { 043 return record((Interaction)invocation); 044 } 045 }