org.aspectj.lang.Signature Maven / Gradle / Ivy
/* *******************************************************************
* 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 v 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
*
* 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();
/**
* @return an abbreviated string representation of this signature.
*/
String toShortString();
/**
* @return an extended string representation of this signature.
*/
String toLongString();
/**
* @return 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());
*
*
* @return the modifiers on this signature represented as an int
* @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()
.
*
* @return the class, interface or aspect that declared this member
* @see java.lang.reflect.Member#getDeclaringClass
*/
Class getDeclaringType();
/**
* This is equivalent to calling getDeclaringType().getName(), but caches
* the result for greater efficiency.
*
* @return the fully qualified name of the declaring type
*/
String getDeclaringTypeName();
}