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

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

Introduction

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

Prototype

IPackageFragment createPackageFragment(String name, boolean force, IProgressMonitor monitor)
        throws JavaModelException;

Source Link

Document

Creates and returns a package fragment in this root with the given dot-separated package name.

Usage

From source file:org.jbpm.eclipse.wizard.project.NewJBPMMavenProjectWizard.java

License:Apache License

/**
 * Create the sample process junit test file.
 *//*from w ww .  j av  a  2s  .  c o  m*/
private void createProcessSampleMain(IJavaProject project, IProgressMonitor monitor)
        throws JavaModelException, IOException {
    String s = "org/jbpm/eclipse/wizard/project/ProcessMain-advanced.java.template";
    IFolder folder = project.getProject().getFolder("src/main/java");
    IPackageFragmentRoot packageFragmentRoot = project.getPackageFragmentRoot(folder);
    IPackageFragment packageFragment = packageFragmentRoot.createPackageFragment("com.sample", true, monitor);
    InputStream inputstream = getClass().getClassLoader().getResourceAsStream(s);
    packageFragment.createCompilationUnit("ProcessMain.java", new String(readStream(inputstream)), true,
            monitor);
}

From source file:org.jbpm.eclipse.wizard.project.NewJBPMProjectWizard.java

License:Apache License

/**
 * Create the sample process launcher file.
 *//*w  ww .jav  a 2 s .co m*/
private void createProcessSampleLauncher(IJavaProject project, String exampleType, IProgressMonitor monitor)
        throws JavaModelException, IOException, CoreException {

    String s = "org/jbpm/eclipse/wizard/project/ProcessLauncher-" + exampleType + ".java.template";
    IFolder folder = project.getProject().getFolder("src/main/java");
    IPackageFragmentRoot packageFragmentRoot = project.getPackageFragmentRoot(folder);
    IPackageFragment packageFragment = packageFragmentRoot.createPackageFragment("com.sample", true, monitor);
    InputStream inputstream = getClass().getClassLoader().getResourceAsStream(s);
    packageFragment.createCompilationUnit("ProcessMain.java", new String(readStream(inputstream)), true,
            monitor);
    if ("advanced".equals(exampleType)) {
        folder = project.getProject().getFolder("src/main/resources/META-INF");
        createFolder(folder, null);
        inputstream = getClass().getClassLoader().getResourceAsStream(
                "org/jbpm/eclipse/wizard/project/ProcessLauncher-advanced-persistence.xml.template");
        IFile file = folder.getFile("persistence.xml");
        if (!file.exists()) {
            file.create(inputstream, true, monitor);
        } else {
            file.setContents(inputstream, true, false, monitor);
        }
    }
}

From source file:org.jbpm.eclipse.wizard.project.NewJBPMProjectWizard.java

License:Apache License

/**
 * Create the sample process junit test file.
 *//*  w  w w  . j a  v a  2s . c om*/
private void createProcessSampleJUnit(IJavaProject project, String exampleType, IProgressMonitor monitor)
        throws JavaModelException, IOException {

    String s = "org/jbpm/eclipse/wizard/project/ProcessJUnit-" + exampleType + ".java.template";
    IFolder folder = project.getProject().getFolder("src/main/java");
    IPackageFragmentRoot packageFragmentRoot = project.getPackageFragmentRoot(folder);
    IPackageFragment packageFragment = packageFragmentRoot.createPackageFragment("com.sample", true, monitor);
    InputStream inputstream = getClass().getClassLoader().getResourceAsStream(s);
    packageFragment.createCompilationUnit("ProcessTest.java", new String(readStream(inputstream)), true,
            monitor);
}

From source file:org.jbpm.gd.jpdl.wizard.NewProcessProjectWizard.java

License:Open Source License

