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

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

Introduction

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

Prototype

int K_SOURCE

To view the source code for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE.

Click Source Link

Document

Kind constant for a source path root.

Usage

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);/*from  ww  w  . j  a va 2 s.com*/
    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) {/*from   www  .j  a  va  2 s. c  o  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: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   w  w  w .  j a  v  a2 s.c o 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:edu.cmu.cups.androidpermissions.handlers.SampleHandler.java

License:Open Source License

private void printPackageInfos(IJavaProject javaProject) throws JavaModelException {
    IPackageFragment[] packages = javaProject.getPackageFragments();
    for (IPackageFragment mypackage : packages) {
        System.out.print(mypackage.getElementName() + " ");
    }//  w ww  . jav a 2 s . c  o  m
    for (IPackageFragment mypackage : packages) {
        // Package fragments include all packages in the
        // classpath
        // We will only look at the package from the source
        // folder (K_SOURCE)
        // K_BINARY would include also included JARS, e.g.
        // rt.jar
        if (mypackage.getKind() == IPackageFragmentRoot.K_SOURCE) {
            if (mypackage.getElementName().length() != 0) {
                System.out.println("Package " + mypackage.getElementName());
            }
            foundManifest = false; //reset for each package
            printICompilationUnitInfo(mypackage);
            System.out.println("done with package " + mypackage.getElementName());
        }

    }
}

From source file:edu.uci.lighthouse.core.util.WorkbenchUtility.java

License:Open Source License

public static Collection<IFile> getFilesFromJavaProject(IJavaProject jProject) {
    Collection<IFile> files = new HashSet<IFile>();
    try {/*w  ww  .j a  va  2 s.  co  m*/
        IPackageFragment[] packagesFragments = jProject.getPackageFragments();
        for (IPackageFragment packageFragment : packagesFragments) {
            if (packageFragment.getKind() == IPackageFragmentRoot.K_SOURCE
                    && packageFragment.getCompilationUnits().length > 0) {
                ICompilationUnit[] icus = packageFragment.getCompilationUnits();
                for (ICompilationUnit icu : icus) {
                    files.add((IFile) icu.getResource());
                }
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return files;
}

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

License:Apache License

private void addProject(ArrayList<IPackageFragmentRoot> result, IProject p) throws JavaModelException {
    IJavaProject jp = JavaCore.create(p);
    if (jp == null) {
        return;/*from  w  ww .j av a  2  s .co  m*/
    }

    IPackageFragmentRoot[] roots = jp.getPackageFragmentRoots();
    for (int i = 0; i < roots.length; i++) {
        if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE || (roots[i].isArchive())) {
            result.add(roots[i]);
        }
    }

}

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

License:Apache License

/**
 * Choose method./*w ww  .j a  v  a2s  .c  o m*/
 * 
 * @return the i method
 */
private IMethod chooseMethod() {
    IJavaElement[] packages = getPackageFragment();

    if (packages == null) {
        packages = new IJavaElement[0];
    }

    StandardJavaElementContentProvider standardJavaElementContentProvider = new StandardJavaElementContentProvider(
            true) {
        @Override
        public Object[] getChildren(Object element) {
            if (element instanceof IJavaElement[]) {
                return (Object[]) element;
            }
            if (element instanceof IPackageFragment) {
                try {
                    return mygetPackageContents((IPackageFragment) element);
                } catch (JavaModelException e) {
                    return new Object[0];
                }
            }

            return super.getChildren(element);
        }

        private Object[] mygetPackageContents(IPackageFragment fragment) throws JavaModelException {
            List<IType> types = new ArrayList<IType>();
            if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) {
                ICompilationUnit[] cu = fragment.getCompilationUnits();
                for (ICompilationUnit oneCu : cu) {
                    types.addAll(Arrays.asList(oneCu.getTypes()));
                }
                return types.toArray();
                // concatenate(fragment.getCompilationUnits(),
                // fragment.getNonJavaResources());
            }
            IClassFile[] cfs = fragment.getClassFiles();
            for (IClassFile cf : cfs) {
                types.add(cf.getType());
            }
            return types.toArray();
            // return concatenate(fragment.getClassFiles(),
            // fragment.getNonJavaResources());
        }

        @Override
        public boolean hasChildren(Object element) {
            if (element instanceof IJavaElement[]) {
                return true;
            }
            return super.hasChildren(element);
        }
    };
    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(packageTable.getShell(),
            JAVA_ELEMENT_LABEL_PROVIDER, standardJavaElementContentProvider);
    // dialog.setIgnoreCase(false);
    dialog.setTitle(NewWizardMessages.NewTypeWizardPage_ChoosePackageDialog_title);
    dialog.setMessage(NewWizardMessages.NewTypeWizardPage_ChoosePackageDialog_description);
    dialog.setEmptyListMessage(NewWizardMessages.NewTypeWizardPage_ChoosePackageDialog_empty);
    dialog.setAllowMultiple(false);
    dialog.setDoubleClickSelects(false);
    dialog.setValidator(new ISelectionStatusValidator() {
        public IStatus validate(Object[] selection) {
            if (selection != null && selection.length == 1 && selection[0] instanceof IMethod) {
                return Status.OK_STATUS;
            }
            return new Status(IStatus.ERROR, WSPlugin.PLUGIN_ID, 0, "Select a method", null);
        }
    });

    dialog.setInput(packages);

    if (methodSelected != null) {
        dialog.setInitialSelections(new Object[] { methodSelected });
    }

    if (dialog.open() == Window.OK) {
        return (IMethod) dialog.getFirstResult();
    }
    return null;
}

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

License:Apache License

