Example usage for org.eclipse.jdt.core IJavaElement getHandleIdentifier

List of usage examples for org.eclipse.jdt.core IJavaElement getHandleIdentifier

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement getHandleIdentifier.

Prototype

String getHandleIdentifier();

Source Link

Document

Returns a string representation of this element handle.

Usage

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;
}