Example usage for org.eclipse.jdt.core ICompilationUnit createType

List of usage examples for org.eclipse.jdt.core ICompilationUnit createType

Introduction

In this page you can find the example usage for org.eclipse.jdt.core ICompilationUnit createType.

Prototype

IType createType(String contents, IJavaElement sibling, boolean force, IProgressMonitor monitor)
        throws JavaModelException;

Source Link

Document

Creates and returns a type in this compilation unit with the given contents.

Usage

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

License:Open Source License

protected void implementParameterDefinition(AbstractParameterNode node, Set<String> fields)
        throws CoreException, EcException {
    String typeName = node.getType();
    if (JavaUtils.isPrimitive(typeName)) {
        return;//w  w  w  .  j a  v  a 2s . c om
    }
    if (JavaUtils.isValidTypeName(typeName) == false) {
        return;
    }
    String packageName = JavaUtils.getPackageName(typeName);
    String localName = JavaUtils.getLocalName(typeName);
    String unitName = localName + ".java";
    //      IPackageFragment packageFragment = getPackageFragment(packageName);
    IPackageFragment packageFragment = EclipsePackageFragmentGetter.getPackageFragment(packageName,
            fFileInfoProvider);
    ICompilationUnit unit = packageFragment.getCompilationUnit(unitName);
    unit.createType(enumDefinitionContent(node, fields), null, false, null);
    unit.becomeWorkingCopy(null);
    unit.commitWorkingCopy(true, null);
}

From source file:com.iw.plugins.spindle.wizards.factories.ApplicationClassFactory.java

License:Mozilla Public License

static public IType createClass(IPackageFragmentRoot root, IPackageFragment pack, String classname,
        IType superClass, IMethodEvaluator methodEvaluator, IProgressMonitor monitor)
        throws CoreException, InterruptedException {

    IType createdType;/*w ww.  j  a va 2  s.  c o  m*/
    ImportsStructure imports;
    int indent = 0;
    String superclassName = (superClass == null ? "java.lang.Object" : superClass.getElementName());

    monitor.beginTask(MessageUtil.getFormattedString("ClassFactory.operationdesc", classname), 10);
    if (pack == null) {
        pack = root.getPackageFragment("");
    }
    if (!pack.exists()) {
        String packName = pack.getElementName();
        pack = root.createPackageFragment(packName, true, null);
    }

    monitor.worked(1);

    String lineDelimiter = null;
    ICompilationUnit parentCU = pack.getCompilationUnit(classname + ".java");
    imports = getImports(parentCU);
    lineDelimiter = StubUtility.getLineDelimiterUsed(parentCU);
    String content = createClassBody(classname, superClass, imports, lineDelimiter);
    createdType = parentCU.createType(content, null, false, new SubProgressMonitor(monitor, 5));
    // add imports for sclass, so the type can be parsed correctly
    if (imports != null) {
        imports.create(true, new SubProgressMonitor(monitor, 1));
    }
    createAllNewMethods(methodEvaluator, createdType, imports, new SubProgressMonitor(monitor, 1));

    monitor.worked(1);

    String formattedContent = StubUtility.codeFormat(createdType.getSource(), indent, lineDelimiter);

    save(createdType, formattedContent, monitor);
    monitor.done();
    return createdType;
}

From source file:com.iw.plugins.spindle.wizards.factories.ClassFactory.java

License:Mozilla Public License

