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

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

Introduction

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

Prototype

IPackageFragment getPackageFragment(String packageName);

Source Link

Document

Returns the package fragment with the given package name.

Usage

From source file:org.grails.ide.eclipse.ui.contentassist.util.BeansJavaCompletionUtils.java

License:Open Source License

private static IPackageFragment getPackageFragment(IJavaProject project, String prefix)
        throws JavaModelException {
    int dot = prefix.lastIndexOf('.');
    if (dot > -1) {
        String packageName = prefix.substring(0, dot);
        for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
            IPackageFragment p = root.getPackageFragment(packageName);
            if (p != null && p.exists()) {
                return p;
            }//from   w  w w .  j a v a 2 s.c om
        }
        IPackageFragment[] packages = project.getPackageFragments();
        for (IPackageFragment p : packages) {
            if (p.getElementName().equals(packageName)) {
                return p;
            }
        }
    } else {
        for (IPackageFragmentRoot p : project.getAllPackageFragmentRoots()) {
            if (p.getKind() == IPackageFragmentRoot.K_SOURCE) {
                return p.getPackageFragment("");
            }
        }
    }
    return project.getPackageFragments()[0];
}

From source file:org.gw4e.eclipse.facade.JDTManager.java

License:Open Source License

public static IPackageFragment getPackageFragment(IFile file) throws JavaModelException {
    IPackageFragmentRoot root1 = JDTManager.findPackageFragmentRoot(file.getProject(), file.getFullPath());
    IPath path = file.getParent().getFullPath().makeRelativeTo(root1.getPath());
    IPackageFragment pf = root1.getPackageFragment(path.toString().replace("/", "."));
    return pf;/*ww w .  j a  va2s.  c om*/
}

From source file:org.gw4e.eclipse.facade.ResourceManager.java

License:Open Source License

/**
 * Return package fragment of the passed resource
 * //from w  w  w.ja  v a 2 s .c  om
 * @param project
 * @param path
 * @return
 * @throws JavaModelException
 */
public static IPackageFragmentRoot getPackageFragmentRoot(IProject project, IPackageFragment pkg)
        throws JavaModelException {
    IJavaProject jproject = JavaCore.create(project);
    IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots();
    for (int i = 0; i < roots.length; i++) {
        IPackageFragmentRoot root = roots[i];
        IPackageFragment pf = root.getPackageFragment(pkg.getElementName());
        if (pf.equals(pkg))
            return root;
    }
    return null;
}

From source file:org.gw4e.eclipse.facade.ResourceManager.java

License:Open Source License

/**
 * Return package fragment of the passed resource
 * /*from  w  ww .j av  a 2 s  .  c o m*/
 * @param project
 * @param path
 * @return
 * @throws CoreException
 */
public static IPackageFragment getPackageFragment(IProject project, IPath path) throws CoreException {
    IFolder folder = ResourceManager.ensureFolder(project, path.toString(), new NullProgressMonitor());
    IJavaElement element = JavaCore.create(folder);
    if (element instanceof IPackageFragment) {
        return (IPackageFragment) element;
    }
    if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) element;
        element = root.getPackageFragment("");
        return (IPackageFragment) element;
    }
    return null;
}

From source file:org.gw4e.eclipse.test.fwk.ProjectHelper.java

License:Open Source License

public static IFile createDummyClass(IJavaProject project) throws CoreException, IOException {
    String clazz = "import org.graphwalker.core.machine.ExecutionContext ; public class Dummy extends org.gw4e.core.machine.ExecutionContext {}";
    IFolder folder = project.getProject().getFolder("src/test/java");
    IPackageFragmentRoot srcFolder = project.getPackageFragmentRoot(folder);
    IPackageFragment pkg = srcFolder.getPackageFragment("");
    ICompilationUnit cu = pkg.createCompilationUnit("Dummy.java", clazz, false, new NullProgressMonitor());
    cu.save(new NullProgressMonitor(), true);

    return (IFile) cu.getResource();
}

From source file:org.gw4e.eclipse.test.fwk.ProjectHelper.java

License:Open Source License

public static IFile createDummyClassWitherror(IJavaProject project) throws CoreException, IOException {
    String clazz = "import org.graphwalker.core.machine.ExecutionContext ; public class Dummy1 extends org.gw4e.core.machine.ExecutionContext {}";
    IFolder folder = project.getProject().getFolder("src/test/java");
    IPackageFragmentRoot srcFolder = project.getPackageFragmentRoot(folder);
    IPackageFragment pkg = srcFolder.getPackageFragment("");
    ICompilationUnit cu = pkg.createCompilationUnit("Dummy.java", clazz, false, new NullProgressMonitor());
    cu.save(new NullProgressMonitor(), true);
    return (IFile) cu.getResource();
}

