List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot createPackageFragment
IPackageFragment createPackageFragment(String name, boolean force, IProgressMonitor monitor) throws JavaModelException;
From source file:byke.tests.workspaceutils.JavaProject.java
License:Open Source License
public ICompilationUnit createCompilationUnit(final IPackageFragmentRoot sourceFolder, String packageName, String cuName, String contents) throws JavaModelException, CoreException { IPackageFragment packageFragment = sourceFolder.getPackageFragment(packageName); if (!packageFragment.exists()) { packageFragment = sourceFolder.createPackageFragment(packageName, false, null); }/*from w ww.j a v a2s .c o m*/ return createCompilationUnit(packageFragment, cuName, contents); }
From source file:com.aliyun.odps.eclipse.utils.NewWizardUtils.java
License:Apache License
public static void createClass(IJavaProject myjavapro, String className, String classPath, IProgressMonitor monitor, String content) throws JavaModelException { IPath mypath = myjavapro.getPath();// w w w . j a va2 s . c om mypath = mypath.append("src"); mypath.append(classPath); IPackageFragmentRoot fragmentRoot = myjavapro.findPackageFragmentRoot(mypath); IPackageFragment fragment = fragmentRoot.createPackageFragment(classPath, true, monitor); fragment.createCompilationUnit(className + ".java", content, true, monitor); }
From source file:com.aliyun.odps.eclipse.utils.NewWizardUtils.java
License:Apache License
public static void createTestBase(IJavaProject myjavapro, String classPath, IProgressMonitor monitor, String content, String testBaseName) throws JavaModelException { IPath mypath = myjavapro.getPath();/*from w w w .j a v a 2 s . c o m*/ mypath = mypath.append("src"); mypath.append(classPath); IPackageFragmentRoot fragmentRoot = myjavapro.findPackageFragmentRoot(mypath); IPackageFragment fragment = fragmentRoot.createPackageFragment(classPath, true, monitor); IJavaElement[] iJavaElement = fragment.getChildren(); boolean exit = false; for (int i = 0; i < iJavaElement.length; i++) { if (iJavaElement[i].getElementName().equals(testBaseName)) { exit = true; break; } } if (!exit) { fragment.createCompilationUnit(testBaseName, content, false, monitor); } }
From source file:com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.java
License:Open Source License
private void createNewClass(String fqcn) { int pos = fqcn.lastIndexOf('.'); String packageName = pos < 0 ? "" : fqcn.substring(0, pos); //$NON-NLS-1$ String className = pos <= 0 || pos >= fqcn.length() ? "" : fqcn.substring(pos + 1); //$NON-NLS-1$ // create the wizard page for the class creation, and configure it NewClassWizardPage page = new NewClassWizardPage(); // set the parent class page.setSuperClass(SdkConstants.CLASS_VIEW, true /* canBeModified */); // get the source folders as java elements. IPackageFragmentRoot[] roots = getPackageFragmentRoots(mEditorDelegate.getEditor().getProject(), false /*includeContainers*/, true /*skipGenFolder*/); IPackageFragmentRoot currentRoot = null; IPackageFragment currentFragment = null; int packageMatchCount = -1; for (IPackageFragmentRoot root : roots) { // Get the java element for the package. // This method is said to always return a IPackageFragment even if the // underlying folder doesn't exist... IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null && fragment.exists()) { // we have a perfect match! we use it. currentRoot = root;/*from w w w . j av a2s. c o m*/ currentFragment = fragment; packageMatchCount = -1; break; } else { // we don't have a match. we look for the fragment with the best match // (ie the closest parent package we can find) try { IJavaElement[] children; children = root.getChildren(); for (IJavaElement child : children) { if (child instanceof IPackageFragment) { fragment = (IPackageFragment) child; if (packageName.startsWith(fragment.getElementName())) { // its a match. get the number of segments String[] segments = fragment.getElementName().split("\\."); //$NON-NLS-1$ if (segments.length > packageMatchCount) { packageMatchCount = segments.length; currentFragment = fragment; currentRoot = root; } } } } } catch (JavaModelException e) { // Couldn't get the children: we just ignore this package root. } } } ArrayList<IPackageFragment> createdFragments = null; if (currentRoot != null) { // if we have a perfect match, we set it and we're done. if (packageMatchCount == -1) { page.setPackageFragmentRoot(currentRoot, true /* canBeModified*/); page.setPackageFragment(currentFragment, true /* canBeModified */); } else { // we have a partial match. // create the package. We have to start with the first segment so that we // know what to delete in case of a cancel. try { createdFragments = new ArrayList<IPackageFragment>(); int totalCount = packageName.split("\\.").length; //$NON-NLS-1$ int count = 0; int index = -1; // skip the matching packages while (count < packageMatchCount) { index = packageName.indexOf('.', index + 1); count++; } // create the rest of the segments, except for the last one as indexOf will // return -1; while (count < totalCount - 1) { index = packageName.indexOf('.', index + 1); count++; createdFragments.add(currentRoot.createPackageFragment(packageName.substring(0, index), true /* force*/, new NullProgressMonitor())); } // create the last package createdFragments.add(currentRoot.createPackageFragment(packageName, true /* force*/, new NullProgressMonitor())); // set the root and fragment in the Wizard page page.setPackageFragmentRoot(currentRoot, true /* canBeModified*/); page.setPackageFragment(createdFragments.get(createdFragments.size() - 1), true /* canBeModified */); } catch (JavaModelException e) { // If we can't create the packages, there's a problem. // We revert to the default package for (IPackageFragmentRoot root : roots) { // Get the java element for the package. // This method is said to always return a IPackageFragment even if the // underlying folder doesn't exist... IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null && fragment.exists()) { page.setPackageFragmentRoot(root, true /* canBeModified*/); page.setPackageFragment(fragment, true /* canBeModified */); break; } } } } } else if (roots.length > 0) { // if we haven't found a valid fragment, we set the root to the first source folder. page.setPackageFragmentRoot(roots[0], true /* canBeModified*/); } // if we have a starting class name we use it if (className != null) { page.setTypeName(className, true /* canBeModified*/); } // create the action that will open it the wizard. OpenNewClassWizardAction action = new OpenNewClassWizardAction(); action.setConfiguredWizardPage(page); action.run(); IJavaElement element = action.getCreatedElement(); if (element == null) { // lets delete the packages we created just for this. // we need to start with the leaf and go up if (createdFragments != null) { try { for (int i = createdFragments.size() - 1; i >= 0; i--) { createdFragments.get(i).delete(true /* force*/, new NullProgressMonitor()); } } catch (JavaModelException e) { e.printStackTrace(); } } } }
From source file:com.android.ide.eclipse.adt.internal.editors.manifest.model.UiClassAttributeNode.java
License:Open Source License
private void createNewClass(String packageName, String className) { // create the wizard page for the class creation, and configure it NewClassWizardPage page = new NewClassWizardPage(); // set the parent class page.setSuperClass(mReferenceClass, true /* canBeModified */); // get the source folders as java elements. IPackageFragmentRoot[] roots = getPackageFragmentRoots(getProject(), true /*include_containers*/); IPackageFragmentRoot currentRoot = null; IPackageFragment currentFragment = null; int packageMatchCount = -1; for (IPackageFragmentRoot root : roots) { // Get the java element for the package. // This method is said to always return a IPackageFragment even if the // underlying folder doesn't exist... IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null && fragment.exists()) { // we have a perfect match! we use it. currentRoot = root;/*from w w w . j ava 2 s . c o m*/ currentFragment = fragment; packageMatchCount = -1; break; } else { // we don't have a match. we look for the fragment with the best match // (ie the closest parent package we can find) try { IJavaElement[] children; children = root.getChildren(); for (IJavaElement child : children) { if (child instanceof IPackageFragment) { fragment = (IPackageFragment) child; if (packageName.startsWith(fragment.getElementName())) { // its a match. get the number of segments String[] segments = fragment.getElementName().split("\\."); //$NON-NLS-1$ if (segments.length > packageMatchCount) { packageMatchCount = segments.length; currentFragment = fragment; currentRoot = root; } } } } } catch (JavaModelException e) { // Couldn't get the children: we just ignore this package root. } } } ArrayList<IPackageFragment> createdFragments = null; if (currentRoot != null) { // if we have a perfect match, we set it and we're done. if (packageMatchCount == -1) { page.setPackageFragmentRoot(currentRoot, true /* canBeModified*/); page.setPackageFragment(currentFragment, true /* canBeModified */); } else { // we have a partial match. // create the package. We have to start with the first segment so that we // know what to delete in case of a cancel. try { createdFragments = new ArrayList<IPackageFragment>(); int totalCount = packageName.split("\\.").length; //$NON-NLS-1$ int count = 0; int index = -1; // skip the matching packages while (count < packageMatchCount) { index = packageName.indexOf('.', index + 1); count++; } // create the rest of the segments, except for the last one as indexOf will // return -1; while (count < totalCount - 1) { index = packageName.indexOf('.', index + 1); count++; createdFragments.add(currentRoot.createPackageFragment(packageName.substring(0, index), true /* force*/, new NullProgressMonitor())); } // create the last package createdFragments.add(currentRoot.createPackageFragment(packageName, true /* force*/, new NullProgressMonitor())); // set the root and fragment in the Wizard page page.setPackageFragmentRoot(currentRoot, true /* canBeModified*/); page.setPackageFragment(createdFragments.get(createdFragments.size() - 1), true /* canBeModified */); } catch (JavaModelException e) { // if we can't create the packages, there's a problem. we revert to the default // package for (IPackageFragmentRoot root : roots) { // Get the java element for the package. // This method is said to always return a IPackageFragment even if the // underlying folder doesn't exist... IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null && fragment.exists()) { page.setPackageFragmentRoot(root, true /* canBeModified*/); page.setPackageFragment(fragment, true /* canBeModified */); break; } } } } } else if (roots.length > 0) { // if we haven't found a valid fragment, we set the root to the first source folder. page.setPackageFragmentRoot(roots[0], true /* canBeModified*/); } // if we have a starting class name we use it if (className != null) { page.setTypeName(className, true /* canBeModified*/); } // create the action that will open it the wizard. OpenNewClassWizardAction action = new OpenNewClassWizardAction(); action.setConfiguredWizardPage(page); action.run(); IJavaElement element = action.getCreatedElement(); if (element != null) { if (element.getElementType() == IJavaElement.TYPE) { IType type = (IType) element; if (mPostCreationAction != null) { mPostCreationAction.processNewType(type); } handleNewType(type); } } else { // lets delete the packages we created just for this. // we need to start with the leaf and go up if (createdFragments != null) { try { for (int i = createdFragments.size() - 1; i >= 0; i--) { createdFragments.get(i).delete(true /* force*/, new NullProgressMonitor()); } } catch (JavaModelException e) { e.printStackTrace(); } } } }
From source file:com.arcbees.gwtp.plugin.core.common.GWTPNewTypeWizardPage.java
License:Apache License
protected void ensurePackageExists(IProgressMonitor monitor) throws JavaModelException { IPackageFragmentRoot root = getPackageFragmentRoot(); IPackageFragment pack = getPackageFragment(); if (pack == null) { pack = root.getPackageFragment(""); //$NON-NLS-1$ }//from w ww .java 2s. c om if (!pack.exists()) { String packName = pack.getElementName(); pack = root.createPackageFragment(packName, true, new SubProgressMonitor(monitor, 1)); } }
From source file:com.ecfeed.ui.common.utils.EclipsePackageFragmentGetter.java
License:Open Source License
public static IPackageFragment getPackageFragment(String name, IFileInfoProvider fileInfoProvider) throws CoreException { IPackageFragmentRoot packageFragmentRoot = getPackageFragmentRoot(fileInfoProvider); IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(name); if (packageFragment.exists() == false) { packageFragment = packageFragmentRoot.createPackageFragment(name, false, null); }/* w ww . j a va 2 s . c om*/ return packageFragment; }
From source file:com.google.gdt.eclipse.appengine.rpc.wizards.helpers.RpcServiceLayerCreator.java
License:Open Source License
private void generateSharedFiles(String packageName, IProgressMonitor monitor) throws CoreException, MalformedTreeException, BadLocationException { String sharedPackageName = packageName; if (sharedPackageName.contains("server")) { //$NON-NLS-N$ sharedPackageName = sharedPackageName.replace("server", "shared"); //$NON-NLS-N$ } else {/*from ww w .j av a2s . c o m*/ sharedPackageName += ".shared"; //$NON-NLS-N$ } // get shared source folder IFolder gaeSharedFolder = gaeProject.getFolder(SHARED_FOLDER_NAME); if (!gaeSharedFolder.exists()) { gaeSharedFolder.create(true, true, new SubProgressMonitor(monitor, 2)); CodegenUtils.setupSourceFolders(JavaCore.create(gaeProject), gaeSharedFolder, monitor); } if (androidProject != null) { IFolder androidLinkedFolder = androidProject.getFolder(SHARED_FOLDER_NAME); if (!androidLinkedFolder.exists()) { /* The variable workspaceLoc is required only for Eclipse 3.5. * For Eclipses after 3.5, the project specific path variable WORKSPACE_LOC * can be used instead. */ String workspaceLoc = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString(); // use variables for shared folder path IPath sharedFolderPath = new Path(workspaceLoc + "/" //$NON-NLS-N$ + gaeProject.getName() + "/" + SHARED_FOLDER_NAME); androidLinkedFolder.createLink(sharedFolderPath, IResource.ALLOW_MISSING_LOCAL, new SubProgressMonitor(monitor, 1)); CodegenUtils.setupSourceFolders(JavaCore.create(androidProject), androidLinkedFolder, monitor); } } IPackageFragmentRoot srcFolder = JavaCore.create(gaeProject).getPackageFragmentRoot(gaeSharedFolder); IPackageFragment pack = srcFolder.getPackageFragment(sharedPackageName); if (!pack.exists()) { pack = srcFolder.createPackageFragment(sharedPackageName, true, new SubProgressMonitor(monitor, 2)); } // for all the entities, generate Proxy, Request for (IType anEntity : entityList) { current = anEntity; createCompilationUnit(pack, current.getElementName() + "Proxy", RpcType.PROXY, //$NON-NLS-N$ new SubProgressMonitor(monitor, 1)); } // generate Request String requestFileName = serviceName.replace("Service", "") + "Request"; //$NON-NLS-N$ createCompilationUnit(pack, requestFileName, RpcType.REQUEST, //$NON-NLS-N$ new SubProgressMonitor(monitor, 1)); // generate RequestFactory // check if there is a request factory class in the project String rfactoryFileName = serviceName.replace("Service", "") + "RequestFactory"; //$NON-NLS-N$ List<IType> reqFactoryList = RequestFactoryUtils.findTypes(JavaCore.create(gaeProject), RpcType.REQ_FACTORY); if (reqFactoryList.isEmpty()) { createCompilationUnit(pack, rfactoryFileName, RpcType.REQ_FACTORY, new SubProgressMonitor(monitor, 1)); //$NON-NLS-N$ } else { addReqFactoryBody(reqFactoryList.get(0), new SubProgressMonitor(monitor, 1)); } }
From source file:com.google.gdt.eclipse.core.JavaProjectTestUtilities.java
License:Open Source License
/** * Creates an {@link ICompilationUnit} with the given fully qualified name and * code in the <code>javaProject</code>. * // w ww .jav a2 s.c o m * @param javaProject java project to host the new class * @param fullyQualifiedClassName fully qualified name for the class * @param source code for the classs * @return newly created {@link ICompilationUnit} * @throws JavaModelException */ public static ICompilationUnit createCompilationUnit(IJavaProject javaProject, String fullyQualifiedClassName, String source) throws JavaModelException { IPackageFragmentRoot root = javaProject.findPackageFragmentRoot(javaProject.getPath()); if (root == null) { addRawClassPathEntry(javaProject, JavaCore.newSourceEntry(javaProject.getPath())); root = javaProject.findPackageFragmentRoot(javaProject.getPath()); } String qualifier = Signature.getQualifier(fullyQualifiedClassName); IProgressMonitor monitor = new NullProgressMonitor(); IPackageFragment packageFragment = root.createPackageFragment(qualifier, true, monitor); String name = Signature.getSimpleName(fullyQualifiedClassName); return packageFragment.createCompilationUnit(name + ".java", source, false, monitor); }
From source file:com.google.gdt.eclipse.core.JavaProjectUtilities.java
License:Open Source License
/** * Creates an {@link ICompilationUnit} with the given fully qualified name and * code in the <code>javaProject</code>. * * @param javaProject java project to host the new class * @param fullyQualifiedClassName fully qualified name for the class * @param source code for the classs/*from ww w . j a v a 2 s . co m*/ * @return newly created {@link ICompilationUnit} * @throws JavaModelException */ public static ICompilationUnit createCompilationUnit(IJavaProject javaProject, String fullyQualifiedClassName, String source) throws JavaModelException { IPackageFragmentRoot root = javaProject.findPackageFragmentRoot(javaProject.getPath()); if (root == null) { addRawClassPathEntry(javaProject, JavaCore.newSourceEntry(javaProject.getPath())); root = javaProject.findPackageFragmentRoot(javaProject.getPath()); } String qualifier = Signature.getQualifier(fullyQualifiedClassName); IProgressMonitor monitor = new NullProgressMonitor(); IPackageFragment packageFragment = root.createPackageFragment(qualifier, true, monitor); String name = Signature.getSimpleName(fullyQualifiedClassName); ICompilationUnit cu = packageFragment.createCompilationUnit(name + ".java", source, false, monitor); JobsUtilities.waitForIdle(); return cu; }