|
PicoContainer example source code file (AbstractComponentMonitor.java)
The PicoContainer AbstractComponentMonitor.java source code/***************************************************************************** * Copyright (C) PicoContainer Organization. All rights reserved. * * ------------------------------------------------------------------------- * * The software in this package is published under the terms of the BSD * * style license a copy of which has been included with this distribution in * * the LICENSE.txt file. * * * * Original code by Mauro Talevi * *****************************************************************************/ package org.picocontainer.monitors; import java.io.Serializable; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.lang.reflect.Member; import org.picocontainer.ComponentMonitor; import org.picocontainer.ComponentMonitorStrategy; import org.picocontainer.ComponentAdapter; import org.picocontainer.MutablePicoContainer; import org.picocontainer.PicoContainer; import org.picocontainer.monitors.NullComponentMonitor; /** * <p> * A {@link ComponentMonitor monitor} which delegates to another monitor. * It provides a {@link NullComponentMonitor default ComponentMonitor}, * but does not allow to use <code>null for the delegate. * </p> * <p> * It also supports a {@link org.picocontainer.ComponentMonitorStrategy monitor strategy} * that allows to change the delegate. * </p> * * @author Mauro Talevi * @version $Revision: $ */ public class AbstractComponentMonitor implements ComponentMonitor, ComponentMonitorStrategy, Serializable { private ComponentMonitor delegate; /** * Creates a AbstractComponentMonitor with a given delegate * @param delegate the ComponentMonitor to which this monitor delegates */ public AbstractComponentMonitor(ComponentMonitor delegate) { checkMonitor(delegate); this.delegate = delegate; } /** * Creates a AbstractComponentMonitor with an instance of * {@link NullComponentMonitor}. */ public AbstractComponentMonitor() { this(NullComponentMonitor.getInstance()); } public Constructor instantiating(PicoContainer container, ComponentAdapter componentAdapter, Constructor constructor ) { return delegate.instantiating(container, componentAdapter, constructor); } public void instantiated(PicoContainer container, ComponentAdapter componentAdapter, Constructor constructor, Object instantiated, Object[] injected, long duration) { delegate.instantiated(container, componentAdapter, constructor, instantiated, injected, duration); } public void instantiationFailed(PicoContainer container, ComponentAdapter componentAdapter, Constructor constructor, Exception e) { delegate.instantiationFailed(container, componentAdapter, constructor, e); } public void invoking(PicoContainer container, ComponentAdapter componentAdapter, Member member, Object instance) { delegate.invoking(container, componentAdapter, member, instance); } public void invoked(PicoContainer container, ComponentAdapter componentAdapter, Method method, Object instance, long duration) { delegate.invoked(container, componentAdapter, method, instance, duration); } public void invocationFailed(Member member, Object instance, Exception e) { delegate.invocationFailed(member, instance, e); } public void lifecycleInvocationFailed(MutablePicoContainer container, ComponentAdapter componentAdapter, Method method, Object instance, RuntimeException cause) { delegate.lifecycleInvocationFailed(container, componentAdapter, method,instance, cause); } public Object noComponentFound(MutablePicoContainer container, Object componentKey) { return delegate.noComponentFound(container, componentKey); } /** * If the delegate supports a {@link ComponentMonitorStrategy monitor strategy}, * this is used to changed the monitor while keeping the same delegate. * Else the delegate is replaced by the new monitor. * {@inheritDoc} */ public void changeMonitor(ComponentMonitor monitor) { checkMonitor(monitor); if ( delegate instanceof ComponentMonitorStrategy ){ ((ComponentMonitorStrategy)delegate).changeMonitor(monitor); } else { delegate = monitor; } } public ComponentMonitor currentMonitor() { if ( delegate instanceof ComponentMonitorStrategy ){ return ((ComponentMonitorStrategy)delegate).currentMonitor(); } else { return delegate; } } private void checkMonitor(ComponentMonitor monitor) { if ( monitor == null ){ throw new NullPointerException("monitor"); } } } Other PicoContainer examples (source code examples)Here is a short list of links related to this PicoContainer AbstractComponentMonitor.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.