001/*****************************************************************************
002 * Copyright (C) PicoContainer Organization. All rights reserved.            *
003 * ------------------------------------------------------------------------- *
004 * The software in this package is published under the terms of the BSD      *
005 * style license a copy of which has been included with this distribution in *
006 * the LICENSE.txt file.                                                     *
007 *                                                                           *
008 *****************************************************************************/
009
010package org.picocontainer;
011
012
013/**
014 * <p>
015 * Interface responsible for changing monitoring strategy.
016 * It may be implemented by {@link org.picocontainer.PicoContainer containers} and
017 * single {@link org.picocontainer.ComponentAdapter component adapters}.
018 * The choice of supporting the monitor strategy is left to the
019 * implementers of the container and adapters.
020 * </p>
021 *
022 * @author Paul Hammant
023 * @author Joerg Schaible
024 * @author Mauro Talevi
025 */
026public interface ComponentMonitorStrategy {
027
028    /**
029     * Changes the component monitor used
030     * @param monitor the new ComponentMonitor to use
031     */
032    void changeMonitor(ComponentMonitor monitor);
033
034    /**
035     * Returns the monitor currently used
036     * @return The ComponentMonitor currently used
037     */
038    ComponentMonitor currentMonitor();
039
040}