public IType createClass(IPackageFragmentRoot root, IPackageFragment pack, String classname, IType superClass,
        IType[] interfaces, IMethodEvaluator methodEvaluator, IProgressMonitor monitor)
        throws CoreException, InterruptedException {

    IType createdType;/*from   w  w w .jav  a  2s.co  m*/
    ImportsStructure imports;
    int indent = 0;
    String superclassName = (superClass == null ? "java.lang.Object" : superClass.getElementName());

    monitor.beginTask(MessageUtil.getFormattedString("ClassFactory.operationdesc", classname), 10);
    if (pack == null) {
        pack = root.getPackageFragment("");
    }
    if (!pack.exists()) {
        String packName = pack.getElementName();
        pack = root.createPackageFragment(packName, true, null);
    }

    monitor.worked(1);

    String lineDelimiter = null;
    ICompilationUnit parentCU = pack.getCompilationUnit(classname + ".java");
    imports = getImports(parentCU);
    lineDelimiter = StubUtility.getLineDelimiterUsed(parentCU);
    String content = createClassBody(classname, superClass, interfaces, imports, lineDelimiter);
    createdType = parentCU.createType(content, null, false, new SubProgressMonitor(monitor, 5));
    // add imports for sclass, so the type can be parsed correctly
    if (imports != null) {
        imports.create(true, new SubProgressMonitor(monitor, 1));
    }
    createAllNewMethods(methodEvaluator, createdType, imports, new SubProgressMonitor(monitor, 1));

    monitor.worked(1);

    String formattedContent = StubUtility.codeFormat(createdType.getSource(), indent, lineDelimiter);

    save(createdType, formattedContent, monitor);
    monitor.done();
    return createdType;
}

From source file:com.sun.codemodel.ClassGenerator.java

License:Apache License

private void modifyObjectFactory(ElementClass ec, IProgressMonitor pm) throws JavaModelException {
    JDefinedClass c = ec.getjDefClass();
    if (ec.getElementType() != null) {
        IPackageFragmentRoot pfr = project.getPackageFragmentRoot(generated);
        if (pfr != null && pfr.exists()) {
            IPackageFragment pf = pfr.getPackageFragment(c.getPackage().name());
            if (pf != null && pf.exists()) {
                ICompilationUnit of = pf.getCompilationUnit("ObjectFactory.java");
                if (of != null && !of.exists()) {
                    of = pf.createCompilationUnit("ObjectFactory.java", "", true, pm);
                    of.createPackageDeclaration(c.getPackage().name(), pm);
                    of.createImport("javax.xml.bind.annotation.XmlRegistry", null, Flags.AccDefault, pm);
                    String lineDelimiter = StubUtility.getLineDelimiterUsed(project);
                    IType t = of.createType(generateObjectFactory(lineDelimiter), null, false, pm);
                    t.createMethod("public ObjectFactory(){}" + lineDelimiter, null, false, pm);
                }/* w  ww .j  av  a2s. c  o m*/
                of = addClass(ec, of, pm);

            } else
                throw new JavaModelException(
                        new Exception("Error package " + c.getPackage().name() + " does not exists"),
                        JavaModelStatus.ERROR);

        } else
            throw new JavaModelException(
                    new Exception("Error package root " + generated.getName() + " does not exists"),
                    JavaModelStatus.ERROR);
    }
}

From source file:com.sun.codemodel.ClassGenerator.java

License:Apache License

public void generateDummy(ServiceCoreElement element, String orchClassName, IProgressMonitor pm)
        throws JavaModelException {
    // IPackageFragmentRoot root =
    // project.getPackageFragmentRoot(generated);
    String packName = getPackageName(element);
    IPackageFragment pack = pfr.getPackageFragment(packName);
    if (pack == null || !pack.exists()) {
        pack = pfr.createPackageFragment(packName, true, pm);
    }//  w w w.j ava 2  s.  c  om
    String classname = getDummyClassName(element, orchClassName);
    ICompilationUnit cu = pack.getCompilationUnit(classname + ".java");
    if (cu == null || !cu.exists()) {
        cu = pack.createCompilationUnit(classname + ".java", "", true, pm);
    }
    cu.createPackageDeclaration(packName, pm);
    IType staticType = null;
    IType type = cu.getType(classname);
    if (type == null || !type.exists()) {
        type = cu.createType(generateDummyClassContent(classname), null, true, pm);
        staticType = type.createType(generateDummyStaticContent(), null, true, pm);
    } else {
        staticType = type.getType("Static");
        if (staticType == null || !staticType.exists()) {
            staticType = type.createType(generateDummyStaticContent(), null, true, pm);
        }
    }
    String methodContent = generateMethodContent(element);
    type.createMethod("public " + methodContent, null, true, pm);
    staticType.createMethod("public static " + methodContent, null, true, pm);

}

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