From source file:org.jboss.ide.eclipse.as.ui.mbeans.wizards.pages.NewSessionBeanWizardPage.java

License:Open Source License

protected IPackageFragment getPackageFragment(String packageName) throws CoreException {
    // This was copied over from NewTypeWizardPage.packageChanged, and made more generic so we could use it for multiple package inputs
    StatusInfo status = new StatusInfo();

    if (packageName.length() > 0) {
        IStatus val = JavaConventions.validatePackageName(packageName);
        if (val.getSeverity() == IStatus.ERROR) {
            status.setError(NewWizardMessages.bind(NewWizardMessages.NewTypeWizardPage_error_InvalidPackageName,
                    val.getMessage()));
            throw new CoreException(status);
        } else if (val.getSeverity() == IStatus.WARNING) {
            status.setWarning(NewWizardMessages.bind(
                    NewWizardMessages.NewTypeWizardPage_warning_DiscouragedPackageName, val.getMessage()));
            // continue
        }/*from  w  w w. j  a v  a 2 s. c om*/
    } else {
        status.setWarning(NewWizardMessages.NewTypeWizardPage_warning_DefaultPackageDiscouraged);
    }

    IPackageFragmentRoot root = getPackageFragmentRoot();
    if (root != null) {
        if (root.getJavaProject().exists() && packageName.length() > 0) {
            try {
                IPath rootPath = root.getPath();
                IPath outputPath = root.getJavaProject().getOutputLocation();
                if (rootPath.isPrefixOf(outputPath) && !rootPath.equals(outputPath)) {
                    // if the bin folder is inside of our root, don't allow to name a package
                    // like the bin folder
                    IPath packagePath = rootPath.append(packageName.replace('.', '/'));
                    if (outputPath.isPrefixOf(packagePath)) {
                        status.setError(NewWizardMessages.NewTypeWizardPage_error_ClashOutputLocation);
                        throw new CoreException(status);
                    }
                }
            } catch (JavaModelException e) {
                JavaPlugin.log(e);
                // let pass         
            }
        }

        return root.getPackageFragment(packageName);
    } else {
        status.setError(""); //$NON-NLS-1$
    }

    throw new CoreException(status);
}

From source file:org.jboss.tools.cdi.seam.config.ui.contentassist.SeamConfigXmlCompletionProposalComputer.java

License:Open Source License

public static Map<String, IMember> findTypeNamesByPackage(IJavaProject javaProject, String packageName,
        boolean annotationsOnly, boolean classesOnly) throws JavaModelException {
    Map<String, IMember> result = new HashMap<String, IMember>();
    if (PACKAGE_EE.equals(packageName)) {
        for (String name : Util.EE_TYPES.keySet()) {
            String cls = Util.EE_TYPES.get(name);
            IType t = EclipseJavaUtil.findType(javaProject, cls);
            if (accept(t, annotationsOnly, classesOnly))
                result.put(name, t);/*from  w ww. jav  a 2s. c o m*/
        }
        for (String name : Util.EE_TYPES_30.keySet()) {
            String cls = Util.EE_TYPES_30.get(name);
            IType t = EclipseJavaUtil.findType(javaProject, cls);
            if (accept(t, annotationsOnly, classesOnly))
                result.put(name, t);
        }
    } else if (javaProject != null) {
        IPackageFragmentRoot[] rs = javaProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot r : rs) {
            IPackageFragment pkg = r.getPackageFragment(packageName);
            if (pkg != null && pkg.exists()) {
                ICompilationUnit[] units = pkg.getCompilationUnits();
                for (ICompilationUnit u : units) {
                    IType[] ts = u.getTypes();
                    for (IType t : ts)
                        if (accept(t, annotationsOnly, classesOnly))
                            result.put(t.getElementName(), t);
                }
                IClassFile[] cs = pkg.getClassFiles();
                for (IClassFile cls : cs) {
                    if (accept(cls.getType(), annotationsOnly, classesOnly))
                        result.put(cls.getType().getElementName(), cls.getType());
                }
            }
        }

    }
    return result;
}

From source file:org.jboss.tools.common.java.generation.JavaBeanGenerator.java

License:Open Source License

