List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot createPackageFragment
IPackageFragment createPackageFragment(String name, boolean force, IProgressMonitor monitor) throws JavaModelException;
From source file:net.atos.optimus.m2m.engine.sdk.wizards.transformations.TransformationCreatorJob.java
License:Open Source License
@Override public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { monitor.beginTask(Messages.JOBTASK.message(), 4); monitor.subTask(Messages.JOB_SUBTASK_1.message()); if (!fragment.exists()) { IPackageFragmentRoot root = (IPackageFragmentRoot) this.fragment .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); this.fragment = root.createPackageFragment(this.fragment.getElementName(), false, monitor); root.getResource().refreshLocal(IResource.DEPTH_ONE, monitor); }/*w w w .j a va2 s . c o m*/ Properties properties = new Properties(); properties.put(VAR_PACKAGENAME, this.fragment.getElementName()); properties.put(VAR_TRANSFO_ELT_FQN, elementType); properties.put(VAR_TRANSFO_CLASSNAME, className); properties.put(VAR_TRANSFO_FACTORYNAME, factoryName); ResourceSet resourceSet = new ResourceSetImpl(); monitor.worked(1); monitor.subTask(Messages.JOB_SUBTASK_2.message()); this.generateJava(resourceSet, properties); monitor.worked(1); monitor.subTask(Messages.JOB_SUBTASK_3.message()); this.generateXML(resourceSet, properties); monitor.worked(1); monitor.subTask(Messages.JOB_SUBTASK_4.message()); for (Resource r : resourceSet.getResources()) r.unload(); resourceSet.getResources().clear(); monitor.worked(1); monitor.done(); return Status.OK_STATUS; }
From source file:net.rim.ejde.internal.ui.editors.locale.ResourceEditor.java
License:Open Source License
public void doSave(IProgressMonitor monitor) { try {// w w w. ja va2 s .c om _resources.save(); // Check if package was changed. String rrhPackage = PackageUtils.getRRHPackageID(rrhFile); if (!_originalPackage.equals(rrhPackage)) { // Attempt to find a non linked rrhIFile IFile files[] = ResourcesPlugin.getWorkspace().getRoot() .findFilesForLocation(new Path(rrhFile.getAbsolutePath())); IFile rrhIFile = null; for (IFile file : files) { if (!file.isLinked()) { rrhIFile = file; break; } } if (files.length != 0 && rrhIFile == null) { rrhIFile = files[0]; } IJavaElement packageFolder = JavaCore.create(rrhIFile.getParent()); IPackageFragmentRoot sourceFolder = (IPackageFragmentRoot) packageFolder.getParent(); try { moveResources(rrhIFile, sourceFolder.createPackageFragment(rrhPackage, true, new NullProgressMonitor())); } catch (Exception e) { _logger.error("doSave: error moving resources", e); //$NON-NLS-1$ } } if (_wasDirty) { _wasDirty = false; firePropertyChange(IEditorPart.PROP_DIRTY); } // get eclipse workspace final IWorkspace workspace = ResourcesPlugin.getWorkspace(); // get eclipse workspace description final IWorkspaceDescription workspaceDescription = workspace.getDescription(); // get autoBuildFlag final boolean autoBuild = workspaceDescription.isAutoBuilding(); IProject project = ((FileEditorInput) (this.getEditorInput())).getFile().getProject(); // if autobuild is checked build eclipse project if (autoBuild) { try { project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null); } catch (CoreException e) { e.printStackTrace(); } } // We must refresh the project because we are using a JAR that uses File objects to save, instead of eclipse IFiles. project.refreshLocal(IProject.DEPTH_INFINITE, monitor); } catch (IOException e) { TableViewer viewer = getActiveResourceEditorPage().getTableViewer(); Status status = new Status(IStatus.ERROR, ContextManager.PLUGIN_ID, IStatus.OK, "Unable to open file for writing.", e); ErrorDialog.openError(viewer.getControl().getShell(), "Error - Resource Editor", "Error saving file.", status); monitor.setCanceled(true); } catch (CoreException e) { _logger.error("doSave: error getting package", e); //$NON-NLS-1$ } }
From source file:net.rim.ejde.internal.ui.editors.locale.ResourceEditor.java
License:Open Source License
/** * This method will find all links pointing to oldLinkLocation and will point them to the newLinkLocation. The method also * moves the links to a package specified by the passed in packageID. * * @param oldLinkLocation//from w ww . jav a2s . co m * - The location existing links will be pointing to. * @param newLinkLocation * - The location the new links will be pointing to, null if location doesn't change. * @param packageID * - The package to place the new links. */ private void updateLinksLocationAndPackage(IPath oldLinkLocation, IPath newLinkLocation, String packageID) { if (newLinkLocation == null) { // Link location will not change newLinkLocation = oldLinkLocation; } IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(oldLinkLocation); for (IFile file : files) { if (file.isLinked()) { IJavaElement packageFolder = JavaCore.create(file.getParent()); IPackageFragmentRoot sourceFolder = (IPackageFragmentRoot) packageFolder.getParent(); try { IPackageFragment newPackage = sourceFolder.createPackageFragment(packageID, true, new NullProgressMonitor()); if (newPackage.exists()) { IContainer parentFolder = ((IFolder) newPackage.getResource()); IFile newLocation = parentFolder.getFile(new Path(file.getName())); newLocation.createLink(newLinkLocation, IResource.NONE, new NullProgressMonitor()); file.delete(true, new NullProgressMonitor()); } } catch (Exception e) { _logger.error("Error updating links", e); //$NON-NLS-1$ } } } }
From source file:net.rim.ejde.internal.ui.wizards.NewResourceFileWizard.java
License:Open Source License
@Override public boolean performFinish() { final IProject userSelectedProject = ProjectUtils .getProject(newResourceFileCreationPage.getUserSelectedProject()); String fileName = newResourceFileCreationPage.getFileName(); IFile newResourceFile = null;/*from www. j a v a 2s . co m*/ IPackageFragmentRoot userSelectedSourceFolder = newResourceFileCreationPage.getUserSelectedSourceFolder(); IPackageFragment userSelectedPackage = newResourceFileCreationPage.getUserSelectedPackage(); String _resourcePackageId = newResourceFileCreationPage.getResourcePackageId(); if (newResourceFileCreationPage.isValidPackage()) { // Package is valid. No need to find or create a package. newResourceFile = newResourceFileCreationPage.createNewFile(); } else { // Package selected is invalid. First we try and find package within // project workspace. IPackageFragmentRoot sourceRoots[] = ProjectUtils.getProjectSourceFolders(userSelectedProject); try { IJavaElement foundPackageElement = null; for (IPackageFragmentRoot sourceRoot : sourceRoots) { IPackageFragment packageFragment = sourceRoot.getPackageFragment(_resourcePackageId); if (packageFragment.exists()) { foundPackageElement = packageFragment; break; } } if (foundPackageElement == null) { // Package could not be found. We must create the package. IPackageFragment newlyCreatedPackage = userSelectedSourceFolder .createPackageFragment(_resourcePackageId, true, null); /* * The following code uses reflection to access a private TreeViewer. I had to work through multiple levels of * objects to access the private field. In the future this code can break, if the hierarchy for these classes * or the names of these fields change. Once i access the TreeViewer i then refresh it. This allows the newly * created package to be added to the Tree and prevents a NullPointerException. */ Field fieldToAccess = WizardNewFileCreationPage.class.getDeclaredField("resourceGroup"); //$NON-NLS-1$ fieldToAccess.setAccessible(true); ResourceAndContainerGroup resourceGroup = ((ResourceAndContainerGroup) fieldToAccess .get(newResourceFileCreationPage)); fieldToAccess = ResourceAndContainerGroup.class.getDeclaredField("containerGroup"); //$NON-NLS-1$ fieldToAccess.setAccessible(true); ContainerSelectionGroup containerGroup = ((ContainerSelectionGroup) fieldToAccess .get(resourceGroup)); fieldToAccess = ContainerSelectionGroup.class.getDeclaredField("treeViewer"); //$NON-NLS-1$ fieldToAccess.setAccessible(true); TreeViewer treeViewer = ((TreeViewer) fieldToAccess.get(containerGroup)); treeViewer.refresh(); /* * This code will set the container path to null if the above tree isn't refreshed when the package is * created. */ newResourceFileCreationPage.setContainerFullPath(newlyCreatedPackage.getPath()); } else { // Package was found in project. Change the container path // to the found package. newResourceFileCreationPage.setContainerFullPath(foundPackageElement.getPath()); } newResourceFile = newResourceFileCreationPage.createNewFile(); } catch (Throwable e) { logger.error("performFinish() error", e); //$NON-NLS-1$ } } // if resource file is linked, we just return. Fix SDR213684 if (newResourceFile.isLinked()) { return true; } String packageStmt = createPackageStatement(userSelectedPackage); FileOutputStream fout = null; try { if (fileName.endsWith(ResourceConstants.RRH_SUFFIX)) { // user enters .rrh file extension // 1. create package statement File resourceFile = newResourceFile.getLocation().toFile(); if (resourceFile.length() == 0 && resourceFile.canWrite()) { fout = new FileOutputStream(resourceFile); new PrintStream(fout).println(packageStmt); } // 2. create associated .rrc root locale file if it doesn't // exist String rrcFileName = fileName.substring(0, fileName.lastIndexOf(".")) //$NON-NLS-1$ + ResourceConstants.RRC_SUFFIX; File rrcOSFile = new File(newResourceFile.getLocation().toFile().getParentFile(), rrcFileName); if (!rrcOSFile.exists()) { rrcOSFile.createNewFile();// TO->JDP } } if (fileName.endsWith(ResourceConstants.RRC_SUFFIX)) { // user enters .rrc file extension // if corresponding rrh file doesn't exist, create it and set // package statement // if corresponding .rrc root locale file doesn't exist, create // it as well String rrhFileName; String rrcRootLocaleFileName = null; String rrcRootLanguageLocaleFileName = null; boolean hasCountryCode = (fileName.indexOf("_") != fileName.lastIndexOf("_")); //$NON-NLS-1$ //$NON-NLS-2$ if (fileName.contains("_")) { //$NON-NLS-1$ rrhFileName = fileName.substring(0, fileName.indexOf("_")) + ResourceConstants.RRH_SUFFIX; //$NON-NLS-1$ // set root rrc file name rrcRootLocaleFileName = fileName.substring(0, fileName.indexOf("_")) //$NON-NLS-1$ + ResourceConstants.RRC_SUFFIX; if (hasCountryCode) { // set root language rrc file name rrcRootLanguageLocaleFileName = fileName.substring(0, fileName.lastIndexOf("_")) //$NON-NLS-1$ + ResourceConstants.RRC_SUFFIX; } } else { rrhFileName = fileName.substring(0, fileName.lastIndexOf(".")) + ResourceConstants.RRH_SUFFIX; //$NON-NLS-1$ } File rrhOSFile = new File(newResourceFile.getLocation().toFile().getParentFile(), rrhFileName); if (!rrhOSFile.exists()) { rrhOSFile.createNewFile();// // TO->JDP if (rrhOSFile.length() == 0 && rrhOSFile.canWrite()) { fout = new FileOutputStream(rrhOSFile); new PrintStream(fout).println(packageStmt); } } File rrcOSFile = null; // create .rrc root locale file if required if (rrcRootLocaleFileName != null) { rrcOSFile = new File(newResourceFile.getLocation().toFile().getParentFile(), rrcRootLocaleFileName); if (!rrcOSFile.exists()) { rrcOSFile.createNewFile(); } } // create .rrc root language locale file if required if (rrcRootLanguageLocaleFileName != null) { rrcOSFile = new File(newResourceFile.getLocation().toFile().getParentFile(), rrcRootLanguageLocaleFileName); if (!rrcOSFile.exists()) { rrcOSFile.createNewFile(); } } } } catch (Exception e) { logger.error("performFinish: Error creating file", e); //$NON-NLS-1$ return false; } finally { try { if (null != fout) fout.close(); } catch (IOException e) { logger.error("performFinish: Could not close the file", e); //$NON-NLS-1$ } } // Fix for DPI224873. Project becomes out of sync, which results // in out // of sync errors. The below will refresh project. try { userSelectedProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); } catch (CoreException e) { logger.error("performFinish: Error during project refresh", e); //$NON-NLS-1$ } return true; }
From source file:net.rim.ejde.internal.util.ImportUtils.java
License:Open Source License
static private List<LinkBuffer> generateLinks(IJavaProject eclipseJavaProject, ResourcesBuffer buffer, Project legacyProject) {/* ww w . j av a2s . c o m*/ Map<String, Set<File>> javaArtifacts = buffer.getJavaContener(); Map<String, Set<File>> localeArtifacts = buffer.getlocaleContener(); Set<File> nonPackageableFiles = buffer.getNonPackageContener(); IPath drfpath = null, filePath = null; IFile eclipseFileHandle = null, fileHandle = null; IProject eclipseProject = eclipseJavaProject.getProject(); IWorkspaceRoot workspaceRoot = eclipseProject.getWorkspace().getRoot(); List<String> sources = net.rim.ejde.internal.legacy.Util.getSources(legacyProject); IPackageFragmentRoot[] packageFragmentRoots; IPackageFragment packageFragment; IFolder packageFolder; IResource resource, packageDirectory; List<LinkBuffer> linkBuffers = Collections.emptyList(); try { // packageFragmentRoots = // eclipseJavaProject.getPackageFragmentRoots(); //!WARNING: it // seems this is buggy!!!! packageFragmentRoots = eclipseJavaProject.getAllPackageFragmentRoots(); linkBuffers = new ArrayList<LinkBuffer>(); String srcFolder = POTENTIAL_SOURCE_FOLDERS[PROJECT_SRC_FOLDE_INDEX]; String resFolder = POTENTIAL_SOURCE_FOLDERS[PROJECT_RES_FOLDE_INDEX]; String localeFolder = POTENTIAL_SOURCE_FOLDERS[PROJECT_LOCALE_FOLDE_INDEX]; IJavaProject javaProject = null; for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) { javaProject = packageFragmentRoot.getParent().getJavaProject(); if (javaProject == null || !javaProject.equals(eclipseJavaProject)) { // fixed DPI225325, we only care source folders in the // current project continue; } if (IPackageFragmentRoot.K_SOURCE == packageFragmentRoot.getKind()) { packageDirectory = packageFragmentRoot.getResource(); if (null != packageDirectory) { if (isResourceTargetFolder(packageDirectory)) { if (IResource.FOLDER == packageDirectory.getType()) { // handle resource files which are not java, rrh // and rrc if (resFolder.equalsIgnoreCase(packageDirectory.getName())) { packageFragment = packageFragmentRoot.createPackageFragment(StringUtils.EMPTY, true, new NullProgressMonitor()); packageFolder = (IFolder) packageFragment.getResource(); for (File file : nonPackageableFiles) { filePath = new Path(file.getAbsolutePath()); if (canIgnoreFile(filePath, eclipseJavaProject)) { continue; } // drfpath = PackageUtils.resolvePathForFile( filePath, legacyProjectPath, // legacyWorkspacePath ); // DPI222295 try { drfpath = new Path(PackageUtils.getFilePackageString(filePath.toFile(), legacyProject)).append(filePath.lastSegment()); } catch (CoreException e) { _log.error(e.getMessage()); drfpath = new Path(IConstants.EMPTY_STRING); } if (drfpath.segmentCount() > 1) { if (sources.contains(drfpath.segment(0))) { drfpath = drfpath.removeFirstSegments(1); } drfpath = assureFolderPath(packageFolder, drfpath); } fileHandle = createFileHandle(packageFolder, drfpath.toOSString()); resource = eclipseProject.findMember( PackageUtils.deResolve(filePath, eclipseProject.getLocation())); if (resource != null) eclipseFileHandle = workspaceRoot.getFile(resource.getFullPath()); else eclipseFileHandle = workspaceRoot .getFile(eclipseProject.getFullPath().append(drfpath)); if (!fileHandle.equals(eclipseFileHandle)) { linkBuffers.add(new LinkBuffer(fileHandle, filePath)); } } } if (srcFolder.equalsIgnoreCase(packageDirectory.getName()) || srcFolder.equalsIgnoreCase(packageDirectory.getName())) { // All linkPackagableFiles(javaProject, packageFragmentRoot, javaArtifacts, linkBuffers); } if (localeFolder.equalsIgnoreCase(packageDirectory.getName()) || localeFolder.equalsIgnoreCase(packageDirectory.getName())) { linkPackagableFiles(javaProject, packageFragmentRoot, localeArtifacts, linkBuffers); } } else { continue; } } } } } } catch (JavaModelException e1) { _log.error(e1.getMessage(), e1); } return linkBuffers; }
From source file:net.rim.ejde.internal.util.ImportUtils.java
License:Open Source License
static private void linkPackagableFiles(IJavaProject javaProject, IPackageFragmentRoot packageFragmentRoot, Map<String, Set<File>> packagableContainer, List<LinkBuffer> linkBuffers) throws JavaModelException { IResource resource;/* w w w.j a v a 2 s .co m*/ IFolder packageFolder; IPath filePath = null; IPath drfpath = null; IFile eclipseFileHandle = null, fileHandle = null; StringTokenizer tokenizer; IPackageFragment packageFragment; Set<File> packageableFiles; Set<String> packageIds = packagableContainer.keySet(); for (String packageId : packageIds) { packageableFiles = packagableContainer.get(packageId); if (StringUtils.isBlank(packageId)) { packageId = ""; } packageFragment = packageFragmentRoot.createPackageFragment(packageId, true, new NullProgressMonitor()); if (IResource.FOLDER == packageFragment.getResource().getType()) { packageFolder = (IFolder) packageFragment.getResource(); for (File file : packageableFiles) { filePath = new Path(file.getAbsolutePath()); if (canIgnoreFile(filePath, javaProject)) { continue; } tokenizer = new StringTokenizer(packageId, "."); drfpath = new Path(""); while (tokenizer.hasMoreElements()) { drfpath.append(tokenizer.nextToken()); } assureFolderPath(packageFolder, drfpath); fileHandle = createFileHandle(packageFolder, file.getName()); resource = javaProject.getProject() .findMember(PackageUtils.deResolve(filePath, javaProject.getProject().getLocation())); if (resource != null) eclipseFileHandle = javaProject.getProject().getWorkspace().getRoot() .getFile(resource.getFullPath()); else eclipseFileHandle = null; if (!fileHandle.equals(eclipseFileHandle)) { linkBuffers.add(new LinkBuffer(fileHandle, filePath)); } } } } }
From source file:org.apache.openjpa.eclipse.EnhancerBuilderTest.java
License:Apache License
protected void setUp() throws Exception { IWorkspace workspace = null;// w w w. j a v a2 s . c o m try { workspace = ResourcesPlugin.getWorkspace(); } catch (IllegalStateException e) { fail("workspace is closed, you are most probably running this as a standalone JUnit Test instead of as an Eclipse PDE Plug-In Test?!"); } // create project project = workspace.getRoot().getProject(PROJECT_NAME); project.create(null); project.open(null); // create source and output folders IFolder srcFolder = project.getFolder("src"); srcFolder.create(true, true, null); IFolder binFolder = project.getFolder("bin"); binFolder.create(true, true, null); IProjectDescription desc = project.getDescription(); // Set the Java and OpenJPA natures on the project, // so that the builders is added and initialized desc.setNatureIds(new String[] { JavaCore.NATURE_ID, OpenJPANature.NATURE_ID }); project.setDescription(desc, null); // Declare Java source and output folders IJavaProject javaProject = JavaCore.create(project); javaProject.setOutputLocation(binFolder.getFullPath(), null); IClasspathEntry cpEntry = JavaCore.newSourceEntry(srcFolder.getFullPath()); javaProject.setRawClasspath(new IClasspathEntry[] { cpEntry }, null); // create a Java package and a class IPackageFragmentRoot pkgFragmentRoot = javaProject.getPackageFragmentRoot(srcFolder); IPackageFragment pkgFragment = pkgFragmentRoot.createPackageFragment(TESTCLASS_PACKAGE, true, null); // and copy the same classes already used in the PCEnhancerHelperTest copyTestClassToPackage(pkgFragment, "TestEntity.java"); // copyTestClassToPackage(pkgFragment, "NotToEnhance.java"); javaProject.save(null, true); }
From source file:org.apache.openjpa.eclipse.util.ClasspathHelperTest.java
License:Apache License
protected void setUp() throws Exception { IWorkspace workspace = null;//w ww.j a va2 s . c om try { workspace = ResourcesPlugin.getWorkspace(); } catch (IllegalStateException e) { fail("workspace is closed, you are most probably running this as a standalone JUnit Test instead of as an Eclipse PDE Plug-In Test?!"); } // create project project = workspace.getRoot().getProject(PROJECT_NAME); project.create(null); project.open(null); // create source and output folders IFolder srcFolder = project.getFolder("src"); srcFolder.create(true, true, null); IFolder binFolder = project.getFolder("bin"); binFolder.create(true, true, null); // Set the Java nature on the project, so that the builder is added and initialized IProjectDescription desc = workspace.newProjectDescription(PROJECT_NAME); desc.setNatureIds(new String[] { JavaCore.NATURE_ID }); project.setDescription(desc, null); // Declare Java source and output folders IJavaProject javaProject = JavaCore.create(project); javaProject.setOutputLocation(binFolder.getFullPath(), null); IClasspathEntry cpEntry = JavaCore.newSourceEntry(srcFolder.getFullPath()); javaProject.setRawClasspath(new IClasspathEntry[] { cpEntry }, null); // create a Java package and a class IPackageFragmentRoot pkgFragmentRoot = javaProject.getPackageFragmentRoot(srcFolder); IPackageFragment pkgFragment = pkgFragmentRoot.createPackageFragment(TESTCLASS_PACKAGE, true, null); InputStream is = Thread.currentThread().getContextClassLoader() .getResourceAsStream("/com/odcgroup/classpath/demo/tests/resources/testclasscontent.txt"); String contents = IOUtils.toString(is); pkgFragment.createCompilationUnit(TESTCLASS_NAME + ".java", contents, true, null); javaProject.save(null, true); }
From source file:org.autorefactor.refactoring.rules.JavaCoreHelper.java
License:Open Source License
public static IPackageFragment getPackageFragment() throws Exception { final IJavaProject javaProject = createJavaProject("projectName", "bin"); final IPackageFragmentRoot root = addSourceContainer(javaProject, "/testRoot"); addToClasspath(javaProject, getClasspathEntries(root)); return root.createPackageFragment("org.autorefactor", true, null); }
From source file:org.azzyzt.jee.tools.project.JavaProject.java
License:EUPL
protected void createSubpackages(String srcFolderName, String... pkgNames) throws CoreException, JavaModelException { IPath absEjbSrcPath = getP().getFolder(srcFolderName).getFullPath(); IPackageFragmentRoot ejbPackageFragmentRoot = jp.findPackageFragmentRoot(absEjbSrcPath); for (String subPackage : Arrays.asList(pkgNames)) { String pkgName = String.format("%s.%s", getContext().getPackageName(), subPackage); ejbPackageFragmentRoot.createPackageFragment(pkgName, true, getContext().getSubMonitor()); }//from w ww . j a v a 2 s .c o m }