private void createSimpleProcessTest(IJavaProject javaProject) throws JavaModelException, IOException {
    String resourceName = "org/jbpm/gd/jpdl/resource/SimpleProcessTest.java.template";
    IFolder folder = javaProject.getProject().getFolder("src/test/java");
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(folder);
    IPackageFragment pack = root.createPackageFragment("com.sample", true, null);
    InputStream stream = getClass().getClassLoader().getResourceAsStream(resourceName);
    byte[] content = readStream(stream);
    pack.createCompilationUnit("SimpleProcessTest.java", new String(content), true, null);
}

From source file:org.jbpm.gd.jpdl.wizard.NewProcessProjectWizard.java

License:Open Source License

private void createMessageActionHandler(IJavaProject javaProject) throws JavaModelException, IOException {
    String resourceName = "org/jbpm/gd/jpdl/resource/MessageActionHandler.java.template";
    IFolder folder = javaProject.getProject().getFolder("src/main/java");
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(folder);
    IPackageFragment pack = root.createPackageFragment("com.sample.action", true, null);
    InputStream stream = getClass().getClassLoader().getResourceAsStream(resourceName);
    byte[] content = readStream(stream);
    pack.createCompilationUnit("MessageActionHandler.java", new String(content), true, null);
}

From source file:org.mybatis.generator.eclipse.core.callback.EclipseShellCallback.java

License:Apache License

private IPackageFragment getPackage(IPackageFragmentRoot srcFolder, String packageName) throws ShellException {

    IPackageFragment fragment = srcFolder.getPackageFragment(packageName);

    try {/* w  ww  . j av  a  2s .c o m*/
        if (!fragment.exists()) {
            fragment = srcFolder.createPackageFragment(packageName, true, null);
        }

        fragment.getCorrespondingResource().refreshLocal(IResource.DEPTH_ONE, null);
    } catch (CoreException e) {
        throw new ShellException(e.getStatus().getMessage(), e);
    }

    return fragment;
}

From source file:org.neuro4j.studio.core.diagram.wizards.customblock.CustomBlockNewWizardPage.java

License:Apache License

public void createType(IProgressMonitor monitor, Map<String, String> parameters)
        throws CoreException, InterruptedException {
    if (monitor == null) {
        monitor = new NullProgressMonitor();
    }//from   w  w  w .j a v a  2  s .c o m

    monitor.beginTask(NewWizardMessages.NewTypeWizardPage_operationdesc, 8);

    IPackageFragmentRoot root = getPackageFragmentRoot();
    IPackageFragment pack = getPackageFragment();
    if (pack == null) {
        pack = root.getPackageFragment(""); //$NON-NLS-1$
    }

    if (!pack.exists()) {
        String packName = pack.getElementName();
        pack = root.createPackageFragment(packName, true, new SubProgressMonitor(monitor, 1));
    } else {
        monitor.worked(1);
    }

    boolean needsSave;
    ICompilationUnit connectedCU = null;

    try {
        String typeName = getTypeName();
        IType createdType;

        String cuName = getTypeName();
        InputStream is = openContentStream();

        String content = readStream(is);
        content = replaceContent(content, "{fileName}", getNameWithoutExt());
        content = replaceContent(content, "{packageFullName}", getPackageFullString(pack));
        content = replaceContent(content, "{staticImport}", getStaticImportString(pack));

        Iterator<String> it = parameters.keySet().iterator();

        while (it.hasNext()) {
            String key = it.next();
            String value = parameters.get(key);
            content = replaceContent(content, key, value);
        }

        ICompilationUnit parentCU = pack.createCompilationUnit(cuName, content, false,
                new SubProgressMonitor(monitor, 2));
        needsSave = true;
        parentCU.becomeWorkingCopy(new SubProgressMonitor(monitor, 1));
        connectedCU = parentCU;
        //

        createdType = parentCU.getType(typeName);

        ICompilationUnit cu = createdType.getCompilationUnit();

        if (needsSave) {
            cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
        } else {
            monitor.worked(1);
        }

    } finally {
        if (connectedCU != null) {
            connectedCU.discardWorkingCopy();
        }
        monitor.done();
    }
}

