1 /************************************************* 2 * Copyright (c) Shen Li. All rights reserved. * 3 * http://joyaop.sourceforge.net * 4 * -------------------------------------------- * 5 * Distributable under LGPL license. * 6 * See terms of license at gnu.org. * 7 ************************************************/ 8 package net.sf.joyaop.impl.aspect; 9 10 import net.sf.joyaop.Interceptor; 11 import net.sf.joyaop.framework.RuntimeAspect; 12 import net.sf.joyaop.impl.InvocationImpl; 13 import net.sf.joyaop.impl.RuntimeAspectInstance; 14 15 /*** 16 * @author Shen Li 17 */ 18 public class GenericInterceptorAspectImpl extends BaseInterceptorAspectImpl { 19 public void setAspectClass(Class aspectClass) { 20 if (!Interceptor.class.isAssignableFrom(aspectClass)) { 21 throw new IllegalArgumentException("Class " + aspectClass.getName() + " doesn't implement " + Interceptor.class.getName()); 22 } 23 super.setAspectClass(aspectClass); 24 } 25 26 public RuntimeAspectInstance createRuntimeAspectInstance(Class originalClass) { 27 return new GenericInterceptorAspectInstance(this, originalClass); 28 } 29 30 public static class GenericInterceptorAspectInstance extends RuntimeAspectInstance { 31 public GenericInterceptorAspectInstance(RuntimeAspect aspect, Class originalClass) { 32 super(aspect, or