/************************************************************************************** * Copyright (c) Jonas Bon�r, Alexandre Vasseur. All rights reserved. * * http://aspectwerkz.codehaus.org * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the LGPL license * * a copy of which has been included with this distribution in the license.txt file. * **************************************************************************************/ package org.codehaus.aspectwerkz.aspect.management; /** * Interface applied to a target class when it has instance level aspects (perInstance, perThis, perTarget) * <p/> * Should <b>NEVER</b> be implemented by the user, but is applied to target classes by the weaver. * * @author <a href="mailto:jboner@codehaus.org">Jonas Bon�r </a> */ public interface HasInstanceLevelAspect { /** * Returns the instance level aspect given a specific aspect factory class, since we know that one aspect class * has one or more factory (due to qNames) and one factory acts for only one aspect qName. * * @param aspectFactoryClass * @return the aspect instance or null if no such aspect */ Object aw$getAspect(Class aspectFactoryClass); /** * Cheks if the instance level aspect with the specific factory class was associated with the instance. * * @param aspectFactoryClass * @return true in case the aspect was registers, false otherwise */ boolean aw$hasAspect(Class aspectFactoryClass); Object aw$bindAspect(Class aspectFactoryClass, Object aspect); }