package org.yajul.micro; import com.google.inject.Inject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.yajul.micro.annotations.Component; import java.lang.reflect.Method; /** * Test component * <br> * User: josh * Date: Jan 28, 2009 * Time: 5:50:30 PM */ @Component(key="TimeMachine") public class Delorian implements TimeMachine, MethodWrapper { private static final Logger log = LoggerFactory.getLogger(Delorian.class); private FluxCapacitor capacitor; private int before; private int after; private int excep; private int magic; @Inject public Delorian(FluxCapacitor capacitor) { this.capacitor = capacitor; } public int getDestinationYear() { return 1982 + capacitor.getFuzzFactor(); } public void beforeMethod(Method method) { before++; if (log.isDebugEnabled()) log.debug("beforeMethod(" + method + ") : " + before); } public void afterMethod(Method method, Object returnValue) { after++; if (log.isDebugEnabled()) log.debug("afterMethod(" + method + ") : " + after); } public void onException(Method method, Throwable t) { excep++; if (log.isDebugEnabled()) log.debug("afterException() : " + excep); } public int getBefore() { return before; } public int getAfter() { return after; } public int getExcep() { return excep; } }