From source file:org.seasar.s2junit4plugin.wizard.NewDiconWizardPage.java

License:Apache License

/**
 * Dicon ????/*from ww w .j a v  a2s .co  m*/
 * @return ?????? true??? false
 */
public boolean createDiconFile() {
    String fileName = diconFileNameText.getText();
    String enc = encodingCombo.getText();
    String publicId = getPublicId(versionCombo.getText());
    String systemId = getSystemId(versionCombo.getText());
    String dicon = Messages.getString("dicon.wizard.NewDiconWizardPage.10", //$NON-NLS-1$
            new Object[] { enc })
            + Messages.getString("dicon.wizard.NewDiconWizardPage.11", //$NON-NLS-1$
                    new Object[] { publicId, systemId })
            + Messages.getString("dicon.wizard.NewDiconWizardPage.12"); //$NON-NLS-1$
    try {
        InputStream contents = new ByteArrayInputStream(dicon.getBytes(enc));
        IPackageFragmentRoot sourceFolder = getPackageFragmentRoot();
        IPackageFragment packageFragment = sourceFolder
                .createPackageFragment(getPackageFragment().getElementName(), false, null);
        IFile file = FileUtil.createFile(packageFragment, fileName, contents);
        if (file != null) {
            file.setCharset(enc, null);
            IWorkbench workbench = Activator.getDefault().getWorkbench();
            IDE.openEditor(workbench.getActiveWorkbenchWindow().getActivePage(), file);
            return true;
        }
    } catch (CoreException e) {
        Logger.error(e, this);
    } catch (UnsupportedEncodingException e) {
        Logger.error(e, this);
    }
    return false;
}

From source file:org.seasar.s2junit4plugin.wizard.NewS2JUnit4TypeWizardPage.java

License:Apache License

/**
 * Creates the new type using the entered field values.
 * /*ww w.  j av  a  2s.com*/
 * @param monitor a progress monitor to report progress.
 * @throws CoreException Thrown when the creation failed.
 * @throws InterruptedException Thrown when the operation was canceled.
 */
