/******************************************************************************* * Copyright (c) 2000, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jdt.internal.ui.search; import org.eclipse.jdt.core.IField; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IMethod; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.Signature; import org.eclipse.jdt.ui.JavaElementLabels; public class PatternStrings { public static String getSignature(IJavaElement element) { if (element == null) return null; else switch (element.getElementType()) { case IJavaElement.METHOD: return getMethodSignature((IMethod)element); case IJavaElement.TYPE: return getTypeSignature((IType) element); case IJavaElement.FIELD: return getFieldSignature((IField) element); default: return element.getElementName(); } } public static String getMethodSignature(IMethod method) { StringBuffer buffer= new StringBuffer(); buffer.append(JavaElementLabels.getElementLabel( method.getDeclaringType(), JavaElementLabels.T_FULLY_QUALIFIED | JavaElementLabels.USE_RESOLVED)); boolean isConstructor= method.getElementName().equals(method.getDeclaringType().getElementName()); if (!isConstructor) { buffer.append('.'); } buffer.append(getUnqualifiedMethodSignature(method, !isConstructor)); return buffer.toString(); } private static String getUnqualifiedMethodSignature(IMethod method, boolean includeName) { StringBuffer buffer= new StringBuffer(); if (includeName) { buffer.append(method.getElementName()); } buffer.append('('); String[] types= method.getParameterTypes(); for (int i= 0; i < types.length; i++) { if (i > 0) buffer.append(", "); //$NON-NLS-1$ String typeSig= Signature.toString(types[i]); buffer.append(typeSig); } buffer.append(')'); return buffer.toString(); } public static String getUnqualifiedMethodSignature(IMethod method) { return getUnqualifiedMethodSignature(method, true); } public static String getTypeSignature(IType field) { return JavaElementLabels.getElementLabel(field, JavaElementLabels.T_FULLY_QUALIFIED | JavaElementLabels.T_TYPE_PARAMETERS | JavaElementLabels.USE_RESOLVED); } public static String getFieldSignature(IField field) { return JavaElementLabels.getElementLabel(field, JavaElementLabels.F_FULLY_QUALIFIED); } }