org.aspectj.weaver.ResolvedMember Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aspectjweaver Show documentation
Show all versions of aspectjweaver Show documentation
The AspectJ weaver applies aspects to Java classes. It can be used as a Java agent in order to apply load-time
weaving (LTW) during class-loading and also contains the AspectJ runtime classes.
/* *******************************************************************
* Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC).
* 2005 Contributors
* 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:
* PARC initial implementation
* AMC extracted as interface
* ******************************************************************/
package org.aspectj.weaver;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import org.aspectj.bridge.ISourceLocation;
public interface ResolvedMember extends Member, AnnotatedElement, TypeVariableDeclaringElement {
ResolvedMember[] NONE = new ResolvedMember[0];
int getModifiers(World world);
int getModifiers();
UnresolvedType[] getExceptions(World world);
UnresolvedType[] getExceptions();
ShadowMunger getAssociatedShadowMunger();
boolean isAjSynthetic();
boolean isCompatibleWith(Member am);
boolean hasAnnotation(UnresolvedType ofType);
AnnotationAJ[] getAnnotations();
ResolvedType[] getAnnotationTypes();
void setAnnotationTypes(ResolvedType[] annotationtypes);
void addAnnotation(AnnotationAJ annotation);
boolean isBridgeMethod();
boolean isVarargsMethod();
boolean isSynthetic();
void write(CompressingDataOutputStream s) throws IOException;
ISourceContext getSourceContext(World world);
String[] getParameterNames();
void setParameterNames(String[] names);
AnnotationAJ[][] getParameterAnnotations();
ResolvedType[][] getParameterAnnotationTypes();
String getAnnotationDefaultValue();
String getParameterSignatureErased();
String getSignatureErased();
String[] getParameterNames(World world);
AjAttribute.EffectiveSignatureAttribute getEffectiveSignature();
ISourceLocation getSourceLocation();
int getStart();
int getEnd();
ISourceContext getSourceContext();
void setPosition(int sourceStart, int sourceEnd);
void setSourceContext(ISourceContext sourceContext);
boolean isAbstract();
boolean isPublic();
boolean isDefault();
boolean isVisible(ResolvedType fromType);
void setCheckedExceptions(UnresolvedType[] checkedExceptions);
void setAnnotatedElsewhere(boolean b);
boolean isAnnotatedElsewhere();
// like toString but include generic signature info
String toGenericString();
String toDebugString();
boolean hasBackingGenericMember();
ResolvedMember getBackingGenericMember();
/**
* Get the UnresolvedType for the return type, taking generic signature into account
*/
UnresolvedType getGenericReturnType();
/**
* Get the TypeXs of the parameter types, taking generic signature into account
*/
UnresolvedType[] getGenericParameterTypes();
boolean equalsApartFromDeclaringType(Object other);
// return a resolved member in which all type variables in the signature of
// this member have been replaced with the given bindings. the isParameterized flag tells us whether we are creating a raw type
// version or not
// if isParameterized List will turn into List (for example),
// but if !isParameterized List will turn into List.
ResolvedMemberImpl parameterizedWith(UnresolvedType[] typeParameters, ResolvedType newDeclaringType,
boolean isParameterized);
// this variant allows for aliases for type variables (i.e. allowing them to
// have another name)
// this is used for processing ITDs that share type variables with their
// target generic type
ResolvedMemberImpl parameterizedWith(UnresolvedType[] typeParameters, ResolvedType newDeclaringType,
boolean isParameterized, List aliases);
void setTypeVariables(TypeVariable[] types);
TypeVariable[] getTypeVariables();
/**
* Returns true if this member matches the other. The matching takes into account name and parameter types only. When comparing
* parameter types, we allow any type variable to match any other type variable regardless of bounds.
*/
boolean matches(ResolvedMember aCandidateMatch, boolean ignoreGenerics);
void evictWeavingState();
ResolvedMember parameterizedWith(Map m, World w);
boolean isDefaultConstructor();
void setAnnotations(AnnotationAJ[] annotations);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy