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:com.sabre.buildergenerator.TestHelper.java

License:Open Source License

public static IPackageFragment createPackage(IJavaProject javaProject, String packageName)
        throws JavaModelException {
    IPackageFragmentRoot sourceRoot = getSourceRoot(javaProject);
    IPackageFragment packageFragment = null;
    if (sourceRoot != null) {
        packageFragment = sourceRoot.getPackageFragment(packageName);
        if (!packageFragment.exists()) {
            packageFragment = sourceRoot.createPackageFragment(packageName, false, null);
        }//from w  ww. ja  va  2s.  co  m
    }
    return packageFragment;
}

From source file:com.sabre.buildergenerator.ui.actions.GenerateBuilderAction.java

License:Open Source License

/**
 * Starts the generation procedure for the type
 *
 * @param type//from   ww w. ja  va 2s .c o m
 *            a type that the generator is going to be invoked for
 * @param shell
 *                        the shell of the running component
 * @throws CoreException
 */
@SuppressWarnings("deprecation")
public void execute(final IType type, final Shell shell, IRunnableContext runnableContext) throws Exception {
    if (!validateAndShowErrorMessageIfNeeded(type, shell)) {
        return;
    }

    GenerateBuilderWizard wizard = new GenerateBuilderWizard(new BuilderGenerationProperties(type));
    WizardDialog wizardDialog = new WizardDialog(shell, wizard);

    wizardDialog.setMinimumPageSize(200, 500);

    if (wizardDialog.open() == Dialog.OK) {
        final BuilderGenerationProperties properties = wizard.getBuilderGenerationProperties();

        IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {
            public void run(IProgressMonitor aMonitor) throws InvocationTargetException, InterruptedException {
                try {
                    aMonitor.beginTask("Generating class", 4);

                    IPackageFragmentRoot selectedSourceFolder = properties.getSourceFolder();

                    String packageName = properties.getPackageName();
                    String builderClassName = properties.getBuilderClassName();

                    aMonitor.worked(1);

                    // creating package
                    if (!selectedSourceFolder.getPackageFragment(packageName).exists()) {
                        selectedSourceFolder.createPackageFragment(packageName, false, aMonitor);
                    }

                    String source = generateSource(builderGenerator, properties);

                    aMonitor.worked(2);

                    // create source file
                    IPath builderPath = selectedSourceFolder.getPath();

                    for (String s : packageName.split("\\.")) {
                        builderPath = builderPath.append(s);
                    }

                    builderPath = builderPath.append(builderClassName).addFileExtension("java");

                    IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(builderPath);

                    if (file.exists()) {
                        file.delete(false, aMonitor);
                    }

                    file.create(new StringBufferInputStream(source), false, aMonitor);
                } catch (Throwable e) {
                    throw new InvocationTargetException(e);
                } finally {
                    aMonitor.done();
                }
            }
        };

        try {
            runnableContext.run(true, false, runnableWithProgress);
        } catch (InvocationTargetException e) {
            Throwable t = e.getTargetException();
            StringWriter buf = new StringWriter();

            t.printStackTrace(new PrintWriter(buf));
            MessageDialog.openError(null, "Error", buf.toString());
            t.printStackTrace();
        } catch (InterruptedException e) {
            StringWriter buf = new StringWriter();

            e.printStackTrace(new PrintWriter(buf));
            MessageDialog.openError(null, "Error", buf.toString());
            e.printStackTrace();
        } catch (Throwable e) {
            StringWriter buf = new StringWriter();

            e.printStackTrace(new PrintWriter(buf));
            MessageDialog.openError(null, "Error", buf.toString());
            e.printStackTrace();
        }
    }
}

From source file:com.testify.ecfeed.ui.common.EclipseModelImplementer.java

License:Open Source License

private IPackageFragment getPackageFragment(String name) throws CoreException {
    IPackageFragmentRoot packageFragmentRoot = getPackageFragmentRoot();
    IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(name);
    if (packageFragment.exists() == false) {
        packageFragment = packageFragmentRoot.createPackageFragment(name, false, null);
    }/*from w  w  w .j  a v  a2  s.c  o  m*/
    return packageFragment;
}

From source file:com.tsc9526.monalisa.plugin.eclipse.generator.SelectGenerator.java

License:Open Source License