License:Open Source License

@Override
protected void implementClassDefinition(ClassNode node) throws CoreException {
    String packageName = JavaUtils.getPackageName(node.getName());
    String className = JavaUtils.getLocalName(node.getName());
    String unitName = className + ".java";
    IPackageFragment packageFragment = getPackageFragment(packageName);
    ICompilationUnit unit = packageFragment.getCompilationUnit(unitName);
    unit.createType(classDefinitionContent(node), null, false, null);
    unit.becomeWorkingCopy(null);//from   w w w .j  a  va  2  s  . c  o  m
    unit.commitWorkingCopy(true, null);
}

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

License:Open Source License

protected void implementParameterDefinition(AbstractParameterNode node, Set<String> fields)
        throws CoreException {
    String typeName = node.getType();
    if (JavaUtils.isPrimitive(typeName)) {
        return;//from   w ww . jav  a2s.  c o  m
    }
    if (JavaUtils.isValidTypeName(typeName) == false) {
        return;
    }
    String packageName = JavaUtils.getPackageName(typeName);
    String localName = JavaUtils.getLocalName(typeName);
    String unitName = localName + ".java";
    IPackageFragment packageFragment = getPackageFragment(packageName);
    ICompilationUnit unit = packageFragment.getCompilationUnit(unitName);
    unit.createType(enumDefinitionContent(node, fields), null, false, null);
    unit.becomeWorkingCopy(null);
    unit.commitWorkingCopy(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  ww  w.  jav  a2 s . co  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  ww  .  j  a 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.ServiceSsNewServiceClassWizard.java

License:Apache License

@Override
protected void finishPage(IProgressMonitor arg0) throws InterruptedException, CoreException {
    IPackageFragment frag = fPage.getPackageFragment();
    String lineDelimiter = StubUtility.getLineDelimiterUsed(frag.getJavaProject());
    cu_class = frag.createCompilationUnit(fPage.getTypeName() + ".java", "", false,
            new SubProgressMonitor(arg0, 2));
    cu_class.createPackageDeclaration(frag.getElementName(), arg0);
    cu_class.createImport("javax.jws.WebService", null, Flags.AccDefault, arg0);
    String classStub = constructClassStub(fPage.getTypeName(), lineDelimiter);

    IType type = cu_class.createType(classStub, null, false, arg0);
    ICompilationUnit cu = frag.createCompilationUnit(fPage.getTypeName().replaceAll(" ", "") + "Itf.java", "",
            false, new SubProgressMonitor(arg0, 2));
    cu.createPackageDeclaration(frag.getElementName(), arg0);
    String typeStub = constructInterfaceStub(fPage.getTypeName().replaceAll(" ", "") + "Itf", lineDelimiter);
    cu.createType(typeStub, null, false, arg0);
    IFile file = fPage.getJavaProject().getProject().getFolder(ProjectMetadata.METADATA_FOLDER)
            .getFile(ProjectMetadata.METADATA_FILENAME);
    try {/*w w w.  ja  v  a2s. c  o  m*/
        ProjectMetadata pr_meta = new ProjectMetadata(file.getRawLocation().toFile());
        pr_meta.addOrchestrationClass(frag.getElementName() + "." + fPage.getTypeName(), fPage.getClassType());
        pr_meta.toFile(file.getRawLocation().toFile());
    } catch (Exception e) {
        throw new JavaModelException(e, JavaModelStatus.ERROR);
    }

}