/* ******************************************************************* * 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()
.