Example usage for org.eclipse.jdt.core ITypeParameter getJavaProject

List of usage examples for org.eclipse.jdt.core ITypeParameter getJavaProject

Introduction

In this page you can find the example usage for org.eclipse.jdt.core ITypeParameter getJavaProject.

Prototype

IJavaProject getJavaProject();

Source Link

Document

Returns the Java project this element is contained in, or null if this element is not contained in any Java project (for instance, the IJavaModel is not contained in any Java project).

Usage

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);
}