private void writeResultClass(DBExchange exchange) throws JavaModelException {
    SelectMethod method = methods.get(exchange.getIndex());
    String className = method.getResultClassPackage() + "." + method.getResultClassName();

    IPackageFragmentRoot pfr = unit.getPackageFragmentRoot();

    IResource r = unit.getUnit().getJavaElement().getResource();
    String linkMethodUrl = "file://" + unit.getProjectPath() + "/" + r.getProjectRelativePath() + "#"
            + method.getMd().getName();//from w  w w  .  j  a  va2  s  . c o  m
    String linkMethodText = "";

    String linkClassUrl = "file://" + unit.getProjectPath() + "/" + pfr.getResource().getProjectRelativePath();
    linkClassUrl += "/" + className.replace(".", "/") + ".java";

    String linkClassText = className;

    List<?> params = method.getMd().parameters();
    for (Object p : params) {
        SingleVariableDeclaration svd = (SingleVariableDeclaration) p;
        String ptype = svd.getType().toString();
        linkMethodUrl += "," + ptype;

        if (linkMethodText.length() > 0) {
            linkMethodText += ", ";
        }
        linkMethodText += ptype;
    }

    linkMethodText = method.getMd().getName() + "(" + linkMethodText + ")";

    MMC mmc = MMC.getConsole();
    mmc.print(MelpDate.now() + " [I] ", SWT.COLOR_BLACK);
    mmc.print("Create class: ", SWT.COLOR_BLACK);
    mmc.print(new HyperLink(linkClassUrl, linkClassText), SWT.COLOR_DARK_BLUE);
    mmc.print(", from: [", SWT.COLOR_BLACK);
    mmc.print(new HyperLink(linkMethodUrl, linkMethodText), SWT.COLOR_DARK_BLUE);
    mmc.print("]\r\n", SWT.COLOR_BLACK);

    String initParameters = (String) exchange.getTag("initParameters");
    String failMessages = (String) exchange.getTag("failMessages");
    if (failMessages != null) {
        mmc.warn("Can't init parameters as default:\r\n" + failMessages);
    }
    if (initParameters != null) {
        mmc.code("Init parameters as following:", initParameters);
    }

    if (exchange.getSql() != null) {
        mmc.code("Running SQL:", exchange.getSql());
    }

    IPackageFragment pf = pfr.createPackageFragment(method.getResultClassPackage(), true, null);
    if (exchange.getErrorString() == null) {
        String java = method.createResultJavaCode(exchange);
        pf.createCompilationUnit(method.getResultClassName() + ".java", java, true, new NullProgressMonitor());
    } else {
        mmc.error(exchange.getErrorString());

        String java = method.createEmptyCode(exchange.getErrorString());
        pf.createCompilationUnit(method.getResultClassName() + ".java", java, true, new NullProgressMonitor());
    }
}

From source file:com.worldline.awltech.i18ntools.wizard.core.modules.ResourceBundleWrapper.java

License:Open Source License

/**
 * Loads the currently selected compilation unit.
 *///  w  w w . j ava2  s .co  m
private void loadCompilationUnit() {
    final IProject project = this.javaProject.getProject();
    final IResource sourceFolderResource = project
            .getFolder(new Path(this.configuration.getJavaSourceFolder()));
    final IPackageFragmentRoot ipfr = this.javaProject.getPackageFragmentRoot(sourceFolderResource);

    IPackageFragment ipf = ipfr.getPackageFragment(this.packageName);
    if (!ipf.exists()) {
        try {
            ipf = ipfr.createPackageFragment(this.packageName, false, new NullProgressMonitor());
        } catch (final JavaModelException e) {
            Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                    RefactoringWizardMessages.ERROR_CREATE_PACKAGE.value(), e));
        }
    }

    final String javaUnitName = this.resourceBundleName.concat(".java");
    this.enumJavaCompilationUnit = ipf.getCompilationUnit(javaUnitName);
    if (!this.enumJavaCompilationUnit.exists()) {
        final String contents = this.createJavaUnitContents();

        // Format the source code before trying to set it to the compilation unit.
        CodeFormatter formatter = ToolFactory.createCodeFormatter(this.javaProject.getOptions(true),
                ToolFactory.M_FORMAT_EXISTING);
        IDocument document = new Document(contents);

        TextEdit textEdit = formatter.format(
                CodeFormatter.K_COMPILATION_UNIT | CodeFormatter.F_INCLUDE_COMMENTS, contents, 0,
                contents.length(), 0, null);
        try {
            textEdit.apply(document);
        } catch (MalformedTreeException e1) {
            Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                    RefactoringWizardMessages.ERROR_REFACTOR_TEMPLATE.value(), e1));
        } catch (BadLocationException e1) {
            Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                    RefactoringWizardMessages.ERROR_REFACTOR_TEMPLATE.value(), e1));
        }
        try {
            // Set the source into the compilation unit.
            this.enumJavaCompilationUnit = ipf.createCompilationUnit(javaUnitName, document.get(), false,
                    new NullProgressMonitor());
        } catch (final JavaModelException e) {
            Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                    RefactoringWizardMessages.ERROR_CREATE_CU.value(), e));
        }
    }

    final ASTParser enumSourceParser = ASTParser.newParser(AST.JLS4);
    enumSourceParser.setProject(this.javaProject);
    enumSourceParser.setBindingsRecovery(true);
    enumSourceParser.setResolveBindings(true);
    enumSourceParser.setKind(ASTParser.K_COMPILATION_UNIT);
    enumSourceParser.setSource(this.enumJavaCompilationUnit);

    this.enumDomCompilationUnit = (CompilationUnit) enumSourceParser.createAST(new NullProgressMonitor());
    this.enumDomCompilationUnit.recordModifications();
}

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  .  ja  v  a  2s.c o m*/
    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.illinois.keshmesh.detector.tests.TestSetupHelper.java

