private void invocationHandler(IMethodBinding methodBinding, Expression invocation) {
      // Obtenho informações da invocação, como nome do metodo, classe e argumentos
      String methodName = methodBinding.getName();
      String className = methodBinding.getDeclaringClass().getQualifiedName();
      List<String> params = new ArrayList<String>(methodBinding.getParameterTypes().length);
      for (int i = 0; i < methodBinding.getParameterTypes().length; i++) {
        params.add(i, methodBinding.getParameterTypes()[i].getQualifiedName());
      }

      // Busca na base por informações do método
      ApiMethod apiMethod =
          new ApiMethodDAO()
              .find(
                  sourceProjectId,
                  ApiMethod.parseFullName(className, methodName, params),
                  DatabaseType.PRE_PROCESSING);

      // Se o método esta presente na API analisada, esta invocação é incluída
      if (apiMethod != null) {
        this.invocations.addLast(invocation);
        mapInvocations.put(invocation, apiMethod);
      }
    }
  // Metodo para tratamento de declarações de métodos
  private void methodDeclarationHandler(MethodDeclaration methodDeclaration, ApiClass apiClass) {
    IMethodBinding mb = methodDeclaration.resolveBinding();
    if (mb == null) {
      return;
    }

    LinkedList<String> paramsType = new LinkedList<String>();
    for (ITypeBinding pt : mb.getParameterTypes()) {
      paramsType.add(pt.getQualifiedName().toString());
    }

    ApiMethod apiMethod = new ApiMethod(apiClass, mb.getName(), paramsType);
    this.setModifiers(apiMethod, methodDeclaration);

    if (mb.isConstructor()) {
      apiMethod.setConstructor(true);
      apiMethod.setVoid(false);
      apiMethod.setFunction(false);
      apiMethod.setReturnType(null);
    } else if (mb.getReturnType().getQualifiedName().equalsIgnoreCase("void")) {
      apiMethod.setVoid(true);
      apiMethod.setFunction(false);
      apiMethod.setReturnType(null);
    } else {
      apiMethod.setVoid(false);
      apiMethod.setFunction(true);
      apiMethod.setReturnType(mb.getReturnType().getQualifiedName());
    }

    apiClass.getApiMethods().add(apiMethod);
    this.methodMap.put(mb, apiMethod);
  }