List of usage examples for org.eclipse.jdt.core IJavaElement getHandleIdentifier
String getHandleIdentifier();
From source file:org.eclipse.mylyn.java.ui.views.ProblemsFieldDoi.java
License:Open Source License
public String getValue(Object obj) { if (obj == null || !(obj instanceof ConcreteMarker)) { return ""; //$NON-NLS-1$ }//ww w .ja v a2 s . co m ConcreteMarker marker = (ConcreteMarker) obj; IJavaElement javaElement = JavaUiUtil.getJavaElement(marker);//SearchUtil.getJavaElement(marker); if (javaElement != null) { return "" + ContextCorePlugin.getTaskscapeManager().getActiveTaskscape() .get(javaElement.getHandleIdentifier()).getDegreeOfInterest().getDegreeOfInterest().getValue(); // return marker.getResourceName(); } else { return "<undefined>"; } }
From source file:org.eclipse.mylyn.java.ui.views.ProblemsFieldDoi.java
License:Open Source License
public int compare(Object obj1, Object obj2) { if (obj1 != null && obj2 != null && obj1 instanceof ProblemMarker && obj2 instanceof ProblemMarker) { ProblemMarker m1 = (ProblemMarker) obj1; ProblemMarker m2 = (ProblemMarker) obj2; IJavaElement j1 = JavaUiUtil.getJavaElement(m1);//SearchUtil.getJavaElement(marker); IJavaElement j2 = JavaUiUtil.getJavaElement(m2);//SearchUtil.getJavaElement(marker); if (j1 != null && j2 != null) { ITaskscapeNode n1 = ContextCorePlugin.getTaskscapeManager().getActiveTaskscape() .get(j1.getHandleIdentifier()); ITaskscapeNode n2 = ContextCorePlugin.getTaskscapeManager().getActiveTaskscape() .get(j2.getHandleIdentifier()); return (int) (n1.getDegreeOfInterest().getDegreeOfInterest().getValue() - n2.getDegreeOfInterest().getDegreeOfInterest().getValue()); }/* w w w . j a va 2 s .c o m*/ } return 0; }
From source file:org.eclipse.mylyn.monitor.usage.SelectionMonitor.java
License:Open Source License
@Override public void selectionChanged(IWorkbenchPart part, ISelection selection) { String structureKind = InteractionEvent.ID_UNKNOWN; // String obfuscatedElementHandle = InteractionEvent.ID_UNKNOWN; String elementHandle = InteractionEvent.ID_UNKNOWN; // salee: interactionKind = selection InteractionEvent.Kind interactionKind = InteractionEvent.Kind.SELECTION; if (selection instanceof StructuredSelection) { StructuredSelection structuredSelection = (StructuredSelection) selection; Object selectedObject = structuredSelection.getFirstElement(); if (selectedObject == null) { return; }//ww w. jav a 2s . c o m if (selectedObject instanceof IJavaElement) { IJavaElement javaElement = (IJavaElement) selectedObject; structureKind = STRUCTURE_KIND_JAVA; elementHandle = javaElement.getHandleIdentifier(); // obfuscatedElementHandle = // obfuscateJavaElementHandle(javaElement); lastSelectedElement = javaElement; } else { structureKind = InteractionEvent.ID_UNKNOWN + ": " + selectedObject.getClass(); if (selectedObject instanceof IAdaptable) { IResource resource = (IResource) ((IAdaptable) selectedObject).getAdapter(IResource.class); if (resource != null) { elementHandle = getHandleIdentifier(resource.getFullPath()); // obfuscatedElementHandle = // obfuscator.obfuscateResourcePath(resource.getProjectRelativePath()); } } } } else { if (selection instanceof TextSelection && part instanceof JavaEditor) { TextSelection textSelection = (TextSelection) selection; IJavaElement javaElement; try { javaElement = SelectionConverter.resolveEnclosingElement((JavaEditor) part, textSelection); if (javaElement != null) { structureKind = STRUCTURE_KIND_JAVA; // obfuscatedElementHandle = // obfuscateJavaElementHandle(javaElement); elementHandle = javaElement.getHandleIdentifier(); if (javaElement.equals(lastSelectedElement)) { interactionKind = InteractionEvent.Kind.EDIT; } lastSelectedElement = javaElement; } } catch (JavaModelException e) { // ignore unresolved elements } } else if (part instanceof EditorPart) { EditorPart editorPart = (EditorPart) part; IEditorInput input = editorPart.getEditorInput(); if (input instanceof IPathEditorInput) { structureKind = "file"; elementHandle = getHandleIdentifier(((IPathEditorInput) input).getPath()); // obfuscatedElementHandle = // obfuscator.obfuscateResourcePath(((IPathEditorInput) // input).getPath()); } } } IInteractionElement node = ContextCore.getContextManager().getElement(elementHandle); String delta = ""; float selectionFactor = ContextCore.getCommonContextScaling().get(InteractionEvent.Kind.SELECTION); if (node != null) { if (node.getInterest().getEncodedValue() <= selectionFactor && node.getInterest().getValue() > selectionFactor) { delta = SELECTION_PREDICTED; } else if (node.getInterest().getEncodedValue() < selectionFactor && node.getInterest().getDecayValue() > selectionFactor) { delta = SELECTION_DECAYED; } else if (node.getInterest().getValue() == selectionFactor && node.getInterest().getDecayValue() < selectionFactor) { delta = SELECTION_NEW; } else { delta = SELECTION_DEFAULT; } } // salee: test ... // System.out.println("Select: " + elementHandle); InteractionEvent event = new InteractionEvent(interactionKind, structureKind, elementHandle, part.getSite().getId(), "null", delta, 0); MonitorUiPlugin.getDefault().notifyInteractionObserved(event); }
From source file:org.eclipse.mylyn.sandbox.tests.ActiveHierarchyTest.java
License:Open Source License
private void makeLandmark(IJavaElement element) { StructuredSelection s1 = new StructuredSelection(element); monitor.selectionChanged(view, s1);/*from ww w. j a v a 2s. co m*/ manager.processInteractionEvent( mockInterestContribution(element.getHandleIdentifier(), scaling.getLandmark())); view.refreshHierarchy(false); }
From source file:org.eclipse.pde.api.tools.internal.builder.AbstractProblemDetector.java
License:Open Source License
/** * Creates a problem for a specific reference in the workspace * //from w w w . j a va 2 s. c o m * @param reference reference * @param associated java project (with reference source location) * @return problem or <code>null</code> if none * @exception CoreException if something goes wrong */ protected IApiProblem createProblem(IReference reference, IJavaProject javaProject) { IProject project = javaProject.getProject(); if (ApiPlugin.getDefault().getSeverityLevel(getSeverityKey(), project) == ApiPlugin.SEVERITY_IGNORE) { return null; } try { IApiMember member = reference.getMember(); String lookupName = getTypeName(member).replace('$', '.'); IType type = javaProject.findType(lookupName, new NullProgressMonitor()); if (type == null) { return null; } ICompilationUnit compilationUnit = type.getCompilationUnit(); if (compilationUnit == null) { return null; } IResource resource = Util.getResource(project, type); if (resource == null) { return null; } int charStart = -1; int charEnd = -1; int lineNumber = reference.getLineNumber(); IJavaElement element = compilationUnit; if (!Util.isManifest(resource.getProjectRelativePath()) && !type.isBinary()) { IDocument document = Util.getDocument(compilationUnit); if (lineNumber > 0) { // reference line number are 1-based, but the API problem // line number are 0-based // they will be converted to 1-based at marker creation time lineNumber--; } // retrieve line number, char start and char end if ((reference.getReferenceKind() & (IReference.REF_OVERRIDE | IReference.REF_EXTENDS | IReference.REF_IMPLEMENTS | IReference.REF_PARAMETER | IReference.REF_RETURNTYPE | IReference.REF_THROWS)) != 0) { IApiType enclosingType = member.getEnclosingType(); if (lineNumber > 0 && enclosingType != null && enclosingType.isAnonymous()) { String superclass = enclosingType.getSuperclassName(); String name = null; if ("java.lang.Object".equals(superclass)) { //$NON-NLS-1$ // check the super_interfaces String[] superinterfaces = enclosingType.getSuperInterfaceNames(); if (superinterfaces != null) { String superinterface = superinterfaces[0]; name = superinterface.substring(superinterface.lastIndexOf('.') + 1); } else { // this is really an anonymous class of Object name = superclass.substring(superclass.lastIndexOf('.') + 1); } } else if (superclass != null) { name = superclass.substring(superclass.lastIndexOf('.') + 1); } if (name != null) { try { IRegion lineInformation = document.getLineInformation(lineNumber); String lineContents = document.get(lineInformation.getOffset(), lineInformation.getLength()); charStart = lineInformation.getOffset() + lineContents.indexOf(name); charEnd = charStart + name.length(); } catch (BadLocationException e) { ApiPlugin.log(e); return null; } } } } if (charStart == -1) { // get the source range for the problem try { Position pos = getSourceRange(type, document, reference); if (pos != null) { charStart = pos.getOffset(); if (charStart != -1) { charEnd = charStart + pos.getLength(); lineNumber = document.getLineOfOffset(charStart); } } } catch (CoreException e) { ApiPlugin.log(e); return null; } catch (BadLocationException e) { ApiPlugin.log(e); return null; } } if (charStart > -1) { element = compilationUnit.getElementAt(charStart); } } return ApiProblemFactory.newApiUsageProblem(resource.getProjectRelativePath().toPortableString(), type.getFullyQualifiedName(), getMessageArgs(reference), new String[] { IApiMarkerConstants.MARKER_ATTR_HANDLE_ID, IApiMarkerConstants.API_MARKER_ATTR_ID }, new Object[] { (element == null ? compilationUnit.getHandleIdentifier() : element.getHandleIdentifier()), new Integer(IApiMarkerConstants.API_USAGE_MARKER_ID) }, lineNumber, // 0-based charStart, charEnd, getElementType(reference), getProblemKind(), getProblemFlags(reference)); } catch (CoreException e) { ApiPlugin.log(e); } return null; }
From source file:org.eclipse.recommenders.codesearch.rcp.index.indexer.JavaElementHandleIndexer.java
License:Open Source License
private void add(final Document document, final IBinding b) { if (b == null) { return;//ww w . j a va2s. c om } final IJavaElement e = b.getJavaElement(); if (e == null) { return; } final String h = e.getHandleIdentifier(); CodeIndexer.addFieldToDocument(document, Fields.JAVA_ELEMENT_HANDLE, h); }
From source file:org.eclipse.recommenders.internal.mylyn.rcp.MylynSessionProcessor.java
License:Open Source License
@Override public void process(IProcessableProposal p) throws Exception { if (!(p instanceof AbstractJavaCompletionProposal)) { return;//from ww w . j ava 2 s. c om } AbstractJavaCompletionProposal proposal = (AbstractJavaCompletionProposal) p; IJavaElement javaElement = proposal.getJavaElement(); if (javaElement == null) { return; } String handle = javaElement.getHandleIdentifier(); IInteractionContextManager mgr = ContextCore.getContextManager(); IInteractionElement interactionElement = mgr.getElement(handle); float interest = interactionElement.getInterest().getValue(); if (interest > ContextCore.getCommonContextScaling().getInteresting()) { String label = format(Messages.PROPOSAL_LABEL_MYLYN_INTEREST, interest); ProposalProcessorManager proposalMgr = p.getProposalProcessorManager(); SimpleProposalProcessor processor = new SimpleProposalProcessor(round(interest), label); proposalMgr.addProcessor(processor); } }
From source file:org.eclipse.recommenders.jdt.templates.SnippetCodeBuilder.java
License:Open Source License
public String build() { final int start = textSelection.getOffset(); final int length = textSelection.getLength(); String text;/* ww w. jav a 2 s . c om*/ try { text = document.get(start, length); } catch (BadLocationException e) { IJavaElement javaElement = ast.getJavaElement(); log(WARN_FAILED_TO_GET_TEXT_SELECTION, e, javaElement == null ? null : javaElement.getHandleIdentifier(), start, length); return ""; } if (text == null) { IJavaElement javaElement = ast.getJavaElement(); log(WARN_FAILED_TO_GET_TEXT_SELECTION, javaElement == null ? null : javaElement.getHandleIdentifier(), start, length); return ""; //$NON-NLS-1$ } final char[] chars = text.toCharArray(); final ASTNode enclosingNode = NodeFinder.perform(startNode, start, length); outer: for (int i = 0; i < chars.length; i++) { int offset = start + i; for (Entry<ASTNode, String> entry : nodesToReplace.entrySet()) { ASTNode nodeToReplace = entry.getKey(); String preferredName = entry.getValue(); if (offset == nodeToReplace.getStartPosition() && nodeToReplace.getStartPosition() + nodeToReplace.getLength() <= offset + chars.length) { if (!(nodeToReplace instanceof Expression)) { appendTemplateVariableReference(preferredName); i += nodeToReplace.getLength() - 1; continue outer; } Expression expressionToReplace = (Expression) nodeToReplace; ITypeBinding typeBinding = expressionToReplace.resolveTypeBinding(); if (typeBinding == null) { appendTemplateVariableReference(preferredName); i += nodeToReplace.getLength() - 1; continue outer; } String templateVariableName = createTemplateVariableName(preferredName); if (!appendTypedTemplateVariableInternal(templateVariableName, "var", typeBinding)) { appendTemplateVariableReference(templateVariableName); i += nodeToReplace.getLength() - 1; continue outer; } i += nodeToReplace.getLength() - 1; continue outer; } } char c = chars[i]; // every non-identifier character can be copied right away. This is necessary since the NodeFinder sometimes // associates a whitespace with a previous AST node (not exactly understood yet). if (!Character.isJavaIdentifierPart(c)) { code.append(c); continue; } NodeFinder nodeFinder = new NodeFinder(enclosingNode, offset, 0); ASTNode node = nodeFinder.getCoveringNode(); if ( isCoveredBySelection(node)) { switch (node.getNodeType()) { case ASTNode.SIMPLE_NAME: SimpleName name = (SimpleName) node; IBinding binding = name.resolveBinding(); if (binding == null) { break; } switch (binding.getKind()) { case IBinding.TYPE: ITypeBinding typeBinding = (ITypeBinding) binding; if (isUnqualified(name) && !isDeclaredInSelection(typeBinding)) { rememberImport(typeBinding); } code.append(name); i += name.getLength() - 1; continue outer; case IBinding.METHOD: IMethodBinding methodBinding = (IMethodBinding) binding; if (isUnqualifiedMethodInvocation(name) && isStatic(methodBinding) && !isDeclaredInSelection(methodBinding)) { rememberStaticImport(methodBinding); } code.append(name); i += name.getLength() - 1; continue outer; case IBinding.VARIABLE: IVariableBinding variableBinding = (IVariableBinding) binding; if (isDeclaration(name)) { if (!appendNewNameTemplateVariable(name.getIdentifier(), variableBinding)) { code.append(name); } } else if (isDeclaredInSelection(variableBinding)) { appendTemplateVariableReference(variableBinding); } else if (!isUnqualified(name)) { code.append(name); } else if (variableBinding.isField()) { if (isStatic(variableBinding)) { code.append(name); rememberStaticImport(variableBinding); } else { if (!appendFieldTemplateVariable(name.getIdentifier(), variableBinding)) { code.append(name); } } } else { appendVarTemplateVariable(name.getIdentifier(), variableBinding); } i += name.getLength() - 1; continue outer; } } } code.append(c); if (c == '$') { code.append(c); } } code.append('\n'); appendImportTemplateVariable(); appendImportStaticTemplateVariable(); appendCursorTemplateVariable(); replaceLeadingWhitespaces(); return code.toString(); }
From source file:org.eclipse.xtext.xbase.ui.debug.JavaBreakPointProvider.java
License:Open Source License
private String getHandleId(final IJavaStratumLineBreakpoint breakpoint) throws CoreException { IClassFile classFile = getClassFile(breakpoint); if (classFile != null) return classFile.getType().getHandleIdentifier(); ILocationInEclipseResource javaLocation = getJavaLocation(breakpoint); if (javaLocation == null) return null; IStorage javaResource = javaLocation.getPlatformResource(); if (!(javaResource instanceof IFile)) return null; ICompilationUnit compilationUnit = (ICompilationUnit) JavaCore.create((IFile) javaResource); IJavaElement element = compilationUnit.getElementAt(javaLocation.getTextRegion().getOffset()); return element == null ? null : element.getHandleIdentifier(); }
From source file:org.grails.ide.eclipse.test.util.AbstractGrailsJUnitIntegrationsTest.java
License:Open Source License
/** * COPIED from JUnitLaunchShortcut... create a JUnit lauch config just like the one the JUnit UI would. *//*from w w w. j a v a2 s.co m*/ public static ILaunchConfigurationWorkingCopy createLaunchConfiguration(IJavaElement element) throws CoreException { final String testName; final String mainTypeQualifiedName; final String containerHandleId; switch (element.getElementType()) { case IJavaElement.JAVA_PROJECT: case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.PACKAGE_FRAGMENT: { String name = element.getElementName(); containerHandleId = element.getHandleIdentifier(); mainTypeQualifiedName = ""; testName = name.substring(name.lastIndexOf(IPath.SEPARATOR) + 1); } break; case IJavaElement.TYPE: { containerHandleId = ""; mainTypeQualifiedName = ((IType) element).getFullyQualifiedName('.'); // don't replace, fix for binary inner types testName = element.getElementName(); } break; case IJavaElement.METHOD: { IMethod method = (IMethod) element; containerHandleId = ""; mainTypeQualifiedName = method.getDeclaringType().getFullyQualifiedName('.'); testName = method.getDeclaringType().getElementName() + '.' + method.getElementName(); } break; default: throw new IllegalArgumentException( "Invalid element type to create a launch configuration: " + element.getClass().getName()); //$NON-NLS-1$ } String testKindId = TestKindRegistry.getContainerTestKindId(element); ILaunchConfigurationType configType = getLaunchManager() .getLaunchConfigurationType(JUnitLaunchConfigurationConstants.ID_JUNIT_APPLICATION); ILaunchConfigurationWorkingCopy wc = configType.newInstance(null, getLaunchManager().generateLaunchConfigurationName(testName)); wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, mainTypeQualifiedName); wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, element.getJavaProject().getElementName()); wc.setAttribute(JUnitLaunchConfigurationConstants.ATTR_KEEPRUNNING, false); wc.setAttribute(JUnitLaunchConfigurationConstants.ATTR_TEST_CONTAINER, containerHandleId); wc.setAttribute(JUnitLaunchConfigurationConstants.ATTR_TEST_RUNNER_KIND, testKindId); JUnitMigrationDelegate.mapResources(wc); //AssertionVMArg.setArgDefault(wc); if (element instanceof IMethod) { wc.setAttribute(JUnitLaunchConfigurationConstants.ATTR_TEST_METHOD_NAME, element.getElementName()); // only set for methods } return wc; }