Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.picocontainer.gems.behaviors
Class HotSwappable<T>

    java.lang.Object
      org.picocontainer.behaviors.AbstractBehavior<T>
          org.picocontainer.gems.behaviors.AsmHiddenImplementation<T>
              org.picocontainer.gems.behaviors.HotSwappable<T>

All Implemented Interfaces:
  Serializable, org.objectweb.asm.Opcodes, org.picocontainer.Behavior<T>, org.picocontainer.ComponentAdapter<T>, org.picocontainer.ComponentLifecycle<T>, org.picocontainer.ComponentMonitorStrategy, org.picocontainer.LifecycleStrategy

    public class HotSwappable<T>

extends AsmHiddenImplementation<T>

This component adapter makes it possible to hide the implementation of a real subject (behind a proxy). If the key of the component is of type `Class` and that class represents an interface, the proxy will only implement the interface represented by that Class. Otherwise (if the key is something else), the proxy will implement all the interfaces of the underlying subject. In any case, the proxy will also implement `Swappable`, making it possible to swap out the underlying subject at runtime.

Note that this class doesn't cache instances. If you want caching, use a `Cached` around this one.

Author:
  Paul Hammant
See Also:
  Serialized Form

Nested Class Summary
`static class` | `HotSwappable.Swappable`

Nested classes/interfaces inherited from interface org.picocontainer.ComponentAdapter
`org.picocontainer.ComponentAdapter.NOTHING`

Field Summary

Fields inherited from class org.picocontainer.behaviors.AbstractBehavior
`delegate`

Fields inherited from interface org.objectweb.asm.Opcodes
`AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6`

Constructor Summary
`HotSwappable(org.picocontainer.ComponentAdapter<T> delegate)`

Method Summary
`T` | `getComponentInstance(org.picocontainer.PicoContainer container, Type into)`
`String` | `getDescriptor()`
`T` | `getRealInstance()`
`protected HotSwappable.Swappable` | `getSwappable()`
`T` | `swapRealInstance(T instance)`

Methods inherited from class org.picocontainer.gems.behaviors.AsmHiddenImplementation
`makeProxy`

Methods inherited from class org.picocontainer.behaviors.AbstractBehavior
`accept, changeMonitor, componentHasLifecycle, currentMonitor, dispose, dispose, findAdapterOfType, getComponentImplementation, getComponentInstance, getComponentKey, getDelegate, hasLifecycle, isStarted, start, start, stop, stop, toString, verify`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### HotSwappable

    public HotSwappable(org.picocontainer.ComponentAdapter<T> delegate)

Method Detail

### getSwappable

    protected HotSwappable.Swappable getSwappable()

  Overrides:
    `getSwappable` in class `AsmHiddenImplementation<T>`

### swapRealInstance

    public T swapRealInstance(T instance)

### getRealInstance

    public T getRealInstance()

### getComponentInstance

    public T getComponentInstance(org.picocontainer.PicoContainer container,
                                  Type into)

  Specified by:
    `getComponentInstance` in interface `org.picocontainer.ComponentAdapter<T>`
  Overrides:
    `getComponentInstance` in class `AsmHiddenImplementation<T>`

### getDescriptor

    public String getDescriptor()

  Specified by:
    `getDescriptor` in interface `org.picocontainer.ComponentAdapter<T>`
  Overrides:
    `getDescriptor` in class `AsmHiddenImplementation<T>`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2009 Codehaus. All Rights Reserved.