public void createType(IProgressMonitor monitor) throws CoreException, InterruptedException {
    if (monitor == null) {
        monitor = new NullProgressMonitor();
    }

    monitor.beginTask(NewWizardMessages.NewTypeWizardPage_operationdesc, 8);

    IPackageFragmentRoot root = getPackageFragmentRoot();
    IPackageFragment pack = getPackageFragment();
    if (pack == null) {
        pack = root.getPackageFragment(""); //$NON-NLS-1$
    }

    if (!pack.exists()) {
        String packName = pack.getElementName();
        pack = root.createPackageFragment(packName, true, new SubProgressMonitor(monitor, 1));
    } else {
        monitor.worked(1);
    }

    boolean needsSave;
    ICompilationUnit connectedCU = null;

    try {
        String typeName = getTypeNameWithoutParameters();

        boolean isInnerClass = isEnclosingTypeSelected();

        IType createdType;
        ImportsManager imports;
        int indent = 0;

        Set /* String (import names) */ existingImports;

        String lineDelimiter = null;
        if (!isInnerClass) {
            lineDelimiter = StubUtility.getLineDelimiterUsed(pack.getJavaProject());

            String cuName = getCompilationUnitName(typeName);
            ICompilationUnit parentCU = pack.createCompilationUnit(cuName, "", false, //$NON-NLS-1$
                    new SubProgressMonitor(monitor, 2));
            // create a working copy with a new owner

            needsSave = true;
            parentCU.becomeWorkingCopy(new SubProgressMonitor(monitor, 1)); // cu is now a (primary) working copy
            connectedCU = parentCU;

            IBuffer buffer = parentCU.getBuffer();

            String simpleTypeStub = constructSimpleTypeStub();
            String cuContent = constructCUContent(parentCU, simpleTypeStub, lineDelimiter);
            buffer.setContents(cuContent);

            CompilationUnit astRoot = createASTForImports(parentCU);
            existingImports = getExistingImports(astRoot);

            imports = new ImportsManager(astRoot);
            // add an import that will be removed again. Having this import solves 14661
            imports.addImport(JavaModelUtil.concatenateName(pack.getElementName(), typeName));

            String typeContent = null;
            if (isS2JUnit4()) {
                imports.addImport("org.junit.runner.RunWith");
                imports.addImport("org.seasar.framework.unit.Seasar2");
                typeContent = new StringBuffer("@RunWith(Seasar2.class)").append(lineDelimiter)
                        .append(constructTypeStub(parentCU, imports, lineDelimiter)).toString();

            } else {
                typeContent = constructTypeStub(parentCU, imports, lineDelimiter);
            }

            int index = cuContent.lastIndexOf(simpleTypeStub);
            if (index == -1) {
                AbstractTypeDeclaration typeNode = (AbstractTypeDeclaration) astRoot.types().get(0);
                int start = ((ASTNode) typeNode.modifiers().get(0)).getStartPosition();
                int end = typeNode.getStartPosition() + typeNode.getLength();
                buffer.replace(start, end - start, typeContent);
            } else {
                buffer.replace(index, simpleTypeStub.length(), typeContent);
            }

            createdType = parentCU.getType(typeName);
        } else {
            IType enclosingType = getEnclosingType();

            ICompilationUnit parentCU = enclosingType.getCompilationUnit();

            needsSave = !parentCU.isWorkingCopy();
            parentCU.becomeWorkingCopy(new SubProgressMonitor(monitor, 1)); // cu is now for sure (primary) a working copy
            connectedCU = parentCU;

            CompilationUnit astRoot = createASTForImports(parentCU);
            imports = new ImportsManager(astRoot);
            existingImports = getExistingImports(astRoot);

            // add imports that will be removed again. Having the imports solves 14661
            IType[] topLevelTypes = parentCU.getTypes();
            for (int i = 0; i < topLevelTypes.length; i++) {
                imports.addImport(topLevelTypes[i].getFullyQualifiedName('.'));
            }

            lineDelimiter = StubUtility.getLineDelimiterUsed(enclosingType);
            StringBuffer content = new StringBuffer();

            String comment = getTypeComment(parentCU, lineDelimiter);
            if (comment != null) {
                content.append(comment);
                content.append(lineDelimiter);
            }

            content.append(constructTypeStub(parentCU, imports, lineDelimiter));
            IJavaElement sibling = null;
            if (enclosingType.isEnum()) {
                IField[] fields = enclosingType.getFields();
                if (fields.length > 0) {
                    for (int i = 0, max = fields.length; i < max; i++) {
                        if (!fields[i].isEnumConstant()) {
                            sibling = fields[i];
                            break;
                        }
                    }
                }
            } else {
                IJavaElement[] elems = enclosingType.getChildren();
                sibling = elems.length > 0 ? elems[0] : null;
            }

            createdType = enclosingType.createType(content.toString(), sibling, false,
                    new SubProgressMonitor(monitor, 2));

            indent = StubUtility.getIndentUsed(enclosingType) + 1;
        }
        if (monitor.isCanceled()) {
            throw new InterruptedException();
        }

        // add imports for superclass/interfaces, so types can be resolved correctly

        ICompilationUnit cu = createdType.getCompilationUnit();

        imports.create(false, new SubProgressMonitor(monitor, 1));

        JavaModelUtil.reconcile(cu);

        if (monitor.isCanceled()) {
            throw new InterruptedException();
        }

        // set up again
        CompilationUnit astRoot = createASTForImports(imports.getCompilationUnit());
        imports = new ImportsManager(astRoot);

        createTypeMembers(createdType, imports, new SubProgressMonitor(monitor, 1));

        // add imports
        imports.create(false, new SubProgressMonitor(monitor, 1));

        removeUnusedImports(cu, existingImports, false);

        JavaModelUtil.reconcile(cu);

        ISourceRange range = createdType.getSourceRange();

        IBuffer buf = cu.getBuffer();
        String originalContent = buf.getText(range.getOffset(), range.getLength());
        Map options = pack.getJavaProject() != null ? pack.getJavaProject().getOptions(true) : null;
        String formattedContent = null;
        TextEdit edit = CodeFormatterUtil.format2(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0,
                originalContent.length(), indent, lineDelimiter, options);
        if (edit == null) {
            formattedContent = originalContent;
        } else {
            Document document = new Document(originalContent);
            try {
                edit.apply(document, TextEdit.NONE);
            } catch (BadLocationException e) {
                JavaPlugin.log(e); // bug in the formatter
                Assert.isTrue(false, "Formatter created edits with wrong positions: " + e.getMessage()); //$NON-NLS-1$
            }
            formattedContent = document.get();
        }
        formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
        buf.replace(range.getOffset(), range.getLength(), formattedContent);
        if (!isInnerClass) {
            String fileComment = getFileComment(cu);
            if (fileComment != null && fileComment.length() > 0) {
                buf.replace(0, 0, fileComment + lineDelimiter);
            }
        }
        fCreatedType = createdType;

        if (needsSave) {
            cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
        } else {
            monitor.worked(1);
        }

    } finally {
        if (connectedCU != null) {
            connectedCU.discardWorkingCopy();
        }
        monitor.done();
    }
}

