Example usage for org.eclipse.jdt.internal.core PackageFragmentRoot getElementInfo

List of usage examples for org.eclipse.jdt.internal.core PackageFragmentRoot getElementInfo

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.core PackageFragmentRoot getElementInfo.

Prototype

public Object getElementInfo() throws JavaModelException 

Source Link

Document

Returns the info for this handle.

Usage

From source file:org.eclipse.che.jdt.internal.core.Openable.java

License:Open Source License

/**
 * @see IJavaElement//from   w ww.j av a 2 s .  c o  m
 */
public boolean exists() {
    if (manager.getInfo(this) != null)
        return true;
    switch (getElementType()) {
    case IJavaElement.PACKAGE_FRAGMENT:
        PackageFragmentRoot root = getPackageFragmentRoot();
        if (root.isArchive()) {
            // pkg in a jar -> need to open root to know if this pkg exists
            JarPackageFragmentRootInfo rootInfo;
            try {
                rootInfo = (JarPackageFragmentRootInfo) root.getElementInfo();
            } catch (JavaModelException e) {
                return false;
            }
            return rootInfo.rawPackageInfo.containsKey(((PackageFragment) this).names);
        }
        break;
    case IJavaElement.CLASS_FILE:
        if (getPackageFragmentRoot().isArchive()) {
            // class file in a jar -> need to open this class file to know if it exists
            return super.exists();
        }
        break;
    }
    return validateExistence(resource()).isOK();
}