List of usage examples for org.eclipse.jdt.core ITypeParameter getJavaProject
IJavaProject getJavaProject();
null if this element is not contained in any Java project (for instance, the IJavaModel is not contained in any Java project). From source file:org.eclipse.recommenders.rcp.utils.JdtUtils.java
License:Open Source License
private static Optional<IType> resolveTypeParameter(ITypeParameter t) { try {//from w ww . j a v a 2 s .com final IJavaProject project = t.getJavaProject(); if (project == null) { return absent(); } final String[] bounds = t.getBoundsSignatures(); if (ArrayUtils.isEmpty(bounds)) { return Optional.fromNullable(project.findType("java.lang.Object")); //$NON-NLS-1$ } else { final IMember declaringMember = t.getDeclaringMember(); final Optional<String> typename = resolveUnqualifiedTypeNamesAndStripOffGenericsAndArrayDimension( bounds[0], declaringMember); if (typename.isPresent()) { return Optional.fromNullable(project.findType(typename.get())); } else { return absent(); } } } catch (JavaModelException e) { log(WARNING_FAILED_TO_RESOLVE_TYPE_PARAMETER, e, t.getElementName()); return absent(); } catch (Exception e) { log(ERROR_FAILED_TO_RESOLVE_TYPE_PARAMETER, e, t.getElementName()); return absent(); } }
From source file:org.eclipse.recommenders.utils.rcp.JdtUtils.java
License:Open Source License
private static Optional<IType> resolveTypeParameter(final ITypeParameter t) { IType type = null;// w ww . jav a 2 s .com try { final IJavaProject project = t.getJavaProject(); final String[] bounds = t.getBoundsSignatures(); if (ArrayUtils.isEmpty(bounds)) { type = project.findType("java.lang.Object"); } else { final IMember declaringMember = t.getDeclaringMember(); final Optional<String> typename = resolveUnqualifiedTypeNamesAndStripOffGenericsAndArrayDimension( bounds[0], declaringMember); if (typename.isPresent()) { type = project.findType(typename.get()); } } } catch (final Exception e) { logError(e, "Failed to resolve type parameter '%s'", t.getElementName()); } return fromNullable(type); }