Example usage for org.eclipse.jdt.core IOpenable isOpen

List of usage examples for org.eclipse.jdt.core IOpenable isOpen

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IOpenable isOpen.

Prototype

boolean isOpen();

Source Link

Document

Returns whether this openable is open.

Usage

From source file:edu.brown.cs.bubbles.bedrock.BedrockUtil.java

License:Open Source License

private static void outputJavaElementImpl(IJavaElement elt, Set<String> files, boolean children,
        IvyXmlWriter xw) {//from   w  w w. j av a 2  s  .co m
    if (elt == null)
        return;

    String close = null;

    switch (elt.getElementType()) {
    case IJavaElement.CLASS_FILE:
        return;
    case IJavaElement.PACKAGE_FRAGMENT:
        IOpenable opn = (IOpenable) elt;
        if (!opn.isOpen()) {
            try {
                opn.open(null);
            } catch (JavaModelException e) {
                BedrockPlugin.logE("Package framgent " + elt.getElementName() + " not open");
                return;
            }
        }
        try {
            outputNameDetails((IPackageFragment) elt, xw);
        } catch (JavaModelException e) {
        }
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        IPackageFragmentRoot pfr = (IPackageFragmentRoot) elt;
        try {
            if (!pfr.isOpen() && pfr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                pfr.open(null);
            }
        } catch (JavaModelException e) {
            return;
        }
        outputNameDetails(pfr, xw);
        break;
    case IJavaElement.JAVA_PROJECT:
        IJavaProject ijp = (IJavaProject) elt;
        outputNameDetails(ijp, xw);
        break;
    case IJavaElement.JAVA_MODEL:
    case IJavaElement.IMPORT_CONTAINER:
    case IJavaElement.IMPORT_DECLARATION:
    case IJavaElement.TYPE_PARAMETER:
    default:
        break;
    case IJavaElement.COMPILATION_UNIT:
        IProject ip = elt.getJavaProject().getProject();
        File f = getFileForPath(elt.getPath(), ip);
        if (files != null && !files.contains(f.getPath()) && !files.contains(f.getAbsolutePath())) {
            return;
        }
        xw.begin("FILE");
        xw.textElement("PATH", f.getAbsolutePath());
        String root = getRootForPath(elt.getPath(), ip);
        if (root != null)
            xw.textElement("PATHROOT", root);
        close = "FILE";
        break;
    case IJavaElement.TYPE:
        try {
            outputNameDetails((IType) elt, xw);
        } catch (JavaModelException e) {
        }
        break;
    case IJavaElement.FIELD:
        try {
            outputNameDetails((IField) elt, xw);
        } catch (JavaModelException e) {
        }
        break;
    case IJavaElement.METHOD:
        try {
            outputNameDetails((IMethod) elt, xw);
        } catch (JavaModelException e) {
        }
        break;
    case IJavaElement.INITIALIZER:
        outputNameDetails((IInitializer) elt, xw);
        break;
    case IJavaElement.PACKAGE_DECLARATION:
        outputNameDetails((IPackageDeclaration) elt, xw);
        break;
    case IJavaElement.LOCAL_VARIABLE:
        outputNameDetails((ILocalVariable) elt, xw);
        break;
    }

    if (children && elt instanceof IParent) {
        try {
            for (IJavaElement c : ((IParent) elt).getChildren()) {
                outputJavaElementImpl(c, files, children, xw);
            }
        } catch (JavaModelException e) {
        }
    }

    if (close != null)
        xw.end(close);
}

From source file:org.eclipse.team.svn.resource.ignore.rules.jdt.JDTIgnoreRecommendations.java

License:Open Source License

public boolean isOutput(IResource resource) throws CoreException {
    IProject project = resource.getProject();
    if (project == null) {
        return false;
    }/*from ww w  . j a v a2  s .co  m*/
    IJavaProject javaProject = JavaCore.create(project);
    IPath output = javaProject.getOutputLocation();
    // if this resource not in the output folder or the project itself is the output folder then no need to ignore it
    if (!output.isPrefixOf(resource.getFullPath()) || output.equals(project.getFullPath())) {
        return false;
    }
    if (!"bin".equals(output.lastSegment())) { //default folder name used in eclipse while creating project with separate source and binary folders
        IOpenable openable = javaProject.getOpenable();
        if (openable.isOpen()) { // do not start any time consuming process
            IPackageFragmentRoot[] roots = JavaCore.create(project).getPackageFragmentRoots();
            for (int i = 0; i < roots.length; i++) {
                if (output.isPrefixOf(roots[i].getPath())) {
                    return false;
                }
            }
        }
    }
    return true;
}