org.logicalcobwebs.cglib.proxy
Class Mixin

java.lang.Object
  extended by org.logicalcobwebs.cglib.proxy.Mixin

public abstract class Mixin
extends java.lang.Object

Mixin allows multiple objects to be combined into a single larger object. The methods in the generated object simply call the original methods in the underlying "delegate" objects.

Version:
$Id: Mixin.java,v 1.1 2003/12/12 19:28:11 billhorsman Exp $
Author:
Chris Nokleberg

Nested Class Summary
static class Mixin.Generator
           
(package private) static interface Mixin.MixinKey
           
private static class Mixin.Route
           
 
Field Summary
private static Mixin.MixinKey KEY_FACTORY
           
private static java.util.Map ROUTE_CACHE
           
 
Constructor Summary
Mixin()
           
 
Method Summary
private static void collectAllInterfaces(java.lang.Class type, java.util.List list)
           
static Mixin create(java.lang.Class[] interfaces, java.lang.Object[] delegates)
          Helper method to create an interface mixin.
static Mixin create(java.lang.Object[] delegates)
          Helper method to create an interface mixin.
static Mixin createBean(java.lang.Object[] beans)
          Helper method to create a bean mixin.
static java.lang.Class[] getClasses(java.lang.Object[] delegates)
           
static int[] getRoute(java.lang.Object[] delegates)
           
abstract  Mixin newInstance(java.lang.Object[] delegates)
           
private static Mixin.Route route(java.lang.Object[] delegates)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

KEY_FACTORY

private static final Mixin.MixinKey KEY_FACTORY

ROUTE_CACHE

private static final java.util.Map ROUTE_CACHE
Constructor Detail

Mixin

public Mixin()
Method Detail

newInstance

public abstract Mixin newInstance(java.lang.Object[] delegates)

create

public static Mixin create(java.lang.Object[] delegates)
Helper method to create an interface mixin. For finer control over the generated instance, use a new instance of Mixin instead of this static method. TODO


create

public static Mixin create(java.lang.Class[] interfaces,
                           java.lang.Object[] delegates)
Helper method to create an interface mixin. For finer control over the generated instance, use a new instance of Mixin instead of this static method. TODO


createBean

public static Mixin createBean(java.lang.Object[] beans)
Helper method to create a bean mixin. For finer control over the generated instance, use a new instance of Mixin instead of this static method. TODO


getClasses

public static java.lang.Class[] getClasses(java.lang.Object[] delegates)

getRoute

public static int[] getRoute(java.lang.Object[] delegates)

route

private static Mixin.Route route(java.lang.Object[] delegates)

collectAllInterfaces

private static void collectAllInterfaces(java.lang.Class type,
                                         java.util.List list)