private void doGenerateJava(IJavaProject javaproject, String filepath, Properties p) throws CoreException {
    IPackageFragmentRoot root = getJavaProjectSrcRoot(javaproject);
    String pkgname = p.getProperty(PARAM_PACKAGENAME);
    IPackageFragment pack = root.getPackageFragment(pkgname);
    if (!pack.exists()) {
        pack = root.createPackageFragment(pkgname, true, null);
    }//from   w w  w .  j av  a2  s .  com

    String shortname = p.getProperty(PARAM_SHORTNAME);

    String lineDelimiter = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
    ICompilationUnit parentCU = pack.createCompilationUnit(shortname + ".java", "", false, null); //$NON-NLS-1$ //$NON-NLS-2$
    ICompilationUnit createdWorkingCopy = (ICompilationUnit) parentCU.getWorkingCopy(null);

    ///      imports= new ImportsStructure(createdWorkingCopy, prefOrder, threshold, false);
    ///      imports.addImport(pack.getElementName(), getTypeName());

    String typeContent = constructTypeStub(p, lineDelimiter);
    String cuContent = buildClassContent(parentCU, shortname, typeContent, lineDelimiter);
    createdWorkingCopy.getBuffer().setContents(cuContent);
    IType createdType = createdWorkingCopy.getType(shortname);
    ///      imports.create(false, new SubProgressMonitor(monitor, 1));
    ICompilationUnit cu = createdType.getCompilationUnit();
    synchronized (cu) {
        cu.reconcile(ICompilationUnit.NO_AST, true, null, null);
    }
    ///      imports.create(false, new SubProgressMonitor(monitor, 1));
    ///      synchronized(cu) {
    ///         cu.reconcile();
    ///      }
    ISourceRange range = createdType.getSourceRange();

    IBuffer buf = cu.getBuffer();
    String originalContent = buf.getText(range.getOffset(), range.getLength());
    String formattedContent = codeFormat2(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0,
            lineDelimiter, cu.getJavaProject());
    buf.replace(range.getOffset(), range.getLength(), formattedContent);

    cu.commitWorkingCopy(false, null);
}

From source file:org.jboss.tools.common.model.ui.editor.ModelObjectStorageEditorInput.java

License:Open Source License

IJarEntryResource findJarEntryFile() {
    XModelObject o = object;/*from   ww  w .java  2  s .c  o m*/
    JarEntryFile f = null;
    JarEntryResource current = null;
    String packageName = "";
    List<String> parts = new ArrayList<String>();
    List<XModelObject> os = new ArrayList<XModelObject>();
    while (o != null && o.getFileType() != XModelObject.SYSTEM) {
        String part = o.getFileType() == XModelObject.FILE ? FileAnyImpl.toFileName(o)
                : o.getFileType() == XModelObject.FOLDER ? o.getAttributeValue(XModelObjectConstants.ATTR_NAME)
                        : null;
        if (part != null) {
            parts.add(0, part);
            os.add(0, o);
            if (f == null) {
                f = new JarEntryFile(part) {
                    public InputStream getContents() throws CoreException {
                        return storage.getContents();
                    }
                };
                current = f;
            } else {
                if (packageName.length() > 0) {
                    packageName = part + "." + packageName;
                } else {
                    packageName = part;
                }
                JarEntryDirectory d = new JarEntryDirectory(part);
                current.setParent(d);
                current = d;
            }

        }
        o = o.getParent();
    }
    //      if(!(o instanceof JarSystemImpl)) return null;
    String file = Paths.expand(o.get(XModelObjectConstants.ATTR_NAME_LOCATION), o.getModel().getProperties());

    IProject p = EclipseResourceUtil.getProject(o);
    IJavaProject jp = EclipseResourceUtil.getJavaProject(p);
    if (jp == null)
        return null;

    IPackageFragmentRoot root = null;

    try {
        IPackageFragmentRoot[] rs = jp.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot r : rs) {
            if (r.getResource() != null && r.getResource().exists()
                    && r.getResource().getLocation().toString().equals(file)) {
                root = r;
            } else if (r.getPath() != null && r.getPath().toString().equals(file)) {
                root = r;
            }
        }
    } catch (CoreException e) {
        ModelUIPlugin.getDefault().logError(e);
    }

    if (root == null) {
        root = jp.getPackageFragmentRoot(file);
    }

    if (root == null) {
        return null;
    }

    if (current != null && !"META-INF".equalsIgnoreCase(current.getName()) && packageName.length() > 0) {
        IPackageFragment pf = root.getPackageFragment(packageName);
        f.setParent(pf);
    } else {
        current.setParent(root);
        if (!(o instanceof JarSystemImpl)) {
            Object q = root;
            NonJavaResource nj = null;
            for (int i = 0; i < parts.size(); i++) {
                IResource ri = (IResource) os.get(i).getAdapter(IResource.class);
                if (ri == null) {
                    return f;
                }
                nj = new NonJavaResource(q, ri);
                q = nj;
            }
            if (nj != null) {
                return nj;
            }
        }
    }

    return f;
}