String search = null;
List<String> requiredTypeNames = new ArrayList<String>();
IJavaProject project = null;
if (querySpecification instanceof ElementQuerySpecification) {
ElementQuerySpecification elementQuerySpecification = (ElementQuerySpecification) querySpecification;
if (elementQuerySpecification.getElement() instanceof IType) {
search = ((IType) elementQuerySpecification.getElement()).getFullyQualifiedName();
project = ((IType) elementQuerySpecification.getElement()).getJavaProject();
}
else if (elementQuerySpecification.getElement() instanceof IField) {
IField field = ((IField) elementQuerySpecification.getElement());
search = field.getElementName();
getTypeHierachy(monitor, requiredTypeNames, field.getDeclaringType());
project = field.getJavaProject();
}
else if (elementQuerySpecification.getElement() instanceof IMethod) {
IMethod method = ((IMethod) elementQuerySpecification.getElement());
search = method.getElementName();
// do property name magic
if (search.startsWith("set")) {
search = StringUtils.uncapitalize(search.substring(3));
}
getTypeHierachy(monitor, requiredTypeNames, method.getDeclaringType());
project = method.getJavaProject();
}
else {
search = elementQuerySpecification.getElement().getElementName();
}
int type = ((ElementQuerySpecification) querySpecification).getElement().getElementType();
if (type == IJavaElement.TYPE) {
searchFor = SEARCH_FOR_TYPES;