001/*
002 * (c) 2003-2005, 2009, 2010 ThoughtWorks Ltd
003 * All rights reserved.
004 *
005 * The software in this package is published under the terms of the BSD
006 * style license a copy of which has been included with this distribution in
007 * the LICENSE.txt file.
008 * 
009 * Created on 11-May-2004
010 */
011package com.thoughtworks.proxy.toys.hotswap;
012
013/**
014 * Interface implemented by all proxy instances created by {@link HotSwappingInvoker}.
015 *
016 * @author Aslak Hellesøy
017 * @since 0.1
018 */
019public interface Swappable {
020    /**
021     * Swaps the subject behind the proxy with a new instance.
022     *
023     * @param newSubject the new subject the proxy will delegate to.
024     * @return the old subject
025     * @since 0.1
026     */
027    Object hotswap(Object newSubject);
028}