License:Open Source License

/**
 * Creates the specified package in the specified project if the package
 * does not already exist else it simply returns the preexisting package.
 * /*from   w w w.  j a v a 2  s.  c  om*/
 * @param containerProject
 * @param packageName
 * @return
 * @throws CoreException
 */
static IPackageFragment createPackage(IJavaProject containerProject, String packageName) throws CoreException {
    boolean alreadyExists = false;
    IPackageFragmentRoot packageFragmentRoot = null;
    IPackageFragmentRoot[] allPackageFragmentRoots = containerProject.getAllPackageFragmentRoots();
    for (IPackageFragmentRoot root : allPackageFragmentRoots) {
        if (root.getElementName().equals(AbstractTestCase.CONTAINER)) {
            alreadyExists = true;
            packageFragmentRoot = root;
            break;
        }
    }
    if (!alreadyExists) {
        packageFragmentRoot = JavaProjectHelper.addSourceContainer(containerProject,
                AbstractTestCase.CONTAINER);
    }
    return (packageFragmentRoot.createPackageFragment(packageName, true, null));
}

From source file:es.bsc.servicess.ide.wizards.coretypes.BinaryMethodSpecificTreatment.java

License:Apache License

/** Create the method core element declaring class
 * @param m Progress monitor//from w  w  w .ja  va  2  s.c  o m
 * @return  Eclipse JDT IType object representing the core element declaring class
 * @throws JavaModelException
 */
private IType createDeclaringClassType(IProgressMonitor m) throws JavaModelException {
    IPackageFragmentRoot pfr = secondPage.getPackageFragmentRoot();
    String lineDelimiter = StubUtility.getLineDelimiterUsed(secondPage.getJavaProject());
    IPackageFragment pf;
    String st = Signature.getQualifier(declaringClass);
    if (st != null && st.trim().length() > 0) {
        pf = pfr.getPackageFragment(st);
        if (pf != null) {
            if (!pf.exists()) {
                pf = pfr.createPackageFragment(st, true, m);
            }
        } else {
            pf = pfr.createPackageFragment(st, true, m);
        }
    } else {
        IFile metadataFile = secondPage.getJavaProject().getProject().getFolder(ProjectMetadata.METADATA_FOLDER)
                .getFile(ProjectMetadata.METADATA_FILENAME);
        if (metadataFile != null) {
            try {
                ProjectMetadata pr_meta = new ProjectMetadata(
                        new File(metadataFile.getRawLocation().toOSString()));
                pfr = secondPage.getJavaProject().findPackageFragmentRoot(
                        secondPage.getJavaProject().getPath().append(pr_meta.getSourceDir()));
                if (pfr != null) {
                    pf = pfr.getPackageFragment(pr_meta.getMainPackageName() + ".coreelements");
                    if (pf.exists()) {
                        st = pf.getElementName();
                    } else
                        throw new JavaModelException(new Exception("Unable to find core elemet package"),
                                JavaModelStatus.ERROR);
                } else {
                    throw new JavaModelException(new Exception("Unable to find core elemet package root"),
                            JavaModelStatus.ERROR);
                }
            } catch (Exception e) {
                throw new JavaModelException(e, JavaModelStatus.ERROR);
            }
        } else
            throw new JavaModelException(new Exception("Unable to find project metadata file"),
                    JavaModelStatus.ERROR);
    }
    String name = Signature.getSimpleName(declaringClass);
    log.debug("Package: " + st + " Class name: " + name);
    ICompilationUnit cu = pf.getCompilationUnit(name + ".java");
    if (cu == null || !cu.exists()) {
        cu = pf.createCompilationUnit(name + ".java", "", false, m);
        cu.createPackageDeclaration(st, m);
        cu.createType(constructCEClassStub(name, lineDelimiter), null, false, m);
    }
    return cu.getType(name);
}

