All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aspectj.weaver.Member Maven / Gradle / Ivy

Go to download

The AspectJ matcher can be used for matching pointcuts independently of any AspectJ compilation or weaving steps. Most notably, this can be used by frameworks such as Spring AOP which utilise the @AspectJ pointcut syntax but implement aspect weaving in a way independent of AspectJ, e.g. using dynamic proxies.

There is a newer version: 1.9.22.1
Show newest version
/* *******************************************************************
 * Copyright (c) 2002-2010
 * 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
 * ******************************************************************/
package org.aspectj.weaver;

import java.util.Collection;

/**
 * Abstract representation of a member (field/constructor/method) within a type.
 *
 * @author PARC
 * @author Adrian Colyer
 * @author Andy Clement
 */
public interface Member extends Comparable {

	Member[] NONE = new Member[0];

	MemberKind METHOD = new MemberKind("METHOD", 1);
	MemberKind FIELD = new MemberKind("FIELD", 2);
	MemberKind CONSTRUCTOR = new MemberKind("CONSTRUCTOR", 3);
	MemberKind STATIC_INITIALIZATION = new MemberKind("STATIC_INITIALIZATION", 4);
	MemberKind POINTCUT = new MemberKind("POINTCUT", 5);
	MemberKind ADVICE = new MemberKind("ADVICE", 6);
	MemberKind HANDLER = new MemberKind("HANDLER", 7);
	MemberKind MONITORENTER = new MemberKind("MONITORENTER", 8);
	MemberKind MONITOREXIT = new MemberKind("MONITOREXIT", 9);

	AnnotationAJ[][] NO_PARAMETER_ANNOTATIONXS = new AnnotationAJ[][] {};
	ResolvedType[][] NO_PARAMETER_ANNOTATION_TYPES = new ResolvedType[][] {};

	/**
	 * @return the kind of member from those listed as MemberKind instances
	 */
	MemberKind getKind();

	String getName();

	UnresolvedType getDeclaringType();

	UnresolvedType[] getParameterTypes();

	UnresolvedType[] getGenericParameterTypes();

	UnresolvedType getType();

	UnresolvedType getReturnType();

	UnresolvedType getGenericReturnType();

	/**
	 * Return full signature, including return type, e.g. "()LFastCar;". For a signature without the return type, use
	 * getParameterSignature() - it is important to choose the right one in the face of covariance.
	 */
	String getSignature();

	JoinPointSignatureIterator getJoinPointSignatures(World world);

	int getArity();

	/**
	 * Return signature without return type, e.g. "()" for a signature *with* the return type, use getSignature() - it is important
	 * to choose the right one in the face of covariance.
	 */
	String getParameterSignature();

	int getModifiers(World world);

	int getModifiers();

	/**
	 * Returns true iff the member is generic (NOT parameterized)
	 */
	boolean canBeParameterized();

	AnnotationAJ[] getAnnotations();

	Collection getDeclaringTypes(World world);

	String[] getParameterNames(World world);

	UnresolvedType[] getExceptions(World world);

	ResolvedMember resolve(World world);

	int compareTo(Member other);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy