List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getKind
int getKind() throws JavaModelException;
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; }