Example usage for org.eclipse.jdt.core IPackageFragmentRoot getKind

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getKind

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot getKind.

Prototype

int getKind() throws JavaModelException;

Source Link

Document

Returns this package fragment root's kind encoded as an integer.

Usage

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

License:Open Source License

private void addProjectElements(IJavaProject jp, Set<IJavaProject> done, List<IJavaElement> rslt) {
    if (done.contains(jp))
        return;/*from  ww  w .  ja va  2s  .com*/
    done.add(jp);

    try {
        for (IPackageFragmentRoot pfr : jp.getPackageFragmentRoots()) {
            if (!pfr.isArchive() && !pfr.isExternal() && pfr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                rslt.add(pfr);
            }
        }
        for (String pn : jp.getRequiredProjectNames()) {
            try {
                IJavaProject rjp = getJavaProject(pn);
                if (rjp != null)
                    addProjectElements(rjp, done, rslt);
            } catch (BedrockException e) {
            }
        }
    } catch (JavaModelException e) {
    }
}

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

License:Open Source License

/********************************************************************************/

void createPackage(String proj, String pkg, boolean force, IvyXmlWriter xw) throws BedrockException {
    IProject ip = findProject(proj);// w w w  . j  ava 2 s  .com
    IJavaProject ijp = JavaCore.create(ip);

    IPackageFragmentRoot ipfr = null;
    try {
        for (IPackageFragmentRoot pfr : ijp.getAllPackageFragmentRoots()) {
            try {
                if (!pfr.isExternal() && !pfr.isArchive() && pfr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                    ipfr = pfr;
                    break;
                }
            } catch (JavaModelException e) {
            }
        }
    } catch (JavaModelException e) {
        throw new BedrockException("Problem finding package roots: " + e, e);
    }

    if (ipfr == null)
        throw new BedrockException("Can't find source fragment root");

    IPackageFragment ifr = null;
    try {
        ifr = ipfr.createPackageFragment(pkg, force, null);
        ifr.save(null, force);
        ifr.open(null);
    } catch (JavaModelException e) {
        throw new BedrockException("Problem creating package: " + e, e);
    }

    xw.begin("PACKAGE");
    xw.field("NAME", ifr.getElementName());
    File f = BedrockUtil.getFileForPath(ifr.getPath(), ip);
    xw.field("PATH", f.getAbsolutePath());
    xw.end("PACKAGE");
}

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

License:Open Source License

