    001    /*****************************************************************************
    002     * Copyright (C) NanoContainer 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    package org.nanocontainer.integrationkit;
    010
    011    import org.picocontainer.MutablePicoContainer;
    012
    013    /**
    014     * Records method calls on a {@link MutablePicoContainer}.
    015     * This allows to replay all invocations on a different container instance.
    016     *
    017     * @author Konstantin Pribluda ( konstantin.pribluda(at)infodesire.com )
    018     * @author Aslak Helles&oslash;y
    019     * @author Mauro Talevi
    020     */
    021    public interface ContainerRecorder {
    022
    023        /**
    024         * Creates a new proxy that will forward all method invocations to the container passed to
    025         * the constructor. All method invocations are recorded so that they can be replayed on a
    026         * different container.
    027         *
    028         * @return a recording container proxy
    029         * @see #replay
    030         */
    031        public MutablePicoContainer getContainerProxy();
    032
    033        /**
    034         * Replay recorded invocations on target container
    035         *
    036         * @param target container where the invocations should be replayed.
    037         */
    038        public void replay(MutablePicoContainer target);
    039    }