Package org.eclipse.jdt.core

Examples of org.eclipse.jdt.core.IMethod


/*
* 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


        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

      } else {
        this.methodParameterTypes[this.typeDepth] = parameterTypes;
      }
      this.methodParameterNames[this.typeDepth] = methodInfo.parameterNames;

      IMethod method = currentType.getMethod(
          this.memberName[this.typeDepth],
          convertTypeNamesToSigs(this.methodParameterTypes[this.typeDepth]));

      // type parameters
      if (methodInfo.typeParameters != null) {
        for (int i = 0, length = methodInfo.typeParameters.length; i < length; i++) {
          TypeParameterInfo typeParameterInfo = methodInfo.typeParameters[i];
          ITypeParameter typeParameter = method.getTypeParameter(new String(typeParameterInfo.name));
          setSourceRange(
            typeParameter,
            new SourceRange(
              typeParameterInfo.declarationStart,
              typeParameterInfo.declarationEnd - typeParameterInfo.declarationStart + 1),
View Full Code Here

      IType currentType = this.types[this.typeDepth];
      SourceRange sourceRange =
        new SourceRange(
          this.memberDeclarationStart[this.typeDepth],
          declarationEnd - this.memberDeclarationStart[this.typeDepth] + 1);
      IMethod method = currentType.getMethod(
          this.memberName[this.typeDepth],
          convertTypeNamesToSigs(this.methodParameterTypes[this.typeDepth]));
      setSourceRange(
        method,
        sourceRange,
View Full Code Here

        }
        break;
      case IJavaElement.TYPE_PARAMETER :
        IJavaElement parent = element.getParent();
        if (parent.getElementType() == IJavaElement.METHOD) {
          IMethod method = (IMethod) parent;
          if (method.isBinary()) {
            IJavaElement[] el = getUnqualifiedMethodHandle(method, false);
            if(el[1] != null && this.sourceRanges.get(el[0]) == null) {
              method = (IMethod) getUnqualifiedMethodHandle(method, true)[0];
            } else {
              method = (IMethod) el[0];
            }
            element = method.getTypeParameter(element.getElementName());
          }
        }
        break;
      case IJavaElement.LOCAL_VARIABLE :
        LocalVariableElementKey key = new LocalVariableElementKey(element.getParent(), element.getElementName());
View Full Code Here

        }
        break;
      case IJavaElement.TYPE_PARAMETER :
        IJavaElement parent = element.getParent();
        if (parent.getElementType() == IJavaElement.METHOD) {
          IMethod method = (IMethod) parent;
          if (method.isBinary()) {
            IJavaElement[] el = getUnqualifiedMethodHandle(method, false);
            if(el[1] != null && this.sourceRanges.get(el[0]) == null) {
              method = (IMethod) getUnqualifiedMethodHandle(method, true)[0];
            } else {
              method = (IMethod) el[0];
            }
            element = method.getTypeParameter(element.getElementName());
          }
        }
        break;
      case IJavaElement.LOCAL_VARIABLE :
        LocalVariableElementKey key = new LocalVariableElementKey(element.getParent(), element.getElementName());
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 != null && 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

TOP

Related Classes of 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.