IPackageFragment findPackageFragment(String proj, String pkg) throws BedrockException {
    IProject ip = findProject(proj);//ww  w .  j  a v a2s . c o  m
    IJavaProject ijp = JavaCore.create(ip);
    if (ijp == null)
        return null;

    try {
        for (IPackageFragmentRoot pfr : ijp.getAllPackageFragmentRoots()) {
            try {
                if (!pfr.isExternal() && !pfr.isArchive() && pfr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                    IPackageFragment ipf = pfr.getPackageFragment(pkg);
                    if (ipf != null && ipf.isOpen()) {
                        File f = BedrockUtil.getFileForPath(ipf.getPath(), ip);
                        if (f.exists())
                            return ipf;
                        BedrockPlugin.logE("Fragment path doesn't exist: " + f);
                    }
                }
            } catch (JavaModelException e) {
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
        throw new BedrockException("Problem finding package roots: " + e, e);
    }

    return null;
}

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) {//  www  . ja  v a 2  s  . c  om
    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:edu.clarkson.serl.critic.loader.SootClassLoader.java

License:Open Source License

/**
 * The method traverses all of the project types in depth-first order 
 * including inner and anonymous types and loads them in Soot. 
 * /*from www  .  j a  v a 2s . co m*/
 * 
 * @param monitor The progress monitor.
 * @throws Exception Propagated from JDT APIs.
 */
public void process(IProgressMonitor subMonitor) throws Exception {
    IJavaProject project = CriticPlugin.getIJavaProject();
    IPackageFragmentRoot[] packageFragmentRoots = project.getPackageFragmentRoots();
    subMonitor.beginTask("Loading " + project.getElementName() + " ...", 2);

    SubProgressMonitor monitor = new SubProgressMonitor(subMonitor, 1);
    monitor.beginTask("Loading packages ... ", packageFragmentRoots.length + 1);

    for (IPackageFragmentRoot pkgFragRoot : packageFragmentRoots) {
        if (pkgFragRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
            IJavaElement[] pkgFrags = (IJavaElement[]) pkgFragRoot.getChildren();
            for (IJavaElement pkgFrag : pkgFrags) {
                if (monitor.isCanceled())
                    return;

                monitor.subTask("Loading classes in " + pkgFrag.getElementName());

                if (pkgFrag.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                    IPackageFragment pkgFragment = (IPackageFragment) pkgFrag;
                    IJavaElement[] children = pkgFragment.getChildren();
                    for (IJavaElement anElement : children) {
                        if (monitor.isCanceled())
                            return;

                        // Make sure its a java file
                        if (anElement.getElementType() == IJavaElement.COMPILATION_UNIT) {
                            this.dfsDomTree(anElement, monitor);
                        }
                    }
                }
            }
        }
        monitor.worked(1);
    }

    // Load the necessary classes after all of the classes have been loaded.
    Scene.v().loadNecessaryClasses();
    monitor.done();

    // Create an instance of Interpreter before we process anything further
    Interpreter.instance();

    monitor = new SubProgressMonitor(subMonitor, 1);
    monitor.beginTask("Configuring entry points ... ", this.getAllSootClasses().size());

    for (SootClass c : this.getAllSootClasses()) {
        ExtensionManager manager = ExtensionManager.instance();
        // Configure entry methods for extension plugin
        for (SootMethod method : c.getMethods()) {
            if (monitor.isCanceled())
                return;

            manager.checkEntryMethod(method, monitor);
            monitor.worked(1);
        }
    }
    monitor.done();
}

From source file:fede.workspace.eclipse.java.fields.JavaElementTreeController.java

License:Apache License

/**
 * Select fragment root.//www.j  a v a 2  s .c  o  m
 * 
 * @param pfr
 *            the pfr
 * 
 * @return true, if successful
 * 
 * @throws JavaModelException
 *             the java model exception
 */
protected boolean selectFragmentRoot(IPackageFragmentRoot pfr) throws JavaModelException {
    //      String attrName = (String) getUIField().getLocal("package-select-attribut-jar");
    //      if (attrName != null) {
    //         Item theItem = getItem();
    //         Object jarListObj = theItem.getAttribute(attrName);
    //         if (jarListObj instanceof List) {
    //            List<String> jarList = (List<String>) jarListObj;
    //            if (jarList.contains(pfr.getElementName())) {
    //               return true;
    //            }
    //
    //         }
    //      }

    if (pfr.getKind() == IPackageFragmentRoot.K_BINARY) {
        return false;
    }
    return true;
}

From source file:fede.workspace.eclipse.java.fields.PackageListController.java

License:Apache License

/**
 * Select fragment root./*from   ww w. jav  a  2s.  c  o m*/
 * 
 * @param pfr
 *            the pfr
 * 
 * @return true, if successful
 * 
 * @throws JavaModelException
 *             the java model exception
 */
protected boolean selectFragmentRoot(IPackageFragmentRoot pfr) throws JavaModelException {
    //      String attrName = (String) getUIField().getLocal("package-select-attribut-jar");
    //      if (attrName != null) {
    //         Item theItem = (Item) getUIField().getContext();
    //         Object jarListObj = theItem.getAttribute(attrName);
    //         if (jarListObj instanceof List) {
    //            List<String> jarList = (List<String>) jarListObj;
    //            if (jarList.contains(pfr.getElementName())) {
    //               return true;
    //            }
    //
    //         }
    //      }

    if (pfr.getKind() == IPackageFragmentRoot.K_BINARY) {
        return false;
    }
    return true;
}

From source file:fede.workspace.eclipse.java.fields.StringToPackageValueController.java

License:Apache License

/**
 * Abstract to visual value./*from www .j  a va2s .co m*/
 * 
 * @param value
 *            the value
 * 
 * @return the object
 */
public Object abstractToVisualValue(Object value) {
    List<String> packagesString = (List<String>) value;

    Item theCurrentItem = getItem();
    IJavaProject jp;
    try {
        jp = JavaProjectManager.getJavaProject(theCurrentItem);
    } catch (CoreException e) {
        IStatus status = new Status(IStatus.ERROR, WSJavaPlugin.PLUGIN_ID, 0,
                MessageFormat.format("Cannot find the java projet from the item {0}", theCurrentItem.getName()),
                null);
        WSJavaPlugin.getDefault().log(status);
        return new ArrayList<IPackageFragment>();
    }
    if (jp == null) {
        return new ArrayList<IPackageFragment>();
    }
    IPackageFragmentRoot[] rootPackages;
    try {
        rootPackages = jp.getPackageFragmentRoots();
    } catch (JavaModelException e) {
        WSJavaPlugin.getDefault().log(new Status(IStatus.ERROR, WSPlugin.PLUGIN_ID, 0, MessageFormat.format(
                "Cannot find the package fragment root from the item {0}", theCurrentItem.getName()), null));
        return new ArrayList<IPackageFragment>();
    }
    if (rootPackages == null || rootPackages.length == 0) {
        return new ArrayList<IPackageFragment>();
    }
    if (packagesString == null) {
        return new ArrayList<IPackageFragment>();
    }

    IPackageFragmentRoot packageSrc = null;
    for (IPackageFragmentRoot fr : rootPackages) {
        try {
            if (fr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                packageSrc = fr;
                break;
            }
        } catch (JavaModelException e) {
            WSJavaPlugin.getDefault()
                    .log(new Status(IStatus.ERROR, WSPlugin.PLUGIN_ID, 0,
                            MessageFormat.format(
                                    "Cannot find the type of the package fragment root {1} from the item {0}",
                                    theCurrentItem.getId(), fr.getElementName()),
                            null));
        }
    }
    List<IPackageFragment> ret = new ArrayList<IPackageFragment>();
    for (String pString : packagesString) {
        IPackageFragment findPackage = null;
        for (IPackageFragmentRoot fr : rootPackages) {
            findPackage = fr.getPackageFragment(pString);
            if (findPackage.exists()) {
                break;
            }
        }
        if (packageSrc != null && (findPackage == null || !findPackage.exists())) {
            findPackage = packageSrc.getPackageFragment(pString);
        }
        if (findPackage != null) {
            ret.add(findPackage);
        }
    }
    return ret;
}

From source file:hydrograph.ui.expression.editor.composites.CategoriesDialogSourceComposite.java

License:Apache License

@SuppressWarnings("restriction")
private void loadComboJarListFromBuildPath(Combo comboJarList, String newJarName) {
    comboJarList.removeAll();//www .  j  av a 2s .  co m
    IProject iProject = BuildExpressionEditorDataSturcture.INSTANCE.getCurrentProject();
    IJavaProject iJavaProject = null;
    try {
        iJavaProject = JavaCore.create(iProject);
        PackageFragmentRoot srcfragmentRoot = BuildExpressionEditorDataSturcture.INSTANCE
                .getSrcPackageFragment(iJavaProject);
        comboJarList.add(hydrograph.ui.common.util.Constants.ProjectSupport_SRC);
        comboJarList.setData(String.valueOf(comboJarList.getItemCount() - 1), srcfragmentRoot);

        for (IPackageFragmentRoot iPackageFragmentRoot : iJavaProject.getAllPackageFragmentRoots()) {
            if (isJarPresentInLibFolder(iPackageFragmentRoot.getPath())
                    && iPackageFragmentRoot.getKind() != IPackageFragmentRoot.K_SOURCE) {
                comboJarList.add(iPackageFragmentRoot.getElementName());
                comboJarList.setData(String.valueOf(comboJarList.getItemCount() - 1), iPackageFragmentRoot);
            }
        }
        selectAndLoadJarData(newJarName);
    } catch (JavaModelException javaModelException) {
        LOGGER.error("Error occurred while loading engines-transform jar", javaModelException);
    } finally {
        if (iJavaProject != null) {
            try {
                iJavaProject.close();
            } catch (JavaModelException e) {
                LOGGER.warn("JavaModelException occurred while closing java-project" + e);
            }
        }
    }

}

From source file:hydrograph.ui.expression.editor.jar.util.BuildExpressionEditorDataSturcture.java

License:Apache License

@SuppressWarnings("restriction")
public PackageFragmentRoot getSrcPackageFragment(IJavaProject iJavaProject) throws JavaModelException {
    for (IPackageFragmentRoot iPackageFragmentRoot : iJavaProject.getAllPackageFragmentRoots()) {
        if (iPackageFragmentRoot instanceof PackageFragmentRoot
                && iPackageFragmentRoot.getKind() == iPackageFragmentRoot.K_SOURCE) {
            if (StringUtils.startsWith(iPackageFragmentRoot.toString(),
                    hydrograph.ui.common.util.Constants.ProjectSupport_SRC)) {
                return (PackageFragmentRoot) iPackageFragmentRoot;
            }/*w w w.  j a v a2s .  c  o m*/
        }
    }
    return null;
}