List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getPackageFragment
IPackageFragment getPackageFragment(String packageName);
From source file:org.entirej.ide.ui.wizards.service.NewEJPojoServiceContentPage.java
License:Apache License
public String createPojoClass(EJPojoGeneratorType pojoGeneratorType, IProgressMonitor monitor) throws Exception, CoreException { Class<?> pojoGeneratorClass = EJPluginEntireJClassLoader.loadClass(projectProvider.getJavaProject(), pojoPage.getPojoGeneratorClass()); if (!EJPojoContentGenerator.class.isAssignableFrom(pojoGeneratorClass)) { throw new IllegalArgumentException( "The pojo generator does not implement the interface: EJPojoContentGenerator"); }/* w w w.j a va 2s . co m*/ EJPojoContentGenerator pojoContentGenerator = (EJPojoContentGenerator) pojoGeneratorClass.newInstance(); pojoGeneratorType.setPackageName(pojoPage.getPackageText()); IPackageFragmentRoot root = getPackageFragmentRoot(); IPackageFragment pack = root.getPackageFragment(pojoGeneratorType.getPackageName()); 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); } pojoGeneratorType.setPackageName(pack.getElementName()); ICompilationUnit connectedCU = null; try { ICompilationUnit parentCU = pack.createCompilationUnit(pojoGeneratorType.getClassName() + ".java", "", //$NON-NLS-1$ true, new SubProgressMonitor(monitor, 2)); // create a working copy with a new owner parentCU.becomeWorkingCopy(new SubProgressMonitor(monitor, 1)); connectedCU = parentCU; IBuffer buffer = parentCU.getBuffer(); String fileContents = pojoContentGenerator.generateContent(pojoGeneratorType); if (fileContents == null) { throw new IllegalArgumentException("No content provided by chosen pojo generator."); } CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(getProject().getOptions(true)); IDocument doc = new Document(fileContents); TextEdit edit = codeFormatter.format(CodeFormatter.K_COMPILATION_UNIT, doc.get(), 0, doc.get().length(), 0, null); if (edit != null) { edit.apply(doc); fileContents = doc.get(); } buffer.setContents(fileContents); final IType createdType = parentCU.getType(pojoGeneratorType.getClassName()); connectedCU.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1)); getShell().getDisplay().asyncExec(new Runnable() { public void run() { IWizard iWizard = getWizard(); if (iWizard instanceof NewWizard) { NewWizard wizard = (NewWizard) iWizard; wizard.selectAndReveal(createdType.getResource()); wizard.openResource((IFile) createdType.getResource()); } } }); return createdType.getFullyQualifiedName('$'); } finally { if (connectedCU != null) { connectedCU.discardWorkingCopy(); } IJavaProject javaProject = pojoPage.getJavaProject(); javaProject.getProject().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor); } }
From source file:org.evolizer.core.util.projecthandling.JavaProjectHelper.java
License:Apache License
/** * Adds the source file.//ww w .jav a2 s . c om * * @param sourceFolder * the source folder * @param packageName * the package name * @param fileName * the file name * @param content * the content * @param progressMonitor * the progress monitor * @throws JavaModelException * if the element could not be created. Reasons include: * <ul> * <li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)</li> * <li>A CoreException occurred while creating an underlying resource</li> * <li>This package fragment root is read only (READ_ONLY)</li> * <li>The name is not a valid package name (INVALID_NAME)</li> * </ul> */ public void addSourceFile(String sourceFolder, String packageName, String fileName, String content, IProgressMonitor progressMonitor) throws JavaModelException { IProgressMonitor monitor = (progressMonitor == null) ? new NullProgressMonitor() : progressMonitor; try { monitor.beginTask("Adding Source File " + fileName + " to Package " + packageName, 1); IFolder folder = fProject.getFolder(sourceFolder); IPackageFragmentRoot javaRoot = fJavaProject.getPackageFragmentRoot(folder); IPackageFragment packageFragment = javaRoot.getPackageFragment(packageName); packageFragment.createCompilationUnit(fileName, content, false, null); } finally { monitor.done(); } }
From source file:org.fastcode.util.JUnitCreator.java
License:Open Source License
/** * * @param typeToWorkOn//from w ww . ja v a2s . c om * @param method * @return * @throws Exception */ public static IMember generateTest(final IType type, final Map<Object, List<FastCodeEntityHolder>> commitMessage, final IMethod... methods) throws Exception { final VersionControlPreferences versionControlPreferences = VersionControlPreferences.getInstance(); if (JunitPreferences.getInstance(type) == null) { throw new Exception( "Please select the correct project in Windows->Preferences->Fast Code->Unit Test and try again."); } final CreateUnitTestData createUnitTestData = getCreateUnitTestData(type, methods); if (createUnitTestData == null) { return null; } final JunitPreferencesAndType junitPreferencesAndType = createUnitTestData.getJunitPreferencesAndType(); // JUnitUtil.findJunitPreferences(type, // createUnitTestData.getJunitTestProfileName()); /* * if (junitPreferencesAndType == null) { throw new * Exception("This class you selected does not match any profile. " + * "Please configure it first by going to Window -> Preference -> Fast Code Pereference." * ); } */ JunitPreferences junitPreferences = junitPreferencesAndType.getJunitPreferences(); IType typeToWorkOn = junitPreferencesAndType.getType(); /* * junitPreferences.setExpTest(createUnitTestData.getUnitTestType() == * UNIT_TEST_TYPE.EXCEPTION_TEST); * junitPreferences.setHandleException(createUnitTestData * .getHandleException()); * junitPreferences.setResultFormatList(Arrays.asList * (createUnitTestData.getUnitTestRsltFormatSelected())); * junitPreferences * .setMethodReturnType(createUnitTestData.getMethodReturnType()); */ junitPreferences.setCreateUnitTestData(createUnitTestData); // String junitTestLocation = // replacePlaceHolder(junitPreferences.getJunitTestLocation(), // "project", type.getJavaProject().getElementName()); // junitTestLocation = "/" + junitTestLocation; final GlobalSettings globalSettings = getInstance(); String junitTestLocation = globalSettings.isUseDefaultForPath() ? globalSettings.getSourcePathTest() : junitPreferences.getJunitTestLocation(); junitTestLocation = getDefaultPathFromProject(typeToWorkOn.getJavaProject(), "test", junitTestLocation); final IPackageFragmentRoot testPackageFragmentRoot = SourceUtil .getPackageRootFromProject(typeToWorkOn.getJavaProject(), junitTestLocation); if (testPackageFragmentRoot == null || !testPackageFragmentRoot.exists()) { throw new Exception("Path does not exist in the project " + junitTestLocation); } // final String junitTestClassName = // junitPreferences.getJunitTestClass(); final String junitBase = junitPreferences.getJunitBaseType(); // final boolean createMethodBody = // junitPreferences.isCreateMethodBody(); // final boolean alwaysCreateTryCatch = // junitPreferences.isAlwaysCreateTryCatch(); // final boolean createInstance = junitPreferences.isCreateInstance(); // final String[] methodAnnotations = // junitPreferences.getMethodAnnotations(); ICompilationUnit unitTestCU = findTestUnit(typeToWorkOn, junitPreferences); // find the interface if unit test is null if (unitTestCU == null && typeToWorkOn.isClass()) { final IType tmpType = findSuperInterfaceType(typeToWorkOn); if (tmpType != null) { final JunitPreferences junitPref = JunitPreferences.getInstance(tmpType); if (junitPref != null) { unitTestCU = findTestUnit(tmpType, junitPref); if (unitTestCU != null) { junitPreferences = junitPref; typeToWorkOn = tmpType; /* * junitPreferences.setExpTest(createUnitTestData. * getUnitTestType() == UNIT_TEST_TYPE.EXCEPTION_TEST); * junitPreferences * .setHandleException(createUnitTestData * .getHandleException()); * junitPreferences.setResultFormatList * (Arrays.asList(createUnitTestData * .getUnitTestRsltFormatSelected())); * junitPreferences.setMethodReturnType * (createUnitTestData.getMethodReturnType()); */ junitPreferences.setCreateUnitTestData(createUnitTestData); } } } } if (!typeToWorkOn.equals(type) && checkForErrors(typeToWorkOn.getCompilationUnit().getResource())) { if (!MessageDialog.openQuestion(new Shell(), "Error", "There seems to be some problems associated with " + typeToWorkOn.getElementName() + ". It is better to fix those problems and try again. Do you want to continue?")) { return null; } } IType junitBaseType = null; final JUNIT_TYPE junitType = junitPreferences.getJunitType(); if (junitType == JUNIT_TYPE.JUNIT_TYPE_3) { junitBaseType = typeToWorkOn.getJavaProject().findType(junitBase); if (junitBaseType == null || !junitBaseType.exists()) { throw new Exception("Unable to find Junit Base Class " + junitBase + " in the current project. " + "Make sure you have configured it properly by going to Windows -> Preference ->Fast Code Preference"); } } final String testPkg = typeToWorkOn.getPackageFragment().getElementName(); IPackageFragment testPackageFragment = testPackageFragmentRoot.getPackageFragment(testPkg); if (testPackageFragment == null || !testPackageFragment.exists()) { testPackageFragment = testPackageFragmentRoot.createPackageFragment(testPkg, false, null); } //final String testFormat = junitPreferences.getTestFormat(); final String instance = createDefaultInstance(typeToWorkOn.getElementName()); final CreateSimilarDescriptor createSimilarDescriptor = makeCreateSimilarDescriptor(junitPreferences, typeToWorkOn); final FastCodeContext fastCodeContext = new FastCodeContext(typeToWorkOn, true, junitPreferences); final boolean testClassExst = unitTestCU != null && unitTestCU.exists(); final CreateSimilarDescriptorClass createSimilarDescriptorClass = createSimilarDescriptor .getCreateSimilarDescriptorClasses()[0]; IFile unitTestFile = null; boolean createFileAlone = false; if (!testClassExst) { final String prjURI = testPackageFragment.getResource().getLocationURI().toString(); final String path = prjURI.substring(prjURI.indexOf(COLON) + 1); final File newFileObj = new File( path + FORWARD_SLASH + createSimilarDescriptor.getToPattern() + DOT + JAVA_EXTENSION); final boolean prjShared = !isEmpty( testPackageFragment.getResource().getProject().getPersistentProperties()); final boolean prjConfigured = !isEmpty( isPrjConfigured(testPackageFragment.getResource().getProject().getName())); if (versionControlPreferences.isEnable() && prjShared && prjConfigured) { final RepositoryService repositoryService = getRepositoryServiceClass(); if (repositoryService.isFileInRepository(newFileObj)) { // && !MessageDialog.openQuestion(new Shell(), "File present in repository", "File already present in repository. Click yes to overwrite")) { /*MessageDialog.openWarning(new Shell(), "File present in repository", junitPreferences.getJunitTestClass() + " is already present in repository. Please synchronise and try again."); return null;*/ createFileAlone = MessageDialog.openQuestion(new Shell(), "File present in repository", "File " + newFileObj.getName() + " already present in repository. Click yes to just create the file, No to return without any action."); if (!createFileAlone) { return null; } } } else { createFileAlone = true; } /*final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance(); checkinCache.getFilesToCheckIn().add(new FastCodeFileForCheckin(INITIATED, newFileObj.getAbsolutePath()));*/ addOrUpdateFileStatusInCache(newFileObj); createSimilar(fastCodeContext, null, createSimilarDescriptor, new NullProgressMonitor()); unitTestCU = fastCodeContext.getCompilationUnitRegsistry(createSimilarDescriptorClass); if (!createFileAlone) { unitTestFile = (IFile) unitTestCU.findPrimaryType().getResource();//.getLocationURI()); List<FastCodeEntityHolder> chngsForType = commitMessage.get(unitTestFile); if (chngsForType == null) { chngsForType = new ArrayList<FastCodeEntityHolder>(); chngsForType.add(new FastCodeEntityHolder(PLACEHOLDER_CLASS, new FastCodeType(unitTestCU.findPrimaryType()))); } commitMessage.put(unitTestFile, chngsForType); } } else { createFileAlone = true; } if (testClassExst) { if (!unitTestCU.getResource().isSynchronized(0)) { throw new Exception( unitTestCU.getElementName() + " is not Synchronized, please refresh and try again."); } unitTestFile = (IFile) unitTestCU.findPrimaryType().getResource(); //.getLocationURI()); } final Map<String, FastCodeMethod> stubMethods = createUnitTestData.getStubMethodsMap(); // FastCodeMethodRegistry.getRegisteredUnitTestStubMethods(junitType); if (stubMethods != null) { // && !testClassExst) { /* * final FastCodeMethodSelectionDialog methodSelectionDialog = new * FastCodeMethodSelectionDialog(new Shell(), "Select Methods", * "Select One of more Stub Methods from Below", stubMethods, true); * methodSelectionDialog.open(); final Object[] regularMethods = * methodSelectionDialog.getResult(); */ //unitTestFile = (IFile) unitTestCU.findPrimaryType().getResource(); if (!createFileAlone) { final File newFileObj = new File(unitTestFile.getLocationURI().toString()); final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance(); checkinCache.getFilesToCheckIn() .add(new FastCodeFileForCheckin(INITIATED, newFileObj.getAbsolutePath())); } if (createUnitTestData.getSelectedStubMethodsList() != null) { for (final FastCodeMethod fastCodeMethod : createUnitTestData.getSelectedStubMethodsList() .toArray(new FastCodeMethod[0])) { createStubMethod(unitTestCU.findPrimaryType(), fastCodeMethod); if (!createFileAlone) { List<FastCodeEntityHolder> chngesForType = commitMessage.get(unitTestFile); if (chngesForType == null) { chngesForType = new ArrayList<FastCodeEntityHolder>(); final List<Object> fastCodeMethodList = new ArrayList<Object>(); fastCodeMethodList.add(fastCodeMethod); chngesForType .add(new FastCodeEntityHolder(PLACEHOLDER_STUBMETHODS, fastCodeMethodList)); } else { boolean isNew = true; Object fastCodeMethodList = null; for (final FastCodeEntityHolder fcEntityHolder : chngesForType) { if (fcEntityHolder.getEntityName().equals(PLACEHOLDER_STUBMETHODS)) { fastCodeMethodList = fcEntityHolder.getFastCodeEntity(); isNew = false; break; } } if (isNew) { fastCodeMethodList = new ArrayList<Object>(); ((List<Object>) fastCodeMethodList).add(fastCodeMethod); chngesForType .add(new FastCodeEntityHolder(PLACEHOLDER_STUBMETHODS, fastCodeMethodList)); } else { ((List<Object>) fastCodeMethodList).add(fastCodeMethod); } } commitMessage.put(unitTestFile, chngesForType); } } } } if (junitType == JUNIT_TYPE.JUNIT_TYPE_3 || junitType == JUNIT_TYPE.JUNIT_TYPE_CUSTOM) { if (junitBaseType != null && junitBaseType.exists()) { unitTestCU.createImport(junitBaseType.getFullyQualifiedName(), null, null); } } else if (junitType == JUNIT_TYPE.JUNIT_TYPE_4) { unitTestCU.createImport("org.junit.*", null, null); unitTestCU.createImport("org.junit.Assert.*", null, AccStatic, null); } else if (junitType == JUNIT_TYPE.JUNIT_TYPE_TESTNG) { unitTestCU.createImport("org.testng.annotations.*", null, null); unitTestCU.createImport("org.testng.Assert.*", null, AccStatic, null); } if (unitTestCU == null || !unitTestCU.exists() || createUnitTestData.getClassMethodsSelected() == null || methods.length == 0) { return unitTestCU != null && unitTestCU.exists() ? unitTestCU.findPrimaryType() : null; } unitTestCU.createImport(typeToWorkOn.getFullyQualifiedName(), null, null); final List<IMethod> retMethods = new ArrayList<IMethod>(); final UnitTestMethodBuilder methodBuilder = new UnitTestMethodBuilder(fastCodeContext); boolean becomeWorkingCopy = false; if (!unitTestCU.isWorkingCopy()) { becomeWorkingCopy = true; unitTestCU.becomeWorkingCopy(null); } try { for (final IMethod method : createUnitTestData.getClassMethodsSelected().toArray(new IMethod[0])) { if (EMPTY_STR.equals(createUnitTestData.getTestMethodName())) { createUnitTestData.setTestMethodName(method.getElementName()); } IMethod methodToWorkOn = method; if (!type.equals(typeToWorkOn)) { methodToWorkOn = typeToWorkOn.getMethod(method.getElementName(), method.getParameterTypes()); if (methodToWorkOn == null || !methodToWorkOn.exists()) { MessageDialog.openError(new Shell(), "Error", "Method " + method.getElementName() + " does not exist in " + typeToWorkOn.getElementName()); continue; } } final IMethod[] testMethods = testClassExst ? findTestMethods(typeToWorkOn, methodToWorkOn, junitPreferences) : null; // boolean testMethodExist = false, createAotherTestMethod = // false; // testMethodExist = createAotherTestMethod = false; if (testMethods != null && testMethods.length > 0) { // testMethodExist = createAotherTestMethod = true; /* * final String[] choices = {"Create an additional test", * "Do Nothing", "Jump To The Test"}; * * final String choice = getChoiceFromMultipleValues(new * Shell(), "Junit Test Exists for method " + * methodToWorkOn.getElementName(), "Would You Like To", * choices); final int result = findInStringArray(choice, * choices); */ if (createUnitTestData.getUnitTestChoice().equals(UNIT_TEST_CHOICE.CREATEADDITIONALTEST)) { // break; } else if (createUnitTestData.getUnitTestChoice().equals(UNIT_TEST_CHOICE.JUMPTOTEST)) { if (methods.length == 1) { if (testMethods.length == 1) { return testMethods[0]; } final MethodSelectionDialog methodSelectionDialog = new MethodSelectionDialog( new Shell(), "Select Test Method", "Multiple tests found for the method you selected, " + "please select one from the list below.", testMethods, false); methodSelectionDialog.open(); return methodSelectionDialog.getResult() == null || methodSelectionDialog.getResult().length == 0 ? null : (IMethod) methodSelectionDialog.getFirstResult(); } } /* * switch (result) { case 0: // createAotherTestMethod = * true; break; case 1: continue; case 2: * * } */ // if (createAotherTestMethod) { // final MessageDialogWithToggle dialogForMethodBody = // openYesNoQuestion(new Shell(), // "Create Method Body", "Do you create method body?", // "Remember Decision", false, // Activator.getDefault().getPreferenceStore(), // P_JUNIT_TEST_ASK_FOR_METHOD_BODY); // if (dialogForMethodBody.getReturnCode() != // MESSAGE_DIALOG_RETURN_YES) { // createMethodBody = false; // alwaysCreateTryCatch = false; // } // } } if (junitBaseType != null) { for (final IMethod meth : junitBaseType.getMethods()) { if (isAbstract(meth.getFlags())) { // add methods here. // copyMethods(junitBaseType, // testCU.findPrimaryType(), meth, null, // METHOD_PATTERN_DEFAULT, null, // RETURN_TYPE.RETURN_TYPE_PASS_THRU, null, null, // false, null, false, false, null, null, null); } } } // if (junitPreferences.isCreateInstance()) { // final IField field = // testCU.findPrimaryType().getField(instance); // if (field == null || !field.exists()) { // testCU.findPrimaryType().createField("protected " + // type.getElementName() + SPACE + instance + ";\n", null, // false, null); // } // } // if (!testMethodExist || createAotherTestMethod) { // copyImports(type.getCompilationUnit(), testCU, method); // copyMethods(type, testCU.findPrimaryType(), method, instance, // junitPreferences.getJunitTestMethod(), // createAotherTestMethod ? EXTENSION_OTHER : null, // RETURN_TYPE.RETURN_TYPE_CONSUME, null, null, false, "result", // createMethodBody, alwaysCreateTryCatch, // methodAnnotations, null, null); // } /** * if (method == null) { for (final IMethod meth: * testCU.findPrimaryType().getMethods()) { if * (!meth.isConstructor()) { testMethod = meth; break; } } } * else { String testMethName = * replacePlaceHolder(junitPreferences.getJunitTestMethod(), * "method_name", method.getElementName()); if * (!junitPreferences * .getJunitTestMethod().startsWith("${method_name}")) { * testMethName = * replacePlaceHolder(junitPreferences.getJunitTestMethod(), * "method_name", * createEmbeddedInstance(method.getElementName())); } * * testMethod = testCU.findPrimaryType().getMethod(testMethName * + (createAotherTestMethod ? EXTENSION_OTHER : EMPTY_STR), * null); } */ if (!createFileAlone) { final File newFileObj = new File(unitTestFile.getLocationURI().toString()); final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance(); checkinCache.getFilesToCheckIn() .add(new FastCodeFileForCheckin(INITIATED, newFileObj.getAbsolutePath())); } final IMethod tstMethod = methodBuilder.buildMethod(methodToWorkOn, unitTestCU.findPrimaryType(), createSimilarDescriptor, createSimilarDescriptorClass); createUnitTestData.setTestMethodName(EMPTY_STR); if (tstMethod != null) { retMethods.add(tstMethod); if (!createFileAlone) { List<FastCodeEntityHolder> chngesForType = commitMessage.get(unitTestFile); if (chngesForType == null) { chngesForType = new ArrayList<FastCodeEntityHolder>(); final List<Object> fastCodeMethodList = new ArrayList<Object>(); fastCodeMethodList.add(new FastCodeMethod(tstMethod)); chngesForType .add(new FastCodeEntityHolder(PLACEHOLDER_TESTMETHODS, fastCodeMethodList)); } else { boolean isNew = true; Object fastCodeMethodList = null; for (final FastCodeEntityHolder fcEntityHolder : chngesForType) { if (fcEntityHolder.getEntityName().equals(PLACEHOLDER_TESTMETHODS)) { fastCodeMethodList = fcEntityHolder.getFastCodeEntity(); isNew = false; break; } } if (isNew) { fastCodeMethodList = new ArrayList<Object>(); ((List<Object>) fastCodeMethodList).add(new FastCodeMethod(tstMethod)); chngesForType .add(new FastCodeEntityHolder(PLACEHOLDER_TESTMETHODS, fastCodeMethodList)); } else { ((List<Object>) fastCodeMethodList).add(new FastCodeMethod(tstMethod)); } } commitMessage.put(unitTestFile, chngesForType); } } } } catch (final Exception ex) { ex.printStackTrace(); throw new Exception(ex.getMessage(), ex); } finally { // if (testClassExst) { if (!unitTestCU.hasResourceChanged()) { unitTestCU.commitWorkingCopy(false, null); } if (becomeWorkingCopy) { unitTestCU.discardWorkingCopy(); } } if (retMethods.isEmpty()) { return unitTestCU.findPrimaryType(); } else if (retMethods.size() == 1) { return retMethods.get(0); } else { final IMember[] selectedMembers = getSelectedMembers(IJavaElement.METHOD, retMethods.toArray(new IMethod[0]), "Unit Test to Jump", false); return selectedMembers == null || selectedMembers.length == 0 ? retMethods.get(0) : (IMethod) selectedMembers[0]; } }
From source file:org.fastcode.util.SourceUtil.java
License:Open Source License
/** * @param fastCodeContext/* w w w. ja v a 2s . c om*/ * @param member * @param createSimilarDescriptor * @param monitor * @return * @throws Exception */ public static void createSimilar(final FastCodeContext fastCodeContext, final IMember[] members, final CreateSimilarDescriptor createSimilarDescriptor, final IProgressMonitor monitor) throws Exception { final GlobalSettings globalSettings = getInstance(); final Shell parentShell = MessageUtil.getParentShell(); final Shell shell = parentShell == null ? new Shell() : parentShell; IPackageFragmentRoot packageFragmentRoot = null; String newpkg = EMPTY_STR, newcls = EMPTY_STR; String targetProject = null; final CreateSimilarDescriptorClass[] descriptorClasses = createSimilarDescriptor .getCreateSimilarDescUserChoice() == null ? createSimilarDescriptor.getCreateSimilarDescriptorClasses() : createSimilarDescriptor.getCreateSimilarDescUserChoice(); for (final CreateSimilarDescriptorClass createSimilarDescriptorClass : descriptorClasses) { if (createSimilarDescriptorClass == null) { continue; } final boolean replaceName = createSimilarDescriptor.isReplaceName(); String toName = createSimilarDescriptorClass.getToPattern(); // final String classBody = // createSimilarDescriptorClass.getClassBody(); IPackageFragment packageFragment = null; if (packageFragmentRoot == null) { targetProject = createSimilarDescriptorClass.getProject(); if (fastCodeContext.getFromType() == null) { /*final IJavaProject project = getJavaProject(targetProject); if (project != null && project.exists() && !isEmpty(createSimilarDescriptorClass.getPackge())) { for (final IPackageFragmentRoot pkgFragmntRoot : project.getPackageFragmentRoots()) { packageFragment = pkgFragmntRoot.getPackageFragment(createSimilarDescriptorClass.getPackge()); if (packageFragment != null && packageFragment.exists()) { packageFragmentRoot = pkgFragmntRoot; break; } } } if (packageFragment == null || !packageFragment.exists()) { final SelectionDialog packageDialog = JavaUI.createPackageDialog(shell, project, 0, null); if (packageDialog.open() == CANCEL) { return; } packageFragment = (IPackageFragment) packageDialog.getResult()[0]; packageFragmentRoot = (IPackageFragmentRoot) packageFragment.getParent(); } else if (isEmpty(createSimilarDescriptorClass.getSubPackage()) && packageFragment.hasSubpackages()) { final List<IPackageFragment> subPackages = new ArrayList<IPackageFragment>(); for (final IJavaElement chldPkgFragment : packageFragmentRoot.getChildren()) { if (chldPkgFragment instanceof IPackageFragment && chldPkgFragment.getElementName().startsWith(packageFragment.getElementName())) { subPackages.add((IPackageFragment) chldPkgFragment); } } if (!subPackages.isEmpty()) { final PackageSelectionDialog selectionDialog = new PackageSelectionDialog(shell, "Sub Package", "Choose the sub pacage from below", subPackages.toArray(new IPackageFragment[0])); if (selectionDialog.open() != CANCEL) { packageFragment = (IPackageFragment) selectionDialog.getFirstResult(); } } }*/ packageFragment = createSimilarDescriptorClass.getUserInputPackage(); packageFragmentRoot = (IPackageFragmentRoot) packageFragment.getParent(); newpkg = packageFragment.getElementName(); newcls = replacePlaceHolders(toName, fastCodeContext.getPlaceHolders()); } else { if (fastCodeContext.isUnitTest()) { String sourcePath = globalSettings.isUseDefaultForPath() ? globalSettings.getSourcePathTest() : createSimilarDescriptorClass.getSourcePath(); sourcePath = getDefaultPathFromProject(fastCodeContext.getFromType().getJavaProject(), "test", sourcePath); packageFragmentRoot = getPackageRootFromProject( fastCodeContext.getFromType().getJavaProject(), sourcePath); } else if (!isEmpty(targetProject)) { final String sourcePath = globalSettings.isUseDefaultForPath() ? getPathFromGlobalSettings( fastCodeContext.getFromType().getJavaProject().getElementName()) : createSimilarDescriptorClass.getSourcePath(); ; packageFragmentRoot = getPackageRootFromProject(createSimilarDescriptorClass.getProject(), sourcePath); } else { packageFragmentRoot = (IPackageFragmentRoot) fastCodeContext.getFromType() .getPackageFragment().getParent(); targetProject = packageFragmentRoot.getParent().getElementName(); } final String fullname = fastCodeContext.getFromType().getFullyQualifiedName(); final String fromPattern = createSimilarDescriptor.getFromPattern(); if (fromPattern != null) { parseTokens(fromPattern, fullname, fastCodeContext.getPlaceHolders()); } if (packageFragmentRoot == null || !packageFragmentRoot.exists()) { throw new Exception("Unable to find source path for, please check configuration."); } toName = replacePlaceHolders(toName, fastCodeContext.getPlaceHolders()); if (createSimilarDescriptor.isDifferentName()) { toName = fullname.replaceAll(createSimilarDescriptor.getReplacePart(), createSimilarDescriptor.getReplaceValue()); } final int lastDotPos = toName.lastIndexOf(DOT_CHAR); newpkg = lastDotPos != -1 ? toName.substring(0, lastDotPos) : fastCodeContext.getFromType().getPackageFragment().getElementName(); newcls = lastDotPos != -1 ? toName.substring(lastDotPos + 1) : toName; packageFragment = packageFragmentRoot.getPackageFragment(newpkg); } } if (packageFragmentRoot == null || !packageFragmentRoot.exists()) { throw new Exception("Unable to find package fragment root for " + toName); } // fastCodeContext.addToPlaceHolders(toName, newcls); final boolean isImplClass = createSimilarDescriptorClass.getParentDescriptor() != null && createSimilarDescriptorClass .getRelationTypeToParent() == RELATION_TYPE.RELATION_TYPE_IMPLEMENTS; if (isImplClass) { newcls += globalSettings.getImplExtension(); if (!isEmpty(createSimilarDescriptorClass.getSubPackage())) { newpkg += "." + createSimilarDescriptorClass.getSubPackage(); packageFragment = packageFragmentRoot.getPackageFragment(newpkg); if (packageFragment == null || !packageFragment.exists()) { packageFragment = packageFragmentRoot.createPackageFragment(newpkg, false, monitor); } } } fastCodeContext.addToPlaceHolders(PACKAGE_NAME_STR, newpkg); fastCodeContext.addToPlaceHolders(CLASS_NAME_STR, newcls); if (createSimilarDescriptorClass.isFinalClass()) { fastCodeContext.addToPlaceHolders(CLASS_MODIFIER_STR, "final"); } fastCodeContext.addToPlaceHolders(CLASS_INSTANCE_STR, createDefaultInstance(newcls)); fastCodeContext.addToPlaceHolders(CLASS_TYPE_STR, createSimilarDescriptorClass.getClassType().value().toLowerCase()); if (!fastCodeContext.getPlaceHolders().containsKey(KEYWORD_FROM_CLASS) && fastCodeContext.getFromType() != null) { fastCodeContext.addToPlaceHolders(KEYWORD_FROM_CLASS, fastCodeContext.getFromType().getElementName()); fastCodeContext.addToPlaceHolders(KEYWORD_FROM_INSTANCE, createDefaultInstance(fastCodeContext.getFromType().getElementName())); } if (!fastCodeContext.getPlaceHolders().containsKey(KEYWORD_TO_CLASS)) { fastCodeContext.addToPlaceHolders(KEYWORD_TO_CLASS, newcls); fastCodeContext.addToPlaceHolders(KEYWORD_TO_PACKAGE, newpkg); fastCodeContext.addToPlaceHolders(KEYWORD_TO_FULL_CLASS, newpkg + DOT + newcls); fastCodeContext.addToPlaceHolders(KEYWORD_TO_INSTANCE, createDefaultInstance(newcls)); } else if (isImplClass) { fastCodeContext.addToPlaceHolders(KEYWORD_TO_IMPL_PACKAGE, newpkg); fastCodeContext.addToPlaceHolders(KEYWORD_TO_IMPL_CLASS, newcls); fastCodeContext.addToPlaceHolders(KEYWORD_TO_FULL_IMPL_CLASS, newpkg + DOT + newcls); } if (replaceName && (packageFragment == null || !packageFragment.exists())) { throw new Exception("Fatal error : package must exist."); } else if (packageFragment == null || !packageFragment.exists()) { final File pkgObj = new File(packageFragmentRoot.getResource().getLocationURI()); /*final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance(); checkinCache.getFilesToCheckIn().add(new FastCodeFileForCheckin(INITIATED, pkgObj.getAbsolutePath()));*/ addOrUpdateFileStatusInCache(pkgObj); packageFragment = packageFragmentRoot.createPackageFragment(newpkg, false, monitor); } ICompilationUnit compilationUnit = packageFragment.getCompilationUnit(newcls + DOT + JAVA_EXTENSION); boolean isNew = false; final CompUnitBuilder compUnitBuilder = new SimilarCompUnitBuilder(); if (compilationUnit == null || !compilationUnit.exists()) { fastCodeConsole.writeToConsole("Creating class " + newcls); // compilationUnit = createCompUnit(packageFragment, // fastCodeContext, createSimilarDescriptorClass, newcls); final String prjURI = packageFragment.getResource().getLocationURI().toString(); final String path = prjURI.substring(prjURI.indexOf(COLON) + 1); final File newFileObj = new File(path + FORWARD_SLASH + newcls + DOT + JAVA_EXTENSION); final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance(); checkinCache.getFilesToCheckIn() .add(new FastCodeFileForCheckin(INITIATED, newFileObj.getAbsolutePath())); compilationUnit = compUnitBuilder.buildCompUnit(packageFragment, fastCodeContext, createSimilarDescriptorClass, newcls, fastCodeConsole); isNew = true; } else { if (!compilationUnit.getResource().isSynchronized(0)) { throw new Exception(compilationUnit.getElementName() + " is not Synchronized, please refresh and try again."); } fastCodeConsole.writeToConsole("Class " + newcls + " exists already."); } fastCodeContext.addCompilationUnitToRegsistry(createSimilarDescriptorClass, compilationUnit); compilationUnit.becomeWorkingCopy(monitor); fastCodeContext.addResource(new FastCodeResource(compilationUnit.getResource(), isNew)); monitor.subTask("Creating details for " + compilationUnit.findPrimaryType().getFullyQualifiedName()); try { IType pType = compilationUnit.findPrimaryType(); int tries = 0; // hack because findPrimaryType is not available immediately // sometimes. while (isNew && (tries++ < MAX_TRY || pType == null || !pType.exists())) { pType = compilationUnit.findPrimaryType(); Thread.sleep(100); } if (pType == null || !pType.exists()) { throw new Exception("Unknown exception occured, please try it again."); } createNewTypeDetails(fastCodeContext, pType, members, createSimilarDescriptor, createSimilarDescriptorClass, monitor); if (globalSettings.isAutoSave()) { compilationUnit.commitWorkingCopy(false, monitor); } } finally { compilationUnit.discardWorkingCopy(); } } // monitor.subTask("Creating configuration for " + // cu.findPrimaryType().getFullyQualifiedName()); boolean createConfig = false; if (createSimilarDescriptor.getNoOfInputs() > 1) { return; } for (final CreateSimilarDescriptorConfig descriptorConfig : createSimilarDescriptor .getDescriptorConfigParts()) { if (descriptorConfig != null) { createConfig = true; } } if (!createConfig) { return; } boolean showFieldsDialog = true; final List<FastCodeField> fastCodeFields = new ArrayList<FastCodeField>(); final Map<String, List<FastCodeField>> fieldsMap = new HashMap<String, List<FastCodeField>>(); fieldsMap.put("fields", fastCodeFields); IType typeForConfiguration = null; for (final CreateSimilarDescriptorClass createSimilarDescriptorClass : descriptorClasses) { final ICompilationUnit compilationUnit = fastCodeContext .getCompilationUnitRegsistry(createSimilarDescriptorClass); if (compilationUnit.findPrimaryType().isClass()) { typeForConfiguration = compilationUnit.findPrimaryType(); break; } } for (final CreateSimilarDescriptorConfig descriptorConfig : createSimilarDescriptor .getDescriptorConfigParts()) { if (descriptorConfig == null) { continue; } final IField[] fields = getFieldsOfType(typeForConfiguration); if (showFieldsDialog && fields != null && fields.length > 0) { final FieldSelectionDialog fieldSelectionDialog = new FieldSelectionDialog(shell, "Fields for configuration", "Choose the fields for configuration " + descriptorConfig.getConfigType(), fields, true); if (fieldSelectionDialog.open() != CANCEL) { final Object[] results = fieldSelectionDialog.getResult(); for (final Object result : results) { final IField field = (IField) result; fastCodeFields.add(new FastCodeField(field, field.getElementName())); } showFieldsDialog = false; // get the fields first time. } } // String fileName = descriptorConfig.getConfigFileName(); // final String fileName = // replacePlaceHolders(descriptorConfig.getConfigFileName(), // fastCodeContext.getPlaceHolders()); createConfigurations(fastCodeContext, descriptorConfig, targetProject, fieldsMap); } }
From source file:org.fastcode.util.SourceUtil.java
License:Open Source License
/** * * @param packageName//from ww w .j av a 2 s. c om * @return * @throws JavaModelException */ public static IPackageFragment getPackageFragmentFromWorkspace(final String packageName) throws JavaModelException { final IProject[] javaProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); for (final IProject project : javaProjects) { final IJavaProject javaProj = JavaCore.create(project); if (javaProj == null || !javaProj.exists() || !javaProj.isOpen()) { continue; } for (final IPackageFragmentRoot packageFragmentRoot : javaProj.getAllPackageFragmentRoots()) { final IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(packageName); if (packageFragment != null && packageFragment.exists()) { return packageFragment; } } } return null; }
From source file:org.fastcode.util.SourceUtil.java
License:Open Source License
/** * @param fastCodeContext//from ww w. j a va 2 s . co m * @param createSimilarDescriptor * @param length * @throws Exception */ public static void populatecreateDescClassWithUserInput(final FastCodeContext fastCodeContext, final CreateSimilarDescriptor createSimilarDescriptor, final String[] inputs, final boolean differentName, final IType typeToWorkOn) throws Exception { final Shell parentShell = MessageUtil.getParentShell(); final Shell shell = parentShell == null ? new Shell() : parentShell; IPackageFragmentRoot packageFragmentRoot = null; IPackageFragment tmpPackageFragment = null; final GlobalSettings globalSettings = getInstance(); String superClass = EMPTY_STR; IType supType = null; int k = 0; boolean isMultiple = false; if (inputs.length > 1) { isMultiple = true; } createSimilarDescriptor.setNoOfInputs(inputs.length); for (final String input : inputs) { if (differentName) { final Pattern p = Pattern.compile(createSimilarDescriptor.getFromPattern()); final Matcher m = p.matcher(typeToWorkOn.getFullyQualifiedName()); if (!m.matches()) { continue; } final String replatePart = m.group(m.groupCount()); createSimilarDescriptor.createReplacePartAndValue(replatePart, input); } } final CreateSimilarDescriptorClass[] createSimilarDescUserChoice = new CreateSimilarDescriptorClass[createSimilarDescriptor .getCreateSimilarDescriptorClasses().length]; for (final CreateSimilarDescriptorClass createSimilarDescriptorClass : createSimilarDescriptor .getCreateSimilarDescriptorClasses()) { IPackageFragment packageFragment = null; if (createSimilarDescriptorClass == null) { continue; } String toName = createSimilarDescriptorClass.getToPattern(); IType[] fldTypeArr = null; String targetProject = null; if (packageFragmentRoot == null) { targetProject = createSimilarDescriptorClass.getProject(); if (fastCodeContext.getFromType() == null) { final IJavaProject project = getJavaProject(targetProject); if (project != null && project.exists() && !isEmpty(createSimilarDescriptorClass.getPackge())) { for (final IPackageFragmentRoot pkgFragmntRoot : project.getPackageFragmentRoots()) { packageFragment = pkgFragmntRoot .getPackageFragment(createSimilarDescriptorClass.getPackge()); if (packageFragment != null && packageFragment.exists()) { packageFragmentRoot = pkgFragmntRoot; break; } } } if (packageFragment == null || !packageFragment.exists()) { final SelectionDialog packageDialog = JavaUI.createPackageDialog(shell, project, 0, null); if (packageDialog.open() == CANCEL) { return; } packageFragment = (IPackageFragment) packageDialog.getResult()[0]; packageFragmentRoot = (IPackageFragmentRoot) packageFragment.getParent(); } else if (isEmpty(createSimilarDescriptorClass.getSubPackage()) && packageFragment.hasSubpackages()) { final List<IPackageFragment> subPackages = new ArrayList<IPackageFragment>(); for (final IJavaElement chldPkgFragment : packageFragmentRoot.getChildren()) { if (chldPkgFragment instanceof IPackageFragment && chldPkgFragment.getElementName() .startsWith(packageFragment.getElementName())) { subPackages.add((IPackageFragment) chldPkgFragment); } } if (!subPackages.isEmpty()) { final PackageSelectionDialog selectionDialog = new PackageSelectionDialog(shell, "Sub Package", "Choose the sub pacage from below", subPackages.toArray(new IPackageFragment[0])); if (selectionDialog.open() != CANCEL) { packageFragment = (IPackageFragment) selectionDialog.getFirstResult(); } } } } else { if (fastCodeContext.isUnitTest()) { String sourcePath = globalSettings.isUseDefaultForPath() ? globalSettings.getSourcePathTest() : createSimilarDescriptorClass.getSourcePath(); sourcePath = getDefaultPathFromProject(fastCodeContext.getFromType().getJavaProject(), "test", sourcePath); packageFragmentRoot = getPackageRootFromProject( fastCodeContext.getFromType().getJavaProject(), sourcePath); } else if (!isEmpty(targetProject)) { final String sourcePath = globalSettings.isUseDefaultForPath() ? getPathFromGlobalSettings( fastCodeContext.getFromType().getJavaProject().getElementName()) : createSimilarDescriptorClass.getSourcePath(); ; packageFragmentRoot = getPackageRootFromProject(createSimilarDescriptorClass.getProject(), sourcePath); } else { packageFragmentRoot = (IPackageFragmentRoot) fastCodeContext.getFromType() .getPackageFragment().getParent(); targetProject = packageFragmentRoot.getParent().getElementName(); } final String fullname = fastCodeContext.getFromType().getFullyQualifiedName(); final String fromPattern = createSimilarDescriptor.getFromPattern(); if (fromPattern != null) { parseTokens(fromPattern, fullname, fastCodeContext.getPlaceHolders()); } if (packageFragmentRoot == null || !packageFragmentRoot.exists()) { throw new Exception("Unable to find source path for, please check configuration."); } toName = replacePlaceHolders(toName, fastCodeContext.getPlaceHolders()); if (createSimilarDescriptor.isDifferentName()) { toName = fullname.replaceAll(createSimilarDescriptor.getReplacePart(), createSimilarDescriptor.getReplaceValue()); } final int lastDotPos = toName.lastIndexOf(DOT_CHAR); final String newpkg = lastDotPos != -1 ? toName.substring(0, lastDotPos) : fastCodeContext.getFromType().getPackageFragment().getElementName(); packageFragment = packageFragmentRoot.getPackageFragment(newpkg); } tmpPackageFragment = packageFragment; } if (tmpPackageFragment != null) { final List<IType> importTypes = new ArrayList<IType>(); final IJavaProject javaProject = tmpPackageFragment.getJavaProject(); final String[] impTypes = replacePlaceHolders(createSimilarDescriptorClass.getImportTypes(), fastCodeContext.getPlaceHolders()); final String[] superTypes = replacePlaceHolders(createSimilarDescriptorClass.getSuperTypes(), fastCodeContext.getPlaceHolders()); final String[] implementTypes = replacePlaceHolders( createSimilarDescriptorClass.getImplementTypes(), fastCodeContext.getPlaceHolders()); gatherImports(javaProject, impTypes, IJavaElementSearchConstants.CONSIDER_ALL_TYPES, "import", importTypes); final List<IType> implTypes = gatherImports(javaProject, implementTypes, IJavaElementSearchConstants.CONSIDER_INTERFACES, "implement", importTypes); // createSimilarDescriptorClass.setUserInputInterface(implTypes); // createSimilarDescriptorClass.setUserInputImports(importTypes); if (superTypes != null && superTypes.length > 0) { final FastCodeType[] fastCodeTypes = new FastCodeType[superTypes.length]; int i = 0; for (final String superType : superTypes) { fastCodeTypes[i++] = parseType(superType, null); } final ClassSelectionDialog classSelectionDialog = new ClassSelectionDialog(shell, "Super Class", "Choose the classes to extend", fastCodeTypes, false); final int ret = classSelectionDialog.open(); if (ret != CANCEL) { // final FastCodeType fastCodeType = (FastCodeType) // classSelectionDialog.getResult()[0]; supType = tmpPackageFragment.getJavaProject() .findType(classSelectionDialog.getResult()[0].toString()); if (supType != null && supType.exists()) { // superClass = flattenType(fastCodeType, false); superClass = superClass.replace(supType.getFullyQualifiedName(), supType.getElementName()); // placeHolders.put("super_class", superClass); if (!supType.isBinary() && supType.getCompilationUnit() != null && supType.getCompilationUnit().exists()) { fastCodeContext.addResource(new FastCodeResource(supType.getResource())); } } } } if (createSimilarDescriptorClass.isCreateFields()) { final SelectionDialog selectionDialog = JavaUI.createTypeDialog(shell, null, SearchEngine.createWorkspaceScope(), IJavaElementSearchConstants.CONSIDER_CLASSES_AND_INTERFACES, true, createSimilarDescriptorClass.getCreateFieldsName()); selectionDialog.setMessage("Please select one or more classes to create field."); selectionDialog.setTitle("Select Class"); if (selectionDialog.open() != CANCEL) { int i = 0; final Object[] tmpArray = selectionDialog.getResult(); fldTypeArr = new IType[tmpArray.length]; for (final Object type : tmpArray) { final IType fldType = (IType) type; if (isAbstract(fldType.getFlags())) { openWarning(shell, "Warning", "Cannot make an instance of an abstract class " + fldType.getElementName()); continue; } fldTypeArr[i] = fldType; i++; } } } createSimilarDescUserChoice[k] = new CreateSimilarDescriptorClass.Builder() .withUserInputPackage(packageFragment).withUserInputImports(importTypes) .withUserInputInterface(implTypes).withSuperClass(superClass) .withUserInputFieldTypes(fldTypeArr) .withCreateFields(createSimilarDescriptorClass.isCreateFields()) .withClassAnnotations(createSimilarDescriptorClass.getClassAnnotations()) .withClassBody(createSimilarDescriptorClass.getClassBody()) .withClassHeader(createSimilarDescriptorClass.getClassHeader()) .withClassInsideBody(createSimilarDescriptorClass.getClassInsideBody()) .withClassType(createSimilarDescriptorClass.getClassType()) .withConvertMethodParam(createSimilarDescriptorClass.isConvertMethodParam()) .withConvertMethodParamFrom(createSimilarDescriptorClass.getConvertMethodParamFrom()) .withConvertMethodParamTo(createSimilarDescriptorClass.getConvertMethodParamTo()) .withCreateDefaultConstructor(createSimilarDescriptorClass.isCreateDefaultConstructor()) .withCreateEqualsHashcode( isMultiple ? false : createSimilarDescriptorClass.isCreateEqualsHashcode()) .withCreateFieldsName(createSimilarDescriptorClass.getCreateFieldsName()) .withCreateInstanceConstructor( isMultiple ? false : createSimilarDescriptorClass.isCreateInstanceConstructor()) .withCreateMethodBody(createSimilarDescriptorClass.isCreateMethodBody()) .withCreateToString(isMultiple ? false : createSimilarDescriptorClass.isCreateToString()) .withCreateUnitTest(createSimilarDescriptorClass.isCreateUnitTest()) .withFieldAnnotations(createSimilarDescriptorClass.getFieldAnnotations()) .withFinalClass(createSimilarDescriptorClass.isFinalClass()) .withImplementTypes(createSimilarDescriptorClass.getImplementTypes()) .withImportTypes(createSimilarDescriptorClass.getImportTypes()) .withInclGetterSetterForInstance( createSimilarDescriptorClass.isInclGetterSetterForInstance()) .withMethodAnnotations(createSimilarDescriptorClass.getMethodAnnotations()) .withPackge(createSimilarDescriptorClass.getPackge()) .withProject(createSimilarDescriptorClass.getProject()) .withRelationTypeToParent(createSimilarDescriptorClass.getRelationTypeToParent()) .withSourcePath(createSimilarDescriptorClass.getSourcePath()) .withSubPackage(createSimilarDescriptorClass.getSubPackage()) .withSuperTypes(createSimilarDescriptorClass.getSuperTypes()) .withUserInputSuperClass(supType).withToPattern(createSimilarDescriptorClass.getToPattern()) .withInclInstance(createSimilarDescriptorClass.isInclInstance()) .withRelatedDescriptors(new ArrayList<CreateSimilarDescriptorClass>()).build(); k++; } } if (tmpPackageFragment != null) { createSimilarDescriptor.setCreateSimilarDescUserChoice(createSimilarDescUserChoice); createSimilarDescriptor.numbersOfCreateSimilarDescUserChoiceClasses(createSimilarDescUserChoice); } }
From source file:org.fusesource.ide.camel.editor.globalconfiguration.beans.BeanConfigUtil.java
License:Open Source License
private void setInitialPackageFramentWithName(final IProject project, NewClassWizardPage wp, String packName) { try {//w w w. j a va2 s . co m IJavaProject javaProject = (IJavaProject) project.getNature(JavaCore.NATURE_ID); if (javaProject != null) { IPackageFragmentRoot fragroot = findPackageFragmentRoot(project, javaProject); wp.setPackageFragmentRoot(fragroot, true); wp.setPackageFragment(fragroot.getPackageFragment(packName), true); } } catch (Exception ex) { CamelEditorUIActivator.pluginLog().logError(ex); } }
From source file:org.fusesource.ide.camel.editor.propertysheet.PropertiesUtils.java
License:Open Source License
/** * Checks if the package field has to be pre-filled in this page and returns the package * fragment to be used for that. The package fragment has the name of the project if the source * folder does not contain any package and if the project name is a valid package name. If the * source folder contains exactly one package then the name of that package is used as the * package fragment's name. <code>null</code> is returned if none of the above is applicable. * // w ww. j av a 2s. c o m * @param javaProject the containing Java project of the selection used to initialize this page * * @return the package fragment to be pre-filled in this page or <code>null</code> if no * suitable package can be suggested for the given project * * @since 3.9 */ public static IPackageFragment getPackage(IJavaProject javaProject, final IPackageFragmentRoot pkgFragmentRoot) { String packName = null; IJavaElement[] packages = null; try { if (pkgFragmentRoot != null && pkgFragmentRoot.exists()) { packages = pkgFragmentRoot.getChildren(); if (packages.length == 1) { // only default package -> use Project name packName = javaProject.getElementName(); // validate package name IStatus status = validatePackageName(packName, javaProject); if (status.getSeverity() == IStatus.OK) { return pkgFragmentRoot.getPackageFragment(packName); } } else { int noOfPackages = 0; IPackageFragment thePackage = null; for (final IJavaElement pack : packages) { IPackageFragment pkg = (IPackageFragment) pack; // ignoring empty parent packages and default package if ((!pkg.hasSubpackages() || pkg.hasChildren()) && !pkg.isDefaultPackage()) { noOfPackages++; thePackage = pkg; if (noOfPackages > 1) { return null; } } } if (noOfPackages == 1) { // use package name packName = thePackage.getElementName(); return pkgFragmentRoot.getPackageFragment(packName); } } } } catch (JavaModelException e) { // fall through } return null; }
From source file:org.fusesource.ide.camel.model.service.core.util.PropertiesUtils.java
License:Open Source License
/** * Checks if the package field has to be pre-filled in this page and returns * the package fragment to be used for that. The package fragment has the * name of the project if the source folder does not contain any package and * if the project name is a valid package name. If the source folder * contains exactly one package then the name of that package is used as the * package fragment's name. <code>null</code> is returned if none of the * above is applicable.//from www . jav a 2s . c o m * * @param javaProject * the containing Java project of the selection used to * initialize this page * * @return the package fragment to be pre-filled in this page or * <code>null</code> if no suitable package can be suggested for the * given project * * @since 3.9 */ public static IPackageFragment getPackage(IJavaProject javaProject, final IPackageFragmentRoot pkgFragmentRoot) { String packName = null; IJavaElement[] packages = null; try { if (pkgFragmentRoot != null && pkgFragmentRoot.exists()) { packages = pkgFragmentRoot.getChildren(); if (packages.length == 1) { // only default package -> use // Project name packName = javaProject.getElementName(); // validate package name IStatus status = validatePackageName(packName, javaProject); if (status.getSeverity() == IStatus.OK) { return pkgFragmentRoot.getPackageFragment(packName); } } else { int noOfPackages = 0; IPackageFragment thePackage = null; for (final IJavaElement pack : packages) { IPackageFragment pkg = (IPackageFragment) pack; // ignoring empty parent packages and default package if ((!pkg.hasSubpackages() || pkg.hasChildren()) && !pkg.isDefaultPackage()) { noOfPackages++; thePackage = pkg; if (noOfPackages > 1) { return null; } } } if (noOfPackages == 1) { // use package name packName = thePackage.getElementName(); return pkgFragmentRoot.getPackageFragment(packName); } } } } catch (JavaModelException e) { // fall through } return null; }
From source file:org.grails.ide.eclipse.editor.gsp.translation.GSPTranslation.java
License:Open Source License
/** * Originally from ReconcileStepForJava. Creates an ICompilationUnit from the contents of the JSP document. * //from www. j av a 2s. c o m * @return an ICompilationUnit from the contents of the JSP document */ private ICompilationUnit createCompilationUnit() throws JavaModelException { IPackageFragment packageFragment = null; IJavaElement je = getJavaProject(); if (je == null || !je.exists()) return null; switch (je.getElementType()) { case IJavaElement.PACKAGE_FRAGMENT: je = je.getParent(); // fall through case IJavaElement.PACKAGE_FRAGMENT_ROOT: IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) je; packageFragment = packageFragmentRoot.getPackageFragment(IPackageFragmentRoot.DEFAULT_PACKAGEROOT_PATH); break; case IJavaElement.JAVA_PROJECT: IJavaProject jProject = (IJavaProject) je; if (!jProject.exists()) { if (DEBUG) { System.out.println( "** Abort create working copy: cannot create working copy: JSP is not in a Java project"); //$NON-NLS-1$ } return null; } packageFragmentRoot = null; IPackageFragmentRoot[] packageFragmentRoots = jProject.getPackageFragmentRoots(); int i = 0; while (i < packageFragmentRoots.length) { if (!packageFragmentRoots[i].isArchive() && !packageFragmentRoots[i].isExternal()) { packageFragmentRoot = packageFragmentRoots[i]; break; } i++; } if (packageFragmentRoot == null) { if (DEBUG) { System.out.println( "** Abort create working copy: cannot create working copy: JSP is not in a Java project with source package fragment root"); //$NON-NLS-1$ } return null; } packageFragment = packageFragmentRoot.getPackageFragment(IPackageFragmentRoot.DEFAULT_PACKAGEROOT_PATH); break; default: return null; } // GRAILS CHANGE // create compilation unit with .groovy instead of .java file extension ICompilationUnit cu = packageFragment.getCompilationUnit(getClassname() + ".groovy") //$NON-NLS-1$ .getWorkingCopy(getWorkingCopyOwner(), getProgressMonitor()); // ICompilationUnit cu = packageFragment.getCompilationUnit(getClassname() + ".java").getWorkingCopy(getWorkingCopyOwner(), getProgressMonitor()); //$NON-NLS-1$ setContents(cu); // GRAILS CHANGE // need extra call to makeConsistent // https://issuetracker.springsource.com/browse/STS-3091#comment-79054 cu.makeConsistent(getProgressMonitor()); if (DEBUG) { System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); //$NON-NLS-1$ System.out.println("(+) JSPTranslation [" + this + "] finished creating CompilationUnit: " + cu); //$NON-NLS-1$ //$NON-NLS-2$ System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); //$NON-NLS-1$ } return cu; }