From source file:es.bsc.servicess.ide.wizards.coretypes.SpecificNewMethodComposite.java

License:Apache License

private IType createDeclaringClassType(IProgressMonitor m) throws JavaModelException {
    IPackageFragmentRoot pfr = thirdPage.getPackageFragmentRoot();
    String lineDelimiter = StubUtility.getLineDelimiterUsed(thirdPage.getJavaProject());
    IPackageFragment pf;/*from w w  w .  ja  v a  2  s .c  om*/
    String st = Signature.getQualifier(declaringClass);
    if (st != null && st.trim().length() > 0) {
        pf = pfr.getPackageFragment(st);
        if (pf != null) {
            if (!pf.exists()) {
                pf = pfr.createPackageFragment(st, true, m);
            }
        } else {
            pf = pfr.createPackageFragment(st, true, m);
        }
    } else {
        IFile metadataFile = thirdPage.getJavaProject().getProject().getFolder(ProjectMetadata.METADATA_FOLDER)
                .getFile(ProjectMetadata.METADATA_FILENAME);
        if (metadataFile != null) {
            try {
                ProjectMetadata pr_meta = new ProjectMetadata(
                        new File(metadataFile.getRawLocation().toOSString()));
                pfr = thirdPage.getJavaProject().findPackageFragmentRoot(
                        thirdPage.getJavaProject().getPath().append(pr_meta.getSourceDir()));
                if (pfr != null) {
                    pf = pfr.getPackageFragment(pr_meta.getMainPackageName() + ".coreelements");
                    if (pf.exists()) {
                        st = pf.getElementName();
                    } else
                        throw new JavaModelException(new Exception("Unable to find core elemet package"),
                                JavaModelStatus.ERROR);
                } else {
                    throw new JavaModelException(new Exception("Unable to find core elemet package root"),
                            JavaModelStatus.ERROR);
                }
            } catch (Exception e) {
                throw new JavaModelException(e, JavaModelStatus.ERROR);
            }
        } else
            throw new JavaModelException(new Exception("Unable to find project metadata file"),
                    JavaModelStatus.ERROR);
    }
    String name = Signature.getSimpleName(declaringClass);
    System.out.println("Package: " + st + " Class name: " + name);
    ICompilationUnit cu = pf.getCompilationUnit(name + ".java");
    if (cu == null || !cu.exists()) {
        cu = pf.createCompilationUnit(name + ".java", "", false, m);
        cu.createPackageDeclaration(st, m);
        cu.createType(constructCEClassStub(name, lineDelimiter), null, false, m);
    }
    return cu.getType(name);
}

From source file:es.bsc.servicess.ide.wizards.ServiceSsImportOrchestrationClassWizard.java

License:Apache License

@Override
protected void finishPage(IProgressMonitor arg0) throws InterruptedException, CoreException {

    String lineDelimiter = StubUtility.getLineDelimiterUsed(project);

    IFile file = project.getProject().getFolder(ProjectMetadata.METADATA_FOLDER)
            .getFile(ProjectMetadata.METADATA_FILENAME);
    try {//from   w  ww .j a v  a2  s  . c  o  m
        ProjectMetadata pr_meta = new ProjectMetadata(file.getRawLocation().toFile());
        IPackageFragmentRoot root = pr_meta.getPackageFragmentRoot(project);
        if (root == null || !root.exists())
            throw (new Exception("Main package fragment root not found"));
        IPackageFragment frag = root.getPackageFragment(fPage.getTypePackageName());
        if (frag == null || !frag.exists())
            root.createPackageFragment(fPage.getTypePackageName(), true, arg0);
        String className = fPage.getType().getElementName().replaceAll(" ", "") + "Itf";
        interfaceCU = frag.getCompilationUnit(className + ".java");
        if (interfaceCU == null || !interfaceCU.exists()) {
            interfaceCU = frag.createCompilationUnit(className + ".java", "", false,
                    new SubProgressMonitor(arg0, 2));
            interfaceCU.createPackageDeclaration(frag.getElementName(), arg0);
            String typeStub = constructInterfaceStub(className, lineDelimiter);
            interfaceCU.createType(typeStub, null, false, arg0);
        }
        pr_meta.addExternalOrchestrationClass(fPage.getTypeName(), fPage.getExternalLocation(),
                fPage.getIntraPackageLocation());
        pr_meta.toFile(file.getRawLocation().toFile());
        project.getProject().refreshLocal(Resource.DEPTH_INFINITE, arg0);
    } catch (Exception e) {
        throw new JavaModelException(e, JavaModelStatus.ERROR);
    }

}