/* ******************************************************************* * Copyright (c) 1999-2001 Xerox Corporation, * 2002 Palo Alto Research Center, Incorporated (PARC). * All rights reserved. * This program and the accompanying materials are made available * under the terms of the Eclipse Public License v1.0 * which accompanies this distribution and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Xerox/PARC initial implementation * ******************************************************************/ package org.aspectj.lang; /**

Represents the signature at a join point. This interface parallels * java.lang.reflect.Member.

* *

This interface is typically used for tracing or logging applications * to obtain reflective information about the join point, i.e. using * the j2se 1.4 java.util.logging API

*
 * aspect Logging {
 *     Logger logger = Logger.getLogger("MethodEntries");
 * 
 *     before(): within(com.bigboxco..*) && execution(public * *(..)) {
 *         Signature sig = thisJoinPoint.getSignature();
 *         logger.entering(sig.getDeclaringType().getName(),
 *                         sig.getName());
 *     }
 * }
 * 
* * *

More detailed information about a specific kind of signature can * be obtained by casting this Signature object into one * of its more specific sub-types available in * org.aspectj.lang.reflect. * * @see java.lang.reflect.Member * @see java.util.logging.Logger */ public interface Signature { String toString(); /** * Returns an abbreviated string representation of this signature. */ String toShortString(); /** * Returns an extended string representation of this signature. */ String toLongString(); /** * Returns the identifier part of this signature. For methods this * will return the method name. * * @see java.lang.reflect.Member#getName */ String getName(); /** * Returns the modifiers on this signature represented as an int. Use * the constants and helper methods defined on * java.lang.reflect.Modifier to manipulate this, i.e. *

     *     // check if this signature is public
     *     java.lang.reflect.Modifier.isPublic(sig.getModifiers());
     * 
     *     // print out the modifiers
     *     java.lang.reflect.Modifier.toString(sig.getModifiers());
     * 
* * @see java.lang.reflect.Member#getModifiers * @see java.lang.reflect.Modifier */ int getModifiers(); /** *

Returns a java.lang.Class object representing the class, * interface, or aspect that declared this member. For intra-member * declarations, this will be the type on which the member is declared, * not the type where the declaration is lexically written. Use * SourceLocation.getWithinType() to get the type in * which the declaration occurs lexically.

*

For consistency with java.lang.reflect.Member, this * method should have been named getDeclaringClass().

* * @see java.lang.reflect.Member#getDeclaringClass */ Class getDeclaringType(); /** * Returns the fully-qualified name of the declaring type. This is * equivalent to calling getDeclaringType().getName(), but caches * the result for greater efficiency. */ String getDeclaringTypeName(); }