1 /************************************************************************************** 2 * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. * 3 * http://aspectwerkz.codehaus.org * 4 * ---------------------------------------------------------------------------------- * 5 * The software in this package is published under the terms of the LGPL license * 6 * a copy of which has been included with this distribution in the license.txt file. * 7 **************************************************************************************/ 8 package org.codehaus.aspectwerkz.joinpoint; 9 10 /** 11 * Holds static and reflective information about the join point (Runtime Type Information). 12 * 13 * @author <a HREF="mailto:jboner@codehaus.org">Jonas BonŽr </a> 14 */ 15 public interface Rtti { 16 /** 17 * Returns the name (f.e. name of method of field). 18 * 19 * @return 20 */ 21 String getName(); 22 23 /** 24 * Returns the target instance. 25 * 26 * @return the target instance 27 */ 28 Object getTarget(); 29 30 /** 31 * Returns the instance currently executing (this). 32 * 33 * @return the instance currently executing (this) 34 */ 35 Object getThis(); 36 37 /** 38 * Returns the declaring class. 39 * 40 * @return the declaring class 41 */ 42 Class getDeclaringType(); 43 44 /** 45 * Returns the modifiers for the signature. <p/>Could be used like this: 46 * <p/> 47 * <pre> 48 * boolean isPublic = java.lang.reflect.Modifier.isPublic(signature.getModifiers()); 49 * </pre> 50 * 51 * @return the mofifiers 52 */ 53 int getModifiers(); 54 55 Rtti cloneFor(Object targetInstance, Object thisInstance); 56 }