From source file:org.sf.feeling.decompiler.util.SortMemberUtil.java

License:Open Source License

public static String sortMember(String packageName, String className, String code) {

    IPackageFragmentRoot sourceRootFragment = getDecompilerSourceFolder();
    if (sourceRootFragment == null)
        return code;

    try {/*  ww w . ja v a  2s  . co  m*/
        if (!sourceRootFragment.getJavaProject().isOpen()) {
            sourceRootFragment.getJavaProject().open(null);
        }

        if (!sourceRootFragment.getPackageFragment(packageName).exists()) {
            sourceRootFragment.createPackageFragment(packageName, false, null);
        }

        IPackageFragment packageFragment = sourceRootFragment.getPackageFragment(packageName);
        IProject project = sourceRootFragment.getJavaProject().getProject();
        IFolder sourceFolder = project.getFolder("src"); //$NON-NLS-1$

        long time = System.currentTimeMillis();

        String javaName = className.replaceAll("(?i)\\.class", //$NON-NLS-1$
                time + ".java"); //$NON-NLS-1$
        File locationFile = new File(sourceFolder.getFile(javaName).getLocation().toString());

        IFile javaFile = sourceFolder.getFile(javaName);

        if (!locationFile.getParentFile().exists()) {
            locationFile.getParentFile().mkdirs();
        }

        PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(locationFile, false)));
        writer.println(code);
        writer.close();

        javaFile.refreshLocal(0, null);

        ICompilationUnit iCompilationUnit = packageFragment.getCompilationUnit(locationFile.getName());
        iCompilationUnit.makeConsistent(null);
        iCompilationUnit.getResource().setLocalTimeStamp(new Date().getTime());
        iCompilationUnit.becomeWorkingCopy(null);
        new SortMembersOperation(iCompilationUnit, null, true).run(null);
        iCompilationUnit.commitWorkingCopy(true, null);
        iCompilationUnit.save(null, true);
        String content = iCompilationUnit.getSource();
        iCompilationUnit.delete(true, null);
        iCompilationUnit.destroy();
        if (content != null)
            code = content;
        packageFragment.getJavaProject().close();
    } catch (IOException e) {
        JavaDecompilerPlugin.logError(e, ""); //$NON-NLS-1$
    } catch (CoreException e) {
        JavaDecompilerPlugin.logError(e, ""); //$NON-NLS-1$
    }
    return code;
}