| /* ******************************************************************* |
| * 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 v1.0 |
| * which accompanies this distribution and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * 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 { |
| |
| public static final ResolvedMember[] NONE = new ResolvedMember[0]; |
| |
| public int getModifiers(World world); |
| |
| public int getModifiers(); |
| |
| public UnresolvedType[] getExceptions(World world); |
| |
| public UnresolvedType[] getExceptions(); |
| |
| public ShadowMunger getAssociatedShadowMunger(); |
| |
| public boolean isAjSynthetic(); |
| |
| public boolean isCompatibleWith(Member am); |
| |
| public boolean hasAnnotation(UnresolvedType ofType); |
| |
| public AnnotationAJ[] getAnnotations(); |
| |
| public ResolvedType[] getAnnotationTypes(); |
| |
| public void setAnnotationTypes(ResolvedType[] annotationtypes); |
| |
| public void addAnnotation(AnnotationAJ annotation); |
| |
| public boolean isBridgeMethod(); |
| |
| public boolean isVarargsMethod(); |
| |
| public boolean isSynthetic(); |
| |
| public void write(CompressingDataOutputStream s) throws IOException; |
| |
| public ISourceContext getSourceContext(World world); |
| |
| public String[] getParameterNames(); |
| |
| public void setParameterNames(String[] names); |
| |
| public AnnotationAJ[][] getParameterAnnotations(); |
| |
| public ResolvedType[][] getParameterAnnotationTypes(); |
| |
| public String getAnnotationDefaultValue(); |
| |
| public String getParameterSignatureErased(); |
| |
| public String getSignatureErased(); |
| |
| public String[] getParameterNames(World world); |
| |
| public AjAttribute.EffectiveSignatureAttribute getEffectiveSignature(); |
| |
| public ISourceLocation getSourceLocation(); |
| |
| public int getStart(); |
| |
| public int getEnd(); |
| |
| public ISourceContext getSourceContext(); |
| |
| public void setPosition(int sourceStart, int sourceEnd); |
| |
| public void setSourceContext(ISourceContext sourceContext); |
| |
| public boolean isAbstract(); |
| |
| public boolean isPublic(); |
| |
| public boolean isDefault(); |
| |
| public boolean isVisible(ResolvedType fromType); |
| |
| public void setCheckedExceptions(UnresolvedType[] checkedExceptions); |
| |
| public void setAnnotatedElsewhere(boolean b); |
| |
| public boolean isAnnotatedElsewhere(); |
| |
| // like toString but include generic signature info |
| public String toGenericString(); |
| |
| public String toDebugString(); |
| |
| public boolean hasBackingGenericMember(); |
| |
| public ResolvedMember getBackingGenericMember(); |
| |
| /** |
| * Get the UnresolvedType for the return type, taking generic signature into account |
| */ |
| public UnresolvedType getGenericReturnType(); |
| |
| /** |
| * Get the TypeXs of the parameter types, taking generic signature into account |
| */ |
| public UnresolvedType[] getGenericParameterTypes(); |
| |
| public 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<T> will turn into List<String> (for example), |
| // but if !isParameterized List<T> will turn into List. |
| public 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 |
| public ResolvedMemberImpl parameterizedWith(UnresolvedType[] typeParameters, ResolvedType newDeclaringType, |
| boolean isParameterized, List<String> aliases); |
| |
| public void setTypeVariables(TypeVariable[] types); |
| |
| public 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. |
| */ |
| public boolean matches(ResolvedMember aCandidateMatch, boolean ignoreGenerics); |
| |
| public void evictWeavingState(); |
| |
| public ResolvedMember parameterizedWith(Map<String, UnresolvedType> m, World w); |
| |
| public boolean isDefaultConstructor(); |
| |
| public void setAnnotations(AnnotationAJ[] annotations); |
| |
| } |