1 /* 2 * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved. 3 */ 4 package com.tc.aspectwerkz.aspect; 5 6 /** 7 * Interface for that all mixin factories must implement. 8 * 9 * @author <a HREF="mailto:jboner@codehaus.org">Jonas BonŽr </a> 10 */ 11 public interface MixinFactory { 12 13 /** 14 * Creates a new perJVM mixin instance, if it already exists then return it. 15 * 16 * @return the mixin instance 17 */ 18 Object mixinOf(); 19 20 /** 21 * Creates a new perClass mixin instance, if it already exists then return it. 22 * 23 * @param klass 24 * @return the mixin instance 25 */ 26 Object mixinOf(Class klass); 27 28 /** 29 * Creates a new perInstance mixin instance, if it already exists then return it. 30 * 31 * @param instance 32 * @return the mixin instance 33 */ 34 Object mixinOf(Object instance); 35 }