List of usage examples for org.eclipse.jdt.core IJavaElement getElementName
String getElementName();
From source file:org.evosuite.eclipse.quickfixes.ResolutionMarkerThrowsException.java
License:Open Source License
@Override public void run(IMarker marker) { // TODO Auto-generated method stub IResource res = marker.getResource(); try {/*from ww w . jav a2 s . c o m*/ String markerMessage = (String) marker.getAttribute(IMarker.MESSAGE); String exception = markerMessage.split(" ")[0]; String[] exceptionPackageArray = exception.split("\\."); String exceptionPackage = ""; for (int i = 0; i < exceptionPackageArray.length - 1; i++) { exceptionPackage += exceptionPackageArray[i] + "."; } exception = exception.substring(exceptionPackage.length()); System.out.println("Package: " + exceptionPackage + ", Exception: " + exception); ICompilationUnit icomp = CompilationUnitManager.getICompilationUnit(res); CompilationUnit compunit = CompilationUnitManager.getCompilationUnit(res); int position = marker.getAttribute(IMarker.CHAR_START, 0) + 1; if (position == 1) { int line = marker.getAttribute(IMarker.LINE_NUMBER, 0); position = compunit.getPosition(line, 0); } AST ast = compunit.getAST(); ASTRewrite rewriter = ASTRewrite.create(ast); IJavaElement element = icomp.getElementAt(position); IJavaElement method = getMethod(element); // TypeDeclaration td = (TypeDeclaration) compunit.types().get(0); TypeDeclaration td = (TypeDeclaration) compunit.types().get(0); MethodDeclaration md = td.getMethods()[0]; int counter = 1; while (!md.getName().getFullyQualifiedName().equals(method.getElementName()) && counter < td.getMethods().length) { md = td.getMethods()[counter]; System.out.println(md.getName().getFullyQualifiedName() + " " + method.getElementName()); counter++; } ListRewrite lr = rewriter.getListRewrite(md, MethodDeclaration.THROWN_EXCEPTIONS_PROPERTY); ImportDeclaration id = ast.newImportDeclaration(); id.setName(ast.newName(exceptionPackage + exception)); ListRewrite lrClass = rewriter.getListRewrite(compunit, CompilationUnit.TYPES_PROPERTY); lrClass.insertAt(id, 0, null); Statement s = (Statement) rewriter.createStringPlaceholder(exception, ASTNode.EMPTY_STATEMENT); lr.insertAt(s, 0, null); System.out.println("MD: " + md.getName() + "\nList: " + lr.getOriginalList()); ITextFileBufferManager bm = FileBuffers.getTextFileBufferManager(); IPath path = compunit.getJavaElement().getPath(); try { bm.connect(path, null, null); ITextFileBuffer textFileBuffer = bm.getTextFileBuffer(path, null); IDocument document = textFileBuffer.getDocument(); TextEdit edits = rewriter.rewriteAST(document, null); edits.apply(document); textFileBuffer.commit(null, false); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MalformedTreeException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (BadLocationException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { bm.disconnect(path, null, null); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } // (4) } System.out .println(lr.getRewrittenList() + "\nPosition: " + position + "\nEdits: " + rewriter.toString()); } catch (JavaModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (CoreException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }
From source file:org.evosuite.eclipse.quickfixes.ResolutionMarkerTryBlock.java
License:Open Source License
@Override public void run(IMarker marker) { // TODO Auto-generated method stub IResource res = marker.getResource(); try {/*from w w w.j av a 2s .c o m*/ String markerMessage = (String) marker.getAttribute(IMarker.MESSAGE); String exception = markerMessage.split(" ")[0]; String[] exceptionPackageArray = exception.split("\\."); String exceptionPackage = ""; for (int i = 0; i < exceptionPackageArray.length - 1; i++) { exceptionPackage += exceptionPackageArray[i] + "."; } exception = exception.substring(exceptionPackage.length()); System.out.println("Package: " + exceptionPackage + ", Exception: " + exception); ICompilationUnit icomp = CompilationUnitManager.getICompilationUnit(res); CompilationUnit compunit = CompilationUnitManager.getCompilationUnit(res); int position = marker.getAttribute(IMarker.CHAR_START, 0) + 1; int line = marker.getAttribute(IMarker.LINE_NUMBER, 0); if (position == 1) { position = compunit.getPosition(line, 0); } AST ast = compunit.getAST(); ASTRewrite rewriter = ASTRewrite.create(ast); IJavaElement element = icomp.getElementAt(position); IJavaElement method = getMethod(element); // TypeDeclaration td = (TypeDeclaration) compunit.types().get(0); TypeDeclaration td = (TypeDeclaration) compunit.types().get(0); MethodDeclaration md = td.getMethods()[0]; int counter = 1; while (!md.getName().getFullyQualifiedName().equals(method.getElementName()) && counter < td.getMethods().length) { md = td.getMethods()[counter]; System.out.println(md.getName().getFullyQualifiedName() + " " + method.getElementName()); counter++; } Block block = md.getBody(); ListRewrite lr = rewriter.getListRewrite(block, Block.STATEMENTS_PROPERTY); ImportDeclaration id = ast.newImportDeclaration(); id.setName(ast.newName(exceptionPackage + exception)); ListRewrite lrClass = rewriter.getListRewrite(compunit, CompilationUnit.TYPES_PROPERTY); lrClass.insertAt(id, 0, null); ASTNode currentNode = null; List<ASTNode> list = new ArrayList<ASTNode>(); for (Object o : lr.getOriginalList()) { if (o instanceof ASTNode) { list.add((ASTNode) o); } } for (int i = 0; i < list.size(); i++) { ASTNode node = list.get(i); int nodeLine = compunit.getLineNumber(node.getStartPosition()); System.out.println(line + " " + nodeLine); if (line == nodeLine) { currentNode = node; break; } List childrenList = node.structuralPropertiesForType(); for (int j = 0; j < childrenList.size(); j++) { StructuralPropertyDescriptor curr = (StructuralPropertyDescriptor) childrenList.get(j); Object child = node.getStructuralProperty(curr); if (child instanceof List) { for (Object ob : (List) child) { if (ob instanceof ASTNode) { list.add((ASTNode) ob); } } } else if (child instanceof ASTNode) { list.add((ASTNode) child); } } } TryStatement ts = ast.newTryStatement(); Statement emptyStatement = (Statement) rewriter.createStringPlaceholder("\n", ASTNode.EMPTY_STATEMENT); Statement emptyStatement2 = (Statement) rewriter.createStringPlaceholder("\n\t", ASTNode.EMPTY_STATEMENT); Block b2 = ast.newBlock(); b2.statements().add(0, ASTNode.copySubtree(b2.getAST(), currentNode)); b2.statements().add(1, emptyStatement); b2.statements().add(0, emptyStatement2); ts.setBody(b2); CatchClause cc = ast.newCatchClause(); SingleVariableDeclaration svd = ast.newSingleVariableDeclaration(); svd.setName(ast.newSimpleName("e")); Type type = ast.newSimpleType(ast.newName(exception)); svd.setType(type); cc.setException(svd); Block b3 = ast.newBlock(); Statement printStatement = (Statement) rewriter.createStringPlaceholder("e.printStackTrace();", ASTNode.EMPTY_STATEMENT); b3.statements().add(0, printStatement); cc.setBody(b3); ListRewrite parentList = rewriter.getListRewrite(currentNode.getParent(), Block.STATEMENTS_PROPERTY); parentList.replace(currentNode, ts, null); parentList.insertAfter(cc, ts, null); ITextFileBufferManager bm = FileBuffers.getTextFileBufferManager(); IPath path = compunit.getJavaElement().getPath(); try { bm.connect(path, null, null); ITextFileBuffer textFileBuffer = bm.getTextFileBuffer(path, null); IDocument document = textFileBuffer.getDocument(); TextEdit edits = rewriter.rewriteAST(document, null); edits.apply(document); textFileBuffer.commit(null, false); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MalformedTreeException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (BadLocationException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { bm.disconnect(path, null, null); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } // (4) } marker.delete(); } catch (JavaModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (CoreException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }
From source file:org.evosuite.eclipse.quickfixes.TestGenerationTrigger.java
License:Open Source License
/** * Add a new test generation job to the job queue * //from w ww .j a v a 2 s . c o m * @param target */ @Override protected void addTestJob(final IResource target) { //TODO: Must do a merging instead of over writing entire test suite IJavaElement element = JavaCore.create(target); if (element == null) { return; } IJavaElement packageElement = element.getParent(); String packageName = packageElement.getElementName(); final String targetClass = (!packageName.isEmpty() ? packageName + "." : "") + target.getName().replace(".java", "").replace(File.separator, "."); System.out.println("Building new job for " + targetClass); job = new TestGenerationJob(shell, target, targetClass); job.setPriority(Job.DECORATE); job.schedule(); }
From source file:org.fastcode.popup.actions.easycreate.NewMemberCreateActionSupport.java
License:Open Source License
@Override public void runAction(ICompilationUnit compUnit, final IJavaElement javaElement) throws Exception { this.preferenceStore = new ScopedPreferenceStore(new InstanceScope(), FAST_CODE_PLUGIN_ID); //final Map<Object, Map<String, Object>> commitMessage = new HashMap<Object, Map<String,Object>>(); String placeHolder = EMPTY_STR; FastCodeField origField = null;//from w w w .ja v a 2s . c o m boolean createFileAlone = false; boolean prjConfigured = false; this.createVariableData = getCreateVariableData(compUnit); if (this.createVariableData == null) { return; } if (this.createVariableData.isVariableModifyAction()) { placeHolder = PLACEHOLDER_MODIFY_FIELD; origField = new FastCodeField( compUnit.findPrimaryType().getField(this.createVariableData.getModifiedVarOrigName())); deleteVariableInClass(compUnit); } else { placeHolder = PLACEHOLDER_FIELDS; } if (this.createVariableData.isCreateClassSimple() || this.createVariableData.isCreateClassDetailed()) { final String prjURI = this.createVariableData.getPackageFragment().getResource().getLocationURI() .toString(); final String path = prjURI.substring(prjURI.indexOf(COLON) + 1); final File newFileObj = new File(path + FILE_SEPARATOR + this.createVariableData.getClassName() + DOT + this.createVariableData.getCompUnitType()); final RepositoryService svnrepo = new SVNRepositoryService(); this.prjShared = !isEmpty(this.createVariableData.getPackageFragment().getResource().getProject() .getPersistentProperties()); prjConfigured = !isEmpty(isPrjConfigured( this.createVariableData.getPackageFragment().getResource().getProject().getName())); if (this.autoCheckinEnabled && this.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")) { 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; } } } else { createFileAlone = true; } //final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance(); addOrUpdateFileStatusInCache(newFileObj); //checkinCache.getFilesToCheckIn().add(new FastCodeFileForCheckin(INITIATED, newFileObj.getAbsolutePath())); compUnit = createClass(this.createVariableData); compUnit.becomeWorkingCopy(new NullProgressMonitor()); final IEditorPart javaEditor = JavaUI.openInEditor(compUnit.findPrimaryType()); JavaUI.revealInEditor(javaEditor, (IJavaElement) compUnit.findPrimaryType()); //final File newFile = new File(compUnit.findPrimaryType().getResource().getLocationURI()); if (!createFileAlone) { final IFile newFile = (IFile) compUnit.findPrimaryType().getResource(); //.getLocationURI()); List<FastCodeEntityHolder> chngsForType = this.commitMessage.get(newFile); if (chngsForType == null) { chngsForType = new ArrayList<FastCodeEntityHolder>(); chngsForType.add(new FastCodeEntityHolder(PLACEHOLDER_CLASS, new FastCodeType(compUnit.findPrimaryType()))); } this.commitMessage.put(newFile, chngsForType); } this.editorPart = javaEditor; } else { this.prjShared = !isEmpty(compUnit.getResource().getProject().getPersistentProperties()); prjConfigured = !isEmpty(isPrjConfigured(compUnit.getResource().getProject().getName())); if (!(this.autoCheckinEnabled && this.prjShared && prjConfigured)) { createFileAlone = true; } /*if (!this.autoCheckinEnabled || !this.prjShared || !prjConfigured) { createFileAlone = true; }*/ final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance(); addOrUpdateFileStatusInCache(new File(compUnit.findPrimaryType().getResource().getLocationURI())); //checkinCache.getFilesToCheckIn().add(new FastCodeFileForCheckin(INITIATED, new File(compUnit.findPrimaryType().getResource().getLocationURI()).getAbsolutePath())); } IType type = compUnit.findPrimaryType(); //final File file = new File(compUnit.findPrimaryType().getResource().getLocationURI()); final IFile file = (IFile) compUnit.findPrimaryType().getResource(); if (javaElement instanceof IMember) { final IMember member = (IMember) javaElement; final IType declaringType = member.getDeclaringType(); type = declaringType != null && declaringType.exists() ? declaringType : compUnit.findPrimaryType(); } IField field = null; IMethod method = null; //final IType leftType = null, rightType = null; final boolean simpleType = isSimpleType(); /*if (!simpleType) { leftType = compUnit.getJavaProject().findType(pair.getLeft()); rightType = compUnit.getJavaProject().findType(pair.getRight()); this.addImport(compUnit, leftType); this.addImport(compUnit, rightType); }*/ /*if (paramTypes != null) { for (final IType paramType : paramTypes) { this.addImport(compUnit, paramType); } }*/ for (final String importType : getEmptyListForNull(this.createVariableData.getImportTypes())) { final IType imprtType = compUnit.getJavaProject().findType(importType); final IImportDeclaration importDeclaration = createImport(compUnit, imprtType, compUnit.getResource().getFileExtension()); //addImport(compUnit, compUnit.getJavaProject().findType(importType)); } String fieldName = null; String fieldSrc = null; //final String defaultFieldName; final Shell parentShell = MessageUtil.getParentShell(); final Shell shell = parentShell == null ? new Shell() : parentShell; /*if (simpleType) { defaultFieldName = createDefaultInstance(paramTypes[0].getElementName()); } else { defaultFieldName = paramTypes != null && paramTypes.length > 0 ? makeName(paramTypes[paramTypes.length - 1], leftType) : MY_NEW + leftType.getElementName(); // fieldNames[0] = fieldName; // fieldSrc = createFieldSourceWithParameter(new Pair<IType, IType>(leftType, rightType), paramTypes, fieldName, Flags.AccPrivate); } final InputDialog inputDialog = new InputDialog(shell, "Create Field", "Enter a name or names (space separated) for the field", defaultFieldName, new IInputValidator() { public String isValid(final String newText) { if (isEmpty(newText)) { return "Input cannot be blank"; } return null; } }); final int retCode = inputDialog.open(); final String[] fieldNames = inputDialog.getValue().split("\\s+"); if (retCode == Window.CANCEL || fieldNames == null || fieldNames.length == 0) { return; }*/ boolean customFormat = false; String setterCustomFormat = EMPTY_STR; String getterCustomFormat = EMPTY_STR; if (this.preferenceStore.getString(P_GETTER_SETTER_FORMAT).equals("custom")) { customFormat = true; setterCustomFormat = this.preferenceStore.getString(P_SETTER_CUSTOM_FORMAT); getterCustomFormat = this.preferenceStore.getString(P_GETTER_CUSTOM_FORMAT); } int elementType = javaElement == null ? TYPE : javaElement.getElementType(); if (simpleType) { elementType = TYPE; } else { if (elementType == METHOD) { final String[] choices = { "Create Snippet", "Create Field" }; final String choice = getChoiceFromMultipleValues(shell, "You are inside a method", "Would You Like To", choices); final int result = findInStringArray(choice, choices); if (result == 1) { elementType = TYPE; } } } final IJavaElement insertionPoint = this.createVariableData.getInsertionPoint(); final String[] fieldNames = this.createVariableData.getFieldNames(); switch (elementType) { case TYPE: /* * if (checkIfFieldExists(type, fieldName)) { return; } field = * type.createField(fieldSrc, null, false, null); break; */ case FIELD: //final GETTER_SETTER createGetterSetter = this.createVariableData.getGetterSetter(); // //final GETTER_SETTER createGetterSetter = this.getGetterSetterChoice(simpleType); if (this.createVariableData.getGetterSetter() == null) { this.createVariableData.setGetterSetter(getGetterSetterChoice(isSimpleType())); } if (this.createVariableData.isBuilderReqd()) { this.createVariableData.setGetterSetter(GETTER_SETTER.GETTER_EXIST); type = compUnit.findPrimaryType(); } for (int i = 0; i < fieldNames.length; i++) { if (doesFieldExistsInType(type, fieldNames[i])) { MessageDialog.openWarning(shell, "Warning", "Field with name " + fieldNames[i] + " already exists."); continue; } final IJavaElement sibling = elementType == FIELD ? findNextElement(type, (IField) javaElement) : null; //if (simpleType) { fieldSrc = this.fieldBuilderImpl.buildFieldSource(null, this.createVariableData, fieldNames[i]); // fieldSrc = "private " + paramTypes[0].getElementName() + // SPACE + fieldNames[i] + ";" + NEWLINE; // } else { /*fieldSrc = createFieldSourceWithParameter(new Pair<IType, IType>(leftType, rightType), paramTypes, fieldNames[i], createGetterSetter, Flags.AccPrivate);*/ //} /*final File fileObj = new File(type.getResource().getLocationURI().toString()); final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance(); checkinCache.getFilesToCheckIn().add(new FastCodeFileForCheckin(INITIATED, fileObj.getAbsolutePath()));*/ if (this.createVariableData.getStringInsertionPoint() != null) { if (this.createVariableData.getStringInsertionPoint().equals("First Member")) { int posOfField = 0; IJavaElement element = null; if (insertionPoint != null) { posOfField = type.getCompilationUnit().getSource() .indexOf(insertionPoint.getElementName()) - 1; element = compUnit.getElementAt(posOfField); } field = type.createField(fieldSrc, element, false, null); } else if (this.createVariableData.getStringInsertionPoint().equals("Last Member")) { field = type.createField(fieldSrc, null, false, null); } else if (insertionPoint != null) { field = type.createField(fieldSrc, insertionPoint, false, null); } } else { field = type.createField(fieldSrc, sibling, false, null); } List<FastCodeMethod> methods = null; if (customFormat) { methods = createGetterSettersWithCustomFormat(type, field, this.createVariableData, setterCustomFormat, getterCustomFormat); } else { methods = createGetterSetters(type, field, this.createVariableData); } //createGetterSetters(type, field, paramTypes, createGetterSetter); fieldName = fieldNames[i]; if (!createFileAlone) { FastCodeField fcField; if (this.createVariableData.isVariableModifyAction()) { fcField = origField; } else { fcField = new FastCodeField(field); } fcField.setGettersetter( GETTER_SETTER.getFormattedValue(this.createVariableData.getGetterSetter().getValue())); // ((List<Object>) fastCodeFieldList).add(fcField); fcField.setBuilderPattern(this.createVariableData.isBuilderReqd()); List<FastCodeEntityHolder> chngesForType = this.commitMessage.get(file); if (chngesForType == null) { chngesForType = new ArrayList<FastCodeEntityHolder>(); final List<Object> fastCodeFieldList = new ArrayList<Object>(); fastCodeFieldList.add(fcField); chngesForType.add(new FastCodeEntityHolder(placeHolder, fastCodeFieldList)); } else { boolean isNew = true; Object fastCodeFieldList = null; for (final FastCodeEntityHolder fcEntityHolder : chngesForType) { if (fcEntityHolder.getEntityName().equals(placeHolder)) { fastCodeFieldList = fcEntityHolder.getFastCodeEntity(); isNew = false; break; } } if (isNew) { fastCodeFieldList = new ArrayList<Object>(); ((List<Object>) fastCodeFieldList).add(fcField); chngesForType.add(new FastCodeEntityHolder(placeHolder, fastCodeFieldList)); } else { ((List<Object>) fastCodeFieldList).add(fcField); } } this.commitMessage.put(file, chngesForType); } /*if (this.createVariableData.getGetterSetter() != null) { commitMessage.get(compUnit.findPrimaryType()).put(method, value) }*/ } break; case METHOD: if (simpleType) { MessageDialog.openError(shell, "Error", "This feature does not work in a method. " + "Please put the cursor on a field or the class name."); return; } fieldName = fieldNames[0]; //fieldSrc = createFieldSourceWithParameter(new Pair<IType, IType>(leftType, rightType), paramTypes, fieldName, GETTER_SETTER.NONE, Flags.AccDefault); this.createVariableData.setAccessModifier(ACCESS_MODIFIER.DEFAULT); this.createVariableData.setGetterSetter(GETTER_SETTER.NONE); fieldSrc = this.fieldBuilderImpl.buildFieldSource(null, this.createVariableData, fieldNames[0]); method = (IMethod) javaElement; final ITextSelection selection = (ITextSelection) this.editorPart.getEditorSite().getSelectionProvider() .getSelection(); if (!isOnEmpltyLine(selection, method.getDeclaringType().getCompilationUnit().getSource())) { if (!MessageDialog.openConfirm(this.editorPart.getSite().getShell(), "Selection Error", "Your cursor may not be on an empty line. Yes to continue, No to bailout.")) { return; } } createNewTypedMemberInMethod(method, fieldSrc, selection.getOffset()); if (this.autoCheckinEnabled && this.prjShared && prjConfigured) { final FastCodeReturn localVar = new FastCodeReturn(fieldName, null); List<FastCodeEntityHolder> chngesForType = this.commitMessage.get(file); if (chngesForType == null) { chngesForType = new ArrayList<FastCodeEntityHolder>(); final List<Object> factCodeReturnList = new ArrayList<Object>(); factCodeReturnList.add(localVar); chngesForType.add(new FastCodeEntityHolder(PLACEHOLDER_LOCALVARS, factCodeReturnList)); } else { boolean isNew = true; Object factCodeReturnList = null; for (final FastCodeEntityHolder fcEntityHolder : chngesForType) { if (fcEntityHolder.getEntityName().equals(PLACEHOLDER_LOCALVARS)) { factCodeReturnList = fcEntityHolder.getFastCodeEntity(); isNew = false; break; } } if (isNew) { factCodeReturnList = new ArrayList<Object>(); ((List<Object>) factCodeReturnList).add(localVar); chngesForType.add(new FastCodeEntityHolder(PLACEHOLDER_LOCALVARS, factCodeReturnList)); } else { ((List<Object>) factCodeReturnList).add(localVar); } } this.commitMessage.put(file, chngesForType); } break; default: break; } if (field != null) { this.selection = new TextSelection(field.getNameRange().getOffset(), fieldName.equals(MY_NEW) ? MY_NEW.length() : fieldName.length()); } else if (method != null) { final int start = ((ITextSelection) this.selection).getOffset() + fieldSrc.indexOf(fieldName); this.selection = new TextSelection(start, fieldName.equals(MY_NEW) ? MY_NEW.length() : fieldName.length()); } if (this.selection != null) { this.editorPart.getEditorSite().getSelectionProvider().setSelection(this.selection); } if (this.createVariableData.isBuilderReqd()) { createBuilderMethods(type); } if (this.createVariableData.isCreateClassSimple() || this.createVariableData.isCreateClassDetailed()) { compUnit.commitWorkingCopy(false, null); compUnit.discardWorkingCopy(); if (!this.commitMessage.isEmpty()) { final RepositoryService checkin = getRepositoryServiceClass(); checkin.commitToRepository(this.commitMessage, false); } } this.createVariableData = null; }
From source file:org.fastcode.popup.actions.OpenRequiredClassesAction.java
License:Open Source License
private boolean matchPattern(final IJavaElement javaElement, final String pattern) { final Pattern pattrn = Pattern.compile(pattern); System.out.println(javaElement.getElementName()); final Matcher matcher = pattrn.matcher(javaElement.getElementName()); return matcher.matches(); //return javaElement.getElementName().matches(pattern); }
From source file:org.fastcode.util.SourceUtil.java
License:Open Source License
/** * @param fastCodeContext/* w w w . ja va2s .c o 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.fastcode.util.SourceUtil.java
License:Open Source License
/** * @param workingJavaProject/*w ww . j a v a 2s. c o m*/ * @param pkgFrgmRoots * @param allPackages * @param defaultPath * @throws JavaModelException */ private static void getPackagesForFragment(final IJavaProject workingJavaProject, final IPackageFragmentRoot[] pkgFrgmRoots, final List<IPackageFragment> allPackages, final String defaultPath) throws JavaModelException { for (final IPackageFragmentRoot packageFragmentRoot : pkgFrgmRoots) { if (!packageFragmentRoot.isArchive()) { for (final IJavaElement pkg : packageFragmentRoot.getChildren()) { if (pkg != null && !isEmpty(pkg.getElementName()) && pkg instanceof IPackageFragment && !(pkg instanceof IFolder)) { final IClassFile classFile[] = ((IPackageFragment) pkg).getClassFiles(); final GlobalSettings globalSettings = getInstance(); //final String defaultPath = getDefaultPathFromProject(workingJavaProject); /*String defaultPath = globalSettings.getSourcePathJava(); final String[][] entryNamesAndValues = getSourcePathsForProject(workingJavaProject.getElementName()); for (int i = 0; i < entryNamesAndValues.length; i++) { if (!entryNamesAndValues[i][0].trim().equals(EMPTY_STR)) { if (defaultPath.contains(entryNamesAndValues[i][0])) { defaultPath = entryNamesAndValues[i][0]; break; } } }*/ if (globalSettings.isUseDefaultForPath()) { if (((IPackageFragment) pkg).getPath().toString().contains(defaultPath)) { allPackages.add((IPackageFragment) pkg); } } else { allPackages.add((IPackageFragment) pkg); } } } } } }
From source file:org.fastcode.util.SourceUtil.java
License:Open Source License
/** * @param compilationUnit//from ww w . ja va 2s . c om * @return * @throws Exception */ public static List<FastCodeReturn> getLocalVarFromCompUnit(final ICompilationUnit compilationUnit, final IEditorPart editorPart) throws Exception { final ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setSource(compilationUnit); parser.setResolveBindings(true); final IJavaElement currentMethod = findSelectedJavaElement(compilationUnit, editorPart); if (currentMethod == null) { return new ArrayList<FastCodeReturn>(); } final CompilationUnit parse = (CompilationUnit) parser.createAST(null); final FastCodeVisitor methodVisitor = new FastCodeVisitor(currentMethod.getElementName(), compilationUnit); parse.accept(methodVisitor); final Shell parentShell = MessageUtil.getParentShell(); final List<FastCodeReturn> variablesList = methodVisitor.getFastCodeReturns(); for (final Object obj : methodVisitor.getMethodDecln().parameters()) { final VariableDeclaration variableDeclaration = (VariableDeclaration) obj; final String type = variableDeclaration.getStructuralProperty(SingleVariableDeclaration.TYPE_PROPERTY) .toString(); final FastCodeReturn fastCodeReturn = new FastCodeReturn(variableDeclaration.getName().toString(), new FastCodeType(getFQNameFromFieldTypeName(type.toString(), compilationUnit))); variablesList.add(fastCodeReturn); } return variablesList; }
From source file:org.fusesource.ide.jvmmonitor.internal.ui.actions.OpenDeclarationAction.java
License:Open Source License
/** * Gets the method name range.//from w w w . j a v a2 s . co m * * @param javaElements * The java elements * @param level * The inner class level * @param sourceRanges * The candidates of source range * @throws JavaModelException */ private void getMethodNameRange(IJavaElement[] javaElements, int level, LinkedList<ISourceRange> sourceRanges) throws JavaModelException { for (IJavaElement javaElement : javaElements) { if (!(javaElement instanceof IMethod)) { continue; } if (innterClassIndices.size() > level) { IJavaElement[] types = ((IMethod) javaElement).getChildren(); if (types != null && types.length == 1 && types[0] instanceof IType) { getMethodNameRange(((IType) types[0]).getChildren(), level + 1, sourceRanges); } continue; } // check the method name if (!(methodName.equals(javaElement.getElementName()))) { continue; } // check the method arguments String[] paramTypes = ((IMethod) javaElement).getParameterTypes(); String[] readableParamTypes = getReadableParamTypes(paramTypes); boolean isMatch = true; for (int i = 0; i < readableParamTypes.length; i++) { if (parameters.length == i) { break; } if (!readableParamTypes[i].equals(parameters[i])) { isMatch = false; // keep the similar method sourceRanges.addLast(((IMethod) javaElement).getNameRange()); break; } } if (isMatch) { sourceRanges.addFirst(((IMethod) javaElement).getNameRange()); break; } } }
From source file:org.fusesource.ide.jvmmonitor.internal.ui.properties.cpu.actions.AddPackageDialog.java
License:Open Source License
/** * Adds the package.//from ww w . j a v a2 s. c o m * * @param packageElements * The package elements into which package is added * @param element * The element which contains package element to be added * @throws JavaModelException */ private void addPackage(Set<String> packageElements, IJavaElement element) throws JavaModelException { // java source folder if (element instanceof IPackageFragmentRoot) { int kind = ((IPackageFragmentRoot) element).getKind(); if (kind == IPackageFragmentRoot.K_SOURCE) { IJavaElement[] children = ((IPackageFragmentRoot) element).getChildren(); for (IJavaElement child : children) { addPackage(packageElements, child); } } } // java package if (element instanceof IPackageFragment) { IJavaElement[] children = ((IPackageFragment) element).getChildren(); for (IJavaElement child : children) { if (IJavaElement.COMPILATION_UNIT == child.getElementType()) { packageElements.add(element.getElementName()); break; } } } }