@Nullable
  public static EKey psiKey(@NotNull PsiMember psiMethod, @NotNull Direction direction) {
    PsiClass psiClass = psiMethod.getContainingClass();
    if (psiClass != null) {
      String className = getJvmClassName(psiClass);
      String name = psiMethod.getName();
      String sig;
      if (psiMethod instanceof PsiMethod) {
        sig = methodSignature((PsiMethod)psiMethod, psiClass);
        if (((PsiMethod)psiMethod).isConstructor()) {
          name = "<init>";
        }
      } else if (psiMethod instanceof PsiField) {
        sig = descriptor(((PsiField)psiMethod).getType());
      } else return null;
      if (className != null && sig != null && name != null) {
        return new EKey(new Member(className, name, sig), direction, true, false);
      }
    }
    return null;
  }
@Nullable
  public static EKey psiKey(@NotNull PsiMember psiMethod, @NotNull Direction direction)