List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot createPackageFragment
IPackageFragment createPackageFragment(String name, boolean force, IProgressMonitor monitor) throws JavaModelException;
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; }