/**
 * Abstract to visual value.//from  ww  w  .  j a v a  2s . c  o  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:fr.ifpen.emptooling.reverse.JavaToEcore.java

License:Open Source License

/**
  * Reverse the java project into an EcoreModel.
  * /*from ww  w .  ja v a2  s  . com*/
  * @return the {@link EPackage} corresponding to the java project parsed.
  * @throws JavaModelException
  * @throws InterruptedException
  * @throws InvocationTargetException
  */
public EPackage reverse(IProgressMonitor monitor) throws JavaModelException {
    monitor.beginTask("Java to Ecore reverse processing ...", IProgressMonitor.UNKNOWN);
    String projectName = project.getElementName();
    logEntry(errorLog, "[" + Calendar.getInstance().getTime() + "] " + "Start parsing for : " + projectName);
    logEntry(errorLog, "File Name;Field/Type Name;Error Type;Unresolved Type");
    logEntry(getterLog,
            "[" + Calendar.getInstance().getTime() + "] " + "List of getter annotations for : " + projectName);
    logEntry(getterLog, "File Name;Field Name");
    logEntry(enumLog,
            "[" + Calendar.getInstance().getTime() + "] " + "List of enum annotations for : " + projectName);
    logEntry(enumLog, "File Name;Field Name");

    eProject = eFactory.createEPackage();
    eProject.setName(params.rootPackageName);
    eProject.setNsPrefix(params.rootNsPrefix);
    eProject.setNsURI(params.rootNsURI);

    // IJavaProject project = JavaCore.create(project);
    if (packages.isEmpty()) {
        packages = Arrays.asList(project.getPackageFragments());
    }
    Collections.sort(packages, new Comparator<IPackageFragment>() {
        public int compare(IPackageFragment p1, IPackageFragment p2) {
            return p1.getElementName().compareTo(p2.getElementName());
        }
    });

    for (IPackageFragment mypackage : packages) {
        if (mypackage.getKind() == IPackageFragmentRoot.K_SOURCE && mypackage.hasChildren()) {
            EPackage processPackage = processPackage(mypackage);
            eProject.getESubpackages().add(processPackage);
        }
    }

    for (Entry<IType, EClassifier> entry : eTypesAdded.entrySet()) {
        IType iType = entry.getKey();
        EClassifier eClassifier = entry.getValue();
        if (eClassifier instanceof EClass) {
            /* Post-processing to resolve super-classes references */
            postProcessType(iType, (EClass) eClassifier);
            /* Process all fields of IType */
            processFields(iType, (EClass) eClassifier);
        } else if (eClassifier instanceof EEnum) {
            processLiterals(iType, (EEnum) eClassifier);
        }
    }

    logEntry(errorLog, "[" + Calendar.getInstance().getTime() + "] " + "End of parsing for : " + projectName);
    logEntry(getterLog, "[" + Calendar.getInstance().getTime() + "] "
            + "End of list of getter annotations for : " + projectName);
    monitor.done();
    return eProject;
}

From source file:fr.ifpen.emptooling.reverse.ui.handlers.ReverseToEcoreHandler.java

License:Open Source License

/**
 * the command has been executed, so extract extract the needed information
 * from the application context.//from  w  w  w.  java 2 s . co m
 */
public Object execute(ExecutionEvent event) throws ExecutionException {
    IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
    Shell activeShell = HandlerUtil.getActiveShell(event);
    StructuredSelection sSelection = (StructuredSelection) window.getSelectionService().getSelection();
    if (!sSelection.isEmpty()) {
        Object selection = sSelection.getFirstElement();
        if (selection instanceof IJavaProject) {
            javaProject = (IJavaProject) selection;
            if (javaPackages.isEmpty()) {
                try {
                    for (IPackageFragment pf : javaProject.getPackageFragments()) {
                        if (pf.getKind() == IPackageFragmentRoot.K_SOURCE && pf.hasChildren()) {
                            javaPackages.add(pf);
                        }
                    }
                } catch (JavaModelException e) {
                    e.printStackTrace();
                }
            }
        } else {
            if (selection instanceof IPackageFragment
                    && ((IPackageFragment) selection).getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                this.javaPackages.add((IPackageFragment) selection);
                this.javaProject = ((IPackageFragment) selection).getJavaProject();
            }
        }
        ReverseToEcoreWizard wizard = new ReverseToEcoreWizard();
        WizardDialog dialog = new WizardDialog(activeShell, wizard);
        wizard.setWindowTitle("Reverse configuration");

        if (dialog.open() == Window.OK) {
            final ReverseSettings reverseSettings = new ReverseSettings();
            reverseSettings.rootNsPrefix = wizard.getBaseNSPrefix();
            reverseSettings.rootNsURI = wizard.getBaseURI();
            reverseSettings.rootPackageName = javaProject.getElementName();
            final IContainer target = wizard.getTargetContainer();
            IRunnableWithProgress operation = new ReverseToEcoreRunnable(javaProject, javaPackages,
                    reverseSettings, target);
            try {
                PlatformUI.getWorkbench().getProgressService().run(true, true, operation);
            } catch (InvocationTargetException e) {
                IStatus status = new Status(IStatus.ERROR, ReverseUIPlugin.PLUGIN_ID, e.getMessage(), e);
                ReverseUIPlugin.getPlugin().getLog().log(status);
            } catch (InterruptedException e) {
                IStatus status = new Status(IStatus.ERROR, ReverseUIPlugin.PLUGIN_ID, e.getMessage(), e);
                ReverseUIPlugin.getPlugin().getLog().log(status);
            }

        }

    }
    return null;
}