Package org.aspectj.org.eclipse.jdt.core

Examples of org.aspectj.org.eclipse.jdt.core.IMethod


    if(type != null) {
      String[] args = new String[length];
      for(int i = 0;  i< length ; i++){
        args[i] = new String(paramTypeNames[i]);
      }
      IMethod method = type.getMethod(new String(selector),args);
      try{
        parameterNames = new char[length][];
        String[] params = method.getParameterNames();
        for(int i = 0;  i< length ; i++){
          parameterNames[i] = params[i].toCharArray();
        }
      } catch(JavaModelException e){
        parameterNames = null;
View Full Code Here


    String[] parameterSignatures,
    char[][] typeParameterNames,
    char[][][] typeParameterBoundNames,
    char[] uniqueKey,
    boolean isConstructor) {
  IMethod method= type.getMethod(new String(selector), parameterSignatures);

  if (method.exists()) {
    if (typeParameterNames != null && typeParameterNames.length != 0) {
      IMethod[] methods = type.findMethods(method);
      if (methods.length > 1) {
        for (int i = 0; i < methods.length; i++) {
          if (areTypeParametersCompatible(methods[i], typeParameterNames, typeParameterBoundNames)) {
View Full Code Here

}
public void acceptLocalMethod(MethodBinding methodBinding) {
  IJavaElement res = findLocalElement(methodBinding.sourceStart());
  if(res != null) {
    if(res.getElementType() == IJavaElement.METHOD) {
      IMethod method = (IMethod) res;

      char[] uniqueKey = methodBinding.computeUniqueKey();
      if(method.isBinary()) {
        ResolvedBinaryMethod resolvedRes = new ResolvedBinaryMethod(
            (JavaElement)res.getParent(),
            method.getElementName(),
            method.getParameterTypes(),
            new String(uniqueKey));
        resolvedRes.occurrenceCount = method.getOccurrenceCount();
        res = resolvedRes;
      } else {
        ResolvedSourceMethod resolvedRes = new ResolvedSourceMethod(
            (JavaElement)res.getParent(),
            method.getElementName(),
            method.getParameterTypes(),
            new String(uniqueKey));
        resolvedRes.occurrenceCount = method.getOccurrenceCount();
        res = resolvedRes;
      }
      addElement(res);
      if(SelectionEngine.DEBUG){
        System.out.print("SELECTION - accept method("); //$NON-NLS-1$
View Full Code Here

}
public void acceptLocalMethodTypeParameter(TypeVariableBinding typeVariableBinding) {
  MethodBinding methodBinding = (MethodBinding)typeVariableBinding.declaringElement;
  IJavaElement res = findLocalElement(methodBinding.sourceStart());
  if(res != null && res.getElementType() == IJavaElement.METHOD) {
    IMethod method = (IMethod) res;

    ITypeParameter typeParameter = method.getTypeParameter(new String(typeVariableBinding.sourceName));
    if (typeParameter.exists()) {
      addElement(typeParameter);
      if(SelectionEngine.DEBUG){
        System.out.print("SELECTION - accept type parameter("); //$NON-NLS-1$
        System.out.print(typeParameter.toString());
View Full Code Here

  try {
    methods = type.getMethods();
    for (int i = 0; i < methods.length; i++) {
      if (methods[i].getElementName().equals(name)
          && methods[i].getParameterTypes().length == parameterTypeNames.length) {
        IMethod method = methods[i];
        if (uniqueKey != null) {
          ResolvedSourceMethod resolvedMethod = new ResolvedSourceMethod(
            (JavaElement)method.getParent(),
            method.getElementName(),
            method.getParameterTypes(),
            new String(uniqueKey));
          resolvedMethod.occurrenceCount = method.getOccurrenceCount();
          method = resolvedMethod;
        }
        addElement(method);
      }
    }
  } catch (JavaModelException e) {
    return;
  }

  // if no matches, nothing to report
  if (this.elementIndex == -1) {
    // no match was actually found, but a method was originally given -> default constructor
    addElement(type);
    if(SelectionEngine.DEBUG){
      System.out.print("SELECTION - accept type("); //$NON-NLS-1$
      System.out.print(type.toString());
      System.out.println(")"); //$NON-NLS-1$
    }
    return;
  }

  // if there is only one match, we've got it
  if (this.elementIndex == 0) {
    if(SelectionEngine.DEBUG){
      System.out.print("SELECTION - accept method("); //$NON-NLS-1$
      System.out.print(this.elements[0].toString());
      System.out.println(")"); //$NON-NLS-1$
    }
    return;
  }

  // more than one match - must match simple parameter types
  IJavaElement[] matches = this.elements;
  int matchesIndex = this.elementIndex;
  this.elements = JavaElement.NO_ELEMENTS;
  this.elementIndex = -1;
  for (int i = 0; i <= matchesIndex; i++) {
    IMethod method= (IMethod)matches[i];
    String[] signatures = method.getParameterTypes();
    boolean match= true;
    for (int p = 0; p < signatures.length; p++) {
      String simpleName= Signature.getSimpleName(Signature.toString(Signature.getTypeErasure(signatures[p])));
      char[] simpleParameterName = CharOperation.lastSegment(parameterTypeNames[p], '.');
      if (!simpleName.equals(new String(simpleParameterName))) {
        match = false;
        break;
      }
    }

    if (match && !areTypeParametersCompatible(method, typeParameterNames, typeParameterBoundNames)) {
      match = false;
    }

    if (match) {
      addElement(method);
      if(SelectionEngine.DEBUG){
        System.out.print("SELECTION - accept method("); //$NON-NLS-1$
        System.out.print(method.toString());
        System.out.println(")"); //$NON-NLS-1$
      }
    }
  }
View Full Code Here

  IType type = resolveTypeByLocation(declaringTypePackageName, declaringTypeName,
      NameLookup.ACCEPT_ALL,
      selectorStart, selectorEnd);

  if(type != null) {
    IMethod method = null;

    String name = new String(selector);
    IMethod[] methods = null;

    try {
      methods = type.getMethods();
      done : for (int i = 0; i < methods.length; i++) {
        ISourceRange range = methods[i].getNameRange();
        if(range.getOffset() >= selectorStart
            && range.getOffset() + range.getLength() <= selectorEnd
            && methods[i].getElementName().equals(name)) {
          method = methods[i];
          break done;
        }
      }
    } catch (JavaModelException e) {
      //nothing to do
    }

    if(method == null) {
      addElement(type);
      if(SelectionEngine.DEBUG){
        System.out.print("SELECTION - accept type("); //$NON-NLS-1$
        System.out.print(type.toString());
        System.out.println(")"); //$NON-NLS-1$
      }
    } else {
      ITypeParameter typeParameter = method.getTypeParameter(new String(typeParameterName));
      if(typeParameter == null) {
        addElement(method);
        if(SelectionEngine.DEBUG){
          System.out.print("SELECTION - accept method("); //$NON-NLS-1$
          System.out.print(method.toString());
          System.out.println(")"); //$NON-NLS-1$
        }
      } else {
        addElement(typeParameter);
        if(SelectionEngine.DEBUG){
View Full Code Here

       
        String[] parameterTypeSignatures = new String[length];
        for (int i = 0; i < length; i++) {
          parameterTypeSignatures[i] = Signature.createTypeSignature(parameterTypeNames[i], false);
        }
        IMethod searchedMethod = typeHandle.getMethod(String.valueOf(method.selector), parameterTypeSignatures);
        IMethod[] foundMethods = typeHandle.findMethods(searchedMethod);
       
        if(foundMethods != null) {
          int len = foundMethods.length;
          if(len == 1) {
View Full Code Here

/*
* Create method handle.
* Store occurences for create handle to retrieve possible duplicate ones.
*/
private IJavaElement createMethodHandle(IType type, String methodName, String[] parameterTypeSignatures) {
  IMethod methodHandle = type.getMethod(methodName, parameterTypeSignatures);
  if (methodHandle instanceof SourceMethod) {
    while (this.methodHandles.contains(methodHandle)) {
      ((SourceMethod) methodHandle).occurrenceCount++;
    }
  }
View Full Code Here

      final String typeVariableName = new String(referenceBinding.sourceName());
      Binding declaringElement = ((TypeVariableBinding) referenceBinding).declaringElement;
      IBinding declaringTypeBinding = null;
      if (declaringElement instanceof MethodBinding) {
        declaringTypeBinding = this.resolver.getMethodBinding((MethodBinding) declaringElement);
        IMethod declaringMethod = (IMethod) declaringTypeBinding.getJavaElement();
        return (JavaElement) declaringMethod.getTypeParameter(typeVariableName);
      } else {
        ITypeBinding typeBinding2 = this.resolver.getTypeBinding((org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding) declaringElement);
        if (typeBinding2 == null) return null;
        declaringTypeBinding = typeBinding2;
        IType declaringType = (IType) declaringTypeBinding.getJavaElement();
View Full Code Here

    IMember member = typeParameter.getDeclaringMember();
    this.declaringMemberName = member.getElementName().toCharArray(); // store type parameter declaring member name
   
    // For method type parameter, store also declaring class name and parameters type names
    if (member instanceof IMethod) {
      IMethod method = (IMethod) member;
      this.methodDeclaringClassName = method.getParent().getElementName().toCharArray();
      String[] parameters = method.getParameterTypes();
      int length = parameters.length;
      this.methodArgumentTypes = new char[length][];
      for (int i=0; i<length; i++) {
        this.methodArgumentTypes[i] = Signature.toCharArray(parameters[i].toCharArray());
      }
View Full Code Here

TOP

Related Classes of org.aspectj.org.eclipse.jdt.core.IMethod

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.