/* *******************************************************************
* 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
/** <p>Represents the signature at a join point. This interface parallels
* <code>java.lang.reflect.Member</code>. </p>
*
* <p>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 <code>java.util.logging</code> API</p>
* <pre>
* aspect Logging {
* Logger logger = Logger.getLogger("MethodEntries");
*
* before(): within(com.bigboxco..*) && execution(public * *(..)) {
* Signature sig = thisJoinPoint.getSignature();
* logger.entering(sig.getDeclaringType().getName(),
* sig.getName());
* }
* }
* </pre>
*
*
* <p>More detailed information about a specific kind of signature can
* be obtained by casting this <code>Signature</code> object into one
* of its more specific sub-types available in
* <code>org.aspectj.lang.reflect</code>.
*
* @see java.lang.reflect.Member
* @see java.util.logging.Logger
*/
public interface Signature {
String toString();
Returns: an abbreviated string representation of this signature.
/**
* @return an abbreviated string representation of this signature.
*/
String toShortString();
Returns: an extended string representation of this signature.
/**
* @return an extended string representation of this signature.
*/
String toLongString();
See Also: Returns: the identifier part of this signature. For methods this
will return the method name.
/**
* @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());
See Also: Returns: the modifiers on this signature represented as an int
/**
* Returns the modifiers on this signature represented as an int. Use
* the constants and helper methods defined on
* <code>java.lang.reflect.Modifier</code> to manipulate this, i.e.
* <pre>
* // check if this signature is public
* java.lang.reflect.Modifier.isPublic(sig.getModifiers());
*
* // print out the modifiers
* java.lang.reflect.Modifier.toString(sig.getModifiers());
* </pre>
*
* @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()
.
See Also: Returns: the class, interface or aspect that declared this member
/**
* <p>Returns a <code>java.lang.Class</code> 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
* <code>SourceLocation.getWithinType()</code> to get the type in
* which the declaration occurs lexically.</p>
* <p>For consistency with <code>java.lang.reflect.Member</code>, this
* method should have been named <code>getDeclaringClass()</code>.</p>
*
* @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.
Returns: the fully qualified name of the declaring type
/**
* 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();
}