List of usage examples for org.eclipse.jdt.core IMethod getJavadocRange
ISourceRange getJavadocRange() throws JavaModelException;
From source file:eu.modelwriter.marker.internal.MarkerFactory.java
License:Open Source License
/** * Creates a Marker from TreeSelection// w ww . ja v a 2 s . c o m */ @SuppressWarnings({ "resource" }) public static IMarker createMarker(final IResource res, final ITreeSelection selection) { if (selection == null) { final MessageDialog dialog = new MessageDialog(MarkerActivator.getShell(), "Mark Information", null, "Please perform a valid selection", MessageDialog.WARNING, new String[] { "OK" }, 0); dialog.open(); return null; } else if (MarkerFactory.findMarkerByTreeSelection(selection, res) != null) { final MessageDialog dialog = new MessageDialog(MarkerActivator.getShell(), "Mark Information", null, "In these area, there is already a marker", MessageDialog.WARNING, new String[] { "OK" }, 0); dialog.open(); return null; } // Fetch IResource final IWorkbench workbench = PlatformUI.getWorkbench(); final IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); final IWorkbenchPage page = window.getActivePage(); final IEditorPart editor = page.getActiveEditor(); final IFileEditorInput input = (IFileEditorInput) editor.getEditorInput(); final IFile file = input.getFile(); IMarker marker = null; if (MarkerActivator.getEditor() instanceof EcoreEditor && selection.getFirstElement() instanceof ENamedElement && ((ENamedElement) selection.getFirstElement()).getName() != null && !((ENamedElement) selection.getFirstElement()).getName().isEmpty()) { marker = MarkerFactory.createEcoreMarker(selection, file, res, editor); } else if (editor instanceof EcoreEditor && selection.getFirstElement() != null) { marker = MarkerFactory.createInstanceMarker(selection, file, res, editor); } else if (editor instanceof CompilationUnitEditor) { final Object element = selection.getFirstElement(); String content = null; try { content = new Scanner(file.getContents()).useDelimiter("\\Z").next(); } catch (final CoreException e1) { e1.printStackTrace(); } int startOffset = 0; int length = 0; if (element instanceof IField) { final IField field = (IField) element; try { final ISourceRange nameRange = field.getNameRange(); final int nameStartOffset = nameRange.getOffset(); final int nameEndOffset = nameStartOffset + nameRange.getLength(); final ISourceRange sourceRange = field.getSourceRange(); startOffset = field.getJavadocRange().getOffset() + field.getJavadocRange().getLength() + 1; if (nameEndOffset + 1 == sourceRange.getOffset() + sourceRange.getLength()) { length = sourceRange.getOffset() + sourceRange.getLength() - startOffset; } else { final int indexOfAssignment = content.indexOf("=", nameEndOffset); length = indexOfAssignment - startOffset; } } catch (final JavaModelException e) { e.printStackTrace(); } } else if (element instanceof IInitializer) { final IInitializer initializer = (IInitializer) element; try { final ISourceRange sourceRange = initializer.getSourceRange(); startOffset = initializer.getJavadocRange().getOffset() + initializer.getJavadocRange().getLength() + 1; length = sourceRange.getLength(); } catch (final JavaModelException e) { e.printStackTrace(); } } else if (element instanceof IMethod) { final IMethod method = (IMethod) element; try { final ISourceRange nameRange = method.getNameRange(); final int nameStartOffset = nameRange.getOffset(); final int nameEndOffset = nameStartOffset + nameRange.getLength(); final ISourceRange sourceRange = method.getSourceRange(); startOffset = method.getJavadocRange().getOffset() + method.getJavadocRange().getLength() + 1; if (content.toCharArray()[sourceRange.getOffset() + sourceRange.getLength() - 1] == '}') { final int indexOfParanthesis = content.indexOf("{", nameEndOffset); length = indexOfParanthesis - startOffset; } else if (content.toCharArray()[sourceRange.getOffset() + sourceRange.getLength() - 1] == ';') { length = sourceRange.getLength(); } } catch (final JavaModelException e) { e.printStackTrace(); } } else if (element instanceof IType) { final IType type = (IType) element; try { final ISourceRange nameRange = type.getNameRange(); final int nameStartOffset = nameRange.getOffset(); final int nameEndOffset = nameStartOffset + nameRange.getLength(); final int indexOfParanthesis = content.indexOf("{", nameEndOffset); startOffset = type.getJavadocRange().getOffset() + type.getJavadocRange().getLength() + 1; length = indexOfParanthesis - startOffset; } catch (final JavaModelException e) { e.printStackTrace(); } } final IDocument document = new Document(content); final TextSelection textSelection = new TextSelection(document, startOffset, length); return MarkerFactory.createMarker(file, textSelection); } else { final MessageDialog dialog = new MessageDialog(MarkerActivator.getShell(), "Mark Information", null, "Please perform a valid selection", MessageDialog.WARNING, new String[] { "OK" }, 0); dialog.open(); } return marker; }
From source file:hydrograph.ui.expression.editor.datastructure.MethodDetails.java
License:Apache License
private String createFormattedJavaDoc(IMethod iMethod) throws JavaModelException { String source = iMethod.getSource(); if (iMethod.getJavadocRange() != null) { javaDoc = StringUtils.substring(source, 0, iMethod.getJavadocRange().getLength()); javaDoc = StringUtils.replaceEachRepeatedly(javaDoc, new String[] { "/*", "*/", "*" }, new String[] { Constants.EMPTY_STRING, Constants.EMPTY_STRING, Constants.EMPTY_STRING }); }/*from ww w. jav a2s .c o m*/ return javaDoc; }
From source file:org.eclim.plugin.jdt.command.junit.JUnitFindTestCommand.java
License:Open Source License
@Override public Object execute(CommandLine commandLine) throws Exception { String projectName = commandLine.getValue(Options.PROJECT_OPTION); String file = commandLine.getValue(Options.FILE_OPTION); int offset = getOffset(commandLine); IProject project = ProjectUtils.getProject(projectName); IJavaProject javaProject = JavaUtils.getJavaProject(project); JUnit4TestFinder finder = new JUnit4TestFinder(); ICompilationUnit src = JavaUtils.getCompilationUnit(javaProject, file); ICompilationUnit result = null;//from ww w. ja v a 2 s . com if (finder.isTest(src.getTypes()[0])) { result = JUnitUtils.findClass(javaProject, src.getTypes()[0]); if (result == null) { return Services.getMessage("junit.testing.class.not.found"); } } else { result = JUnitUtils.findTest(javaProject, src.getTypes()[0]); if (result == null) { return Services.getMessage("junit.testing.test.not.found"); } } IType resultType = result.getTypes()[0]; String name = resultType.getElementName(); ISourceReference ref = resultType; ISourceRange docRange = resultType.getJavadocRange(); IJavaElement element = src.getElementAt(offset); if (element != null && element.getElementType() == IJavaElement.METHOD) { IMethod method = null; if (finder.isTest(src.getTypes()[0])) { method = JUnitUtils.findClassMethod(result, (IMethod) element); } else { method = JUnitUtils.findTestMethod(result, (IMethod) element); } if (method != null) { name = method.getElementName(); ref = method; docRange = method.getJavadocRange(); } } String lineDelim = result.findRecommendedLineSeparator(); int docLength = docRange != null ? docRange.getLength() + lineDelim.length() : 0; return Position.fromOffset(result.getResource().getLocation().toOSString(), name, ref.getSourceRange().getOffset() + docLength, 0); }
From source file:org.eclipseguru.gwt.core.internal.codegen.AsyncServiceCodeGenerator.java
License:Open Source License
@Override protected void createTypeMembers(final IType createdType, final ImportsManager imports, final IProgressMonitor monitor) throws CoreException { monitor.beginTask(NLS.bind("Generating methods in ''{0}''...", createdType.getElementName()), 10); try {/*from w w w .j a v a 2 s .c o m*/ // add all existing imports writeImports(imports); // add all public methods final IMethod[] methods = getMethods(); for (final IMethod method : methods) { // skip constructors and binary, static, private or protected methods if (method.isConstructor() || method.isBinary() || Flags.isStatic(method.getFlags()) || Flags.isPrivate(method.getFlags()) || Flags.isProtected(method.getFlags())) { continue; } final StringBuffer methodContent = new StringBuffer(); // javadoc final ISourceRange javadocRange = method.getJavadocRange(); if (null != javadocRange) { final IBuffer buffer = method.getOpenable().getBuffer(); if (buffer != null) { methodContent.append(buffer.getText(javadocRange.getOffset(), javadocRange.getLength())); } } // Java 1.5 features final boolean is50OrHigher = JavaModelUtil.is50OrHigher(createdType.getJavaProject()); // disabled because GWT compiler complains about missing type javax.annotation.Generated // // @Generated annotation // if (is50OrHigher) { // methodContent.append('@'); // methodContent.append(imports.addImport(GENERATED)); // methodContent.append('('); // methodContent.append("value={").append('"').append(GENERATOR).append('"').append('}'); // methodContent.append(','); // methodContent.append("date=").append('"').append(DATE_FORMAT_ISO8601.format(new Date())).append('"'); // methodContent.append(','); // methodContent.append("comments=").append('"').append("from ").append(remoteServiceType.getFullyQualifiedName('.')).append('[').append(Signature.toString(method.getSignature(), method.getElementName(), method.getParameterNames(), true, true)).append(']').append('"'); // methodContent.append(')'); // methodContent.append(' '); // } // generics declaration if (is50OrHigher && (method.getTypeParameters().length > 0)) { appendMethodTypeParameters(method, methodContent); methodContent.append(' '); } // methos declaration methodContent.append(Signature.toString(Signature.SIG_VOID)); methodContent.append(' '); methodContent.append(method.getElementName()); // parameters methodContent.append('('); if (method.getParameterTypes().length > 0) { appendMethodParameters(method, methodContent); methodContent.append(", "); } appendAsyncCallbackParameter(method, imports, methodContent, is50OrHigher); methodContent.append(')'); // method is abstract and without exceptions methodContent.append(';'); // create the method createdType.createMethod(methodContent.toString(), null, false, null); } // update Javadoc updateJavadoc(createdType, ProgressUtil.subProgressMonitor(monitor, 1)); } finally { monitor.done(); } }