Example usage for org.aspectj.weaver ConcreteTypeMunger getSignature

List of usage examples for org.aspectj.weaver ConcreteTypeMunger getSignature

Introduction

In this page you can find the example usage for org.aspectj.weaver ConcreteTypeMunger getSignature.

Prototype

public ResolvedMember getSignature() 

Source Link

Usage

From source file:org.eclipse.ajdt.core.model.AJWorldFacade.java

License:Open Source License

public ErasedTypeSignature getMethodTypeSignatures(String typeSignature, IProgramElement elt) {
    if (world == null) {
        return null;
    }/*  w  w w  .j  a va2 s.com*/
    // ensure '/' instead of '.'
    typeSignature = createAJSignature(typeSignature.toCharArray());

    ResolvedType type = world.resolve(UnresolvedType.forSignature(typeSignature));
    if (type == null || type.isMissing()) {
        return null;
    }
    List itds = type.getInterTypeMungersIncludingSupers();
    ConcreteTypeMunger myMunger = null;
    for (Iterator iterator = itds.iterator(); iterator.hasNext();) {
        ConcreteTypeMunger munger = (ConcreteTypeMunger) iterator.next();
        if (equalSignatures(elt, munger)) {
            myMunger = munger;
            break;
        }
    }
    if (myMunger == null) {
        return null;
    }

    String returnTypeSig = myMunger.getSignature().getReturnType().getSignature();
    returnTypeSig = createJDTSignature(returnTypeSig);
    //        returnTypeSig = Signature.toString(returnType);
    UnresolvedType[] parameterTypes = myMunger.getSignature().getParameterTypes();
    String[] parameterTypesStr = new String[parameterTypes.length];
    for (int i = 0; i < parameterTypes.length; i++) {
        parameterTypesStr[i] = parameterTypes[i].getErasureSignature();
        parameterTypesStr[i] = createJDTSignature(parameterTypesStr[i]);
        parameterTypesStr[i] = Signature.toString(parameterTypesStr[i]);
    }
    return new ErasedTypeSignature(returnTypeSig, parameterTypesStr,
            convertTypeParameters(myMunger.getSignature().getTypeVariables()));
}

From source file:org.eclipse.ajdt.core.model.AJWorldFacade.java

License:Open Source License

private boolean equalNames(IProgramElement elt, ConcreteTypeMunger munger) {
    ResolvedMember signature = munger.getSignature();
    return signature != null && (qualifiedElementName(signature)).equals(qualifiedElementName(elt));
}

From source file:org.eclipse.ajdt.core.model.AJWorldFacade.java

License:Open Source License

private boolean equalParams(IProgramElement elt, ConcreteTypeMunger munger) {
    UnresolvedType[] unresolvedTypes = munger.getSignature().getParameterTypes();
    List eltTypes = elt.getParameterTypes();
    int unresolvedTypesLength = unresolvedTypes == null ? 0 : unresolvedTypes.length;
    int eltTypesLength = eltTypes == null ? 0 : eltTypes.size();
    if (unresolvedTypesLength != eltTypesLength) {
        return false;
    }//from  www .  ja  v a2 s .c om
    for (int i = 0; i < unresolvedTypesLength; i++) {
        String eltParamType = new String((char[]) eltTypes.get(i));
        int genericStart = eltParamType.indexOf('<');
        if (genericStart > -1) {
            eltParamType = eltParamType.substring(0, genericStart);
        }
        String unresolvedTypeName = unresolvedTypes[i].getName();
        genericStart = unresolvedTypeName.indexOf('<');
        if (genericStart > -1) {
            unresolvedTypeName = unresolvedTypeName.substring(0, genericStart);
        }
        if (!unresolvedTypeName.equals(eltParamType)) {
            return false;
        }
    }
    return true;
}