String (Project project, PsiElement element) { if (element instanceof PsiPackage) { return ((PsiPackage)element).getQualifiedName(); } else if (element instanceof PsiClass) { final String refText = ((PsiClass)element).getQualifiedName(); if (refText != null) return refText; return ((PsiClass)element).getName(); } else if (element instanceof PsiField) { PsiField field = (PsiField)element; String name = field.getName(); PsiClass aClass = field.getContainingClass(); if (aClass != null) { return getReferenceText(project, aClass) + "#" + name; } else { return "#" + name; } } else if (element instanceof PsiMethod) { PsiMethod method = (PsiMethod)element; String name = method.getName(); StringBuilder buffer = new StringBuilder(); PsiClass aClass = method.getContainingClass(); if (aClass != null) { buffer.append(getReferenceText(project, aClass)); } buffer.append("#"); buffer.append(name); buffer.append("("); PsiParameter[] parms = method.getParameterList().getParameters(); boolean spaceBeforeComma = JavaFileCodeStyleFacade.forContext(element.getContainingFile()).isSpaceBeforeComma(); boolean spaceAfterComma = JavaFileCodeStyleFacade.forContext(element.getContainingFile()).isSpaceAfterComma(); for (int i = 0; i < parms.length; i++) { PsiParameter parm = parms[i]; String typeText = TypeConversionUtil.erasure(parm.getType()).getCanonicalText(); buffer.append(typeText); if (i < parms.length - 1) { if (spaceBeforeComma) { buffer.append(" "); } buffer.append(","); if (spaceAfterComma) { buffer.append(" "); } } } buffer.append(")"); return buffer.toString(); } else if (element instanceof PsiParameter) { final PsiElement method = ((PsiParameter)element).getDeclarationScope(); if (method instanceof PsiMethod) { return getReferenceText(project, method) + "#"+ ((PsiParameterList)element.getParent()).getParameterIndex((PsiParameter)element); } } else if (element instanceof PsiNamedElement) { return ((PsiNamedElement)element).getName(); } return null; }