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

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

Introduction

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

Prototype

String getElementName();

Source Link

Document

Returns the name of this element.

Usage

From source file:org.eclipse.pde.internal.ui.search.ClassSearchParticipant.java

License:Open Source License

public void search(ISearchRequestor requestor, QuerySpecification querySpecification, IProgressMonitor monitor)
        throws CoreException {

    if (querySpecification.getLimitTo() != S_LIMIT_REF && querySpecification.getLimitTo() != S_LIMIT_ALL)
        return;//from  www .  j  av  a 2 s .  c  om

    String search;
    if (querySpecification instanceof ElementQuerySpecification) {
        IJavaElement element = ((ElementQuerySpecification) querySpecification).getElement();
        if (element instanceof IType)
            search = ((IType) element).getFullyQualifiedName('.');
        else
            search = element.getElementName();
        int type = element.getElementType();
        if (type == IJavaElement.TYPE)
            fSearchFor = S_FOR_TYPES;
        else if (type == IJavaElement.PACKAGE_FRAGMENT || type == IJavaElement.PACKAGE_FRAGMENT_ROOT)
            fSearchFor = S_FOR_PACKAGES;
    } else {
        fSearchFor = ((PatternQuerySpecification) querySpecification).getSearchFor();
        search = ((PatternQuerySpecification) querySpecification).getPattern();
    }
    if (fSearchFor != S_FOR_TYPES && fSearchFor != S_FOR_PACKAGES)
        return;
    fSearchPattern = PatternConstructor.createPattern(search, true);
    fSearchRequestor = requestor;

    IPath[] enclosingPaths = querySpecification.getScope().enclosingProjectsAndJars();
    IPluginModelBase[] pluginModels = PluginRegistry.getWorkspaceModels();
    monitor.beginTask(PDEUIMessages.ClassSearchParticipant_taskMessage, pluginModels.length);
    for (int i = 0; i < pluginModels.length; i++) {
        IProject project = pluginModels[i].getUnderlyingResource().getProject();
        if (!monitor.isCanceled() && encloses(enclosingPaths, project.getFullPath()))
            searchProject(project, monitor);
    }
}

From source file:org.eclipse.recommenders.internal.apidocs.rcp.ApidocsView.java

License:Open Source License

private void addCurrentSelectionHeader() {
    final IJavaElement element = activeSelection.getElement();
    final String text;
    switch (element.getElementType()) {
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
    case IJavaElement.PACKAGE_FRAGMENT:
        text = element.getElementName();
        break;/*ww w. ja  v  a  2  s.co  m*/
    case IJavaElement.LOCAL_VARIABLE:
        text = JavaElementLabels.getElementLabel(element,
                JavaElementLabels.F_PRE_TYPE_SIGNATURE | JavaElementLabels.F_POST_QUALIFIED);
        break;
    default:
        text = JavaElementLabels.getElementLabel(element, LABEL_FLAGS);
        break;
    }
    Composite header = new Composite(content, SWT.NONE);
    ApidocsViewUtils.setInfoBackgroundColor(header);
    header.setLayout(new GridLayout(2, false));

    Label img = new Label(header, SWT.NONE);
    img.setImage(labelProvider.getImage(element));
    setInfoForegroundColor(img);
    setInfoBackgroundColor(img);

    Label name = createLabel(header, text, true);
    name.setFont(JFaceResources.getHeaderFont());
}

From source file:org.eclipse.recommenders.internal.calls.rcp.CallsApidocProvider.java

License:Open Source License

private void handle(final IJavaElement variable, final String elementName, final String typeSignature,
        final JavaElementSelectionEvent event, final Composite parent) {
    final Optional<ASTNode> opt = event.getSelectedNode();
    if (!opt.isPresent()) {
        return;// w  w  w . j  a v  a2s .c o m
    }

    final Optional<IType> varType = findVariableType(typeSignature, variable);
    if (!varType.isPresent()) {
        return;
    }

    receiverType = varType.get();
    baseName = pcProvider.toUniqueName(receiverType).orNull();
    if (baseName == null || !acquireModel()) {
        return;
    }
    try {
        final ASTNode node = opt.get();
        final Optional<MethodDeclaration> optAstMethod = findEnclosingMethod(node);
        final Optional<IMethod> optJdtMethod = resolveMethod(optAstMethod.orNull());
        if (!optJdtMethod.isPresent()) {
            return;
        }
        AstDefUseFinder defUse = new AstDefUseFinder(variable.getElementName(), optAstMethod.orNull());
        IMethod findFirstDeclaration = JdtUtils.findFirstDeclaration(optJdtMethod.get());
        IMethodName overrideContext = jdtResolver.toRecMethod(findFirstDeclaration).or(VmMethodName.NULL);
        Set<IMethodName> calls = Sets.newHashSet(defUse.getCalls());
        IMethodName definingMethod = defUse.getDefiningMethod().orNull();
        DefinitionKind kind = defUse.getDefinitionKind();
        // In the case of parameters we replace the defining method with the overridesContext
        if (PARAM == kind) {
            definingMethod = overrideContext;
        }

        if (kind == DefinitionKind.UNKNOWN) {
            // if the ast resolver could not find a definition of the
            // variable, it's a method return value? Ask
            // the context and try.
            if (definingMethod == null) {
                kind = FIELD;
            } else if (definingMethod.isInit()) {
                kind = DefinitionKind.NEW;
            } else {
                kind = RETURN;
            }
        }

        model.setObservedOverrideContext(overrideContext);
        model.setObservedDefiningMethod(definingMethod);
        model.setObservedCalls(calls);
        model.setObservedDefinitionKind(kind);

        Iterable<Recommendation<IMethodName>> methodCalls = sortByRelevance(
                Recommendations.filterRelevance(model.recommendCalls(), 0.01 / 100));
        runSyncInUiThread(new CallRecommendationsRenderer(overrideContext, methodCalls, calls,
                variable.getElementName(), definingMethod, kind, parent));
    } finally {
        releaseModel();
    }
}

From source file:org.eclipse.recommenders.jdt.JavaElementsFinder.java

License:Open Source License

/**
 *
 * @param typeSignature//from  w  w w  . j av  a 2s . com
 *            e.g., QList;
 * @param enclosing
 * @return
 */
public static Optional<ITypeName> resolveType(char[] typeSignature, @Nullable IJavaElement enclosing) {
    typeSignature = CharOperation.replaceOnCopy(typeSignature, '.', '/');
    VmTypeName res = null;
    try {
        int dimensions = Signature.getArrayCount(typeSignature);
        outer: switch (typeSignature[dimensions]) {

        case Signature.C_BOOLEAN:
        case Signature.C_BYTE:
        case Signature.C_CHAR:
        case Signature.C_DOUBLE:
        case Signature.C_FLOAT:
        case Signature.C_INT:
        case Signature.C_LONG:
        case Signature.C_SHORT:
        case Signature.C_VOID:
            // take the whole string including any arrays
            res = VmTypeName.get(new String(typeSignature, 0, typeSignature.length));
            break;
        case Signature.C_RESOLVED:
            // take the whole string including any arrays but remove the trailing ';'
            res = VmTypeName.get(new String(typeSignature, 0, typeSignature.length - 1 /* ';' */));
            break;
        case Signature.C_UNRESOLVED:
            if (enclosing == null) {
                break;
            }
            // take the whole string (e.g. QList; or [QList;)
            String unresolved = new String(typeSignature, dimensions + 1,
                    typeSignature.length - (dimensions + 2 /* 'Q' + ';' */));
            IType ancestor = (IType) enclosing.getAncestor(IJavaElement.TYPE);
            if (ancestor == null) {
                break;
            }
            final String[][] resolvedNames = ancestor.resolveType(unresolved);
            if (isEmpty(resolvedNames)) {
                break;
            }
            String array = repeat('[', dimensions);
            final String pkg = resolvedNames[0][0].replace('.', '/');
            final String name = resolvedNames[0][1].replace('.', '$');
            res = VmTypeName.get(array + 'L' + pkg + '/' + name);
            break;
        case Signature.C_TYPE_VARIABLE:
            String varName = new String(typeSignature, dimensions + 1,
                    typeSignature.length - (dimensions + 2 /* 'Q' + ';' */));
            array = repeat('[', dimensions);

            for (IJavaElement cur = enclosing; cur instanceof IType
                    || cur instanceof IMethod; cur = cur.getParent()) {
                switch (cur.getElementType()) {
                case TYPE: {
                    IType type = (IType) cur;
                    ITypeParameter param = type.getTypeParameter(varName);
                    if (param.exists()) {
                        String[] signatures = getBoundSignatures(param);
                        if (isEmpty(signatures)) {
                            res = VmTypeName.OBJECT;
                            break outer;
                        }
                        // XXX we only consider the first type.
                        char[] append = array.concat(signatures[0]).toCharArray();
                        return resolveType(append, type);
                    }
                }
                case METHOD: {
                    IMethod method = (IMethod) cur;
                    ITypeParameter param = method.getTypeParameter(varName);
                    if (param.exists()) {
                        String[] signatures = getBoundSignatures(param);
                        if (isEmpty(signatures)) {
                            res = dimensions == 0 ? OBJECT
                                    : VmTypeName.get(repeat('[', dimensions) + OBJECT.getIdentifier());
                            break outer;
                        }
                        // XXX we only consider the first type.
                        char[] append = array.concat(signatures[0]).toCharArray();
                        return resolveType(append, method);
                    }
                }
                }
            }

            break;
        default:
            break;
        }
    } catch (Exception e) {
        Logs.log(LogMessages.ERROR_FAILED_TO_CREATE_TYPENAME, e,
                charToString(typeSignature) + (enclosing != null ? " in " + enclosing.getElementName() : ""));
    }
    return Optional.<ITypeName>fromNullable(res);
}

From source file:org.eclipse.recommenders.rcp.utils.JdtUtils.java

License:Open Source License

public static Optional<ITypeName> resolveUnqualifiedJDTType(String qName, final IJavaElement parent) {
    IType type = null;/*w  ww.  j  av  a2 s .c  om*/
    try {
        qName = Signature.getTypeErasure(qName);
        qName = StringUtils.removeEnd(qName, ";"); //$NON-NLS-1$
        final int dimensions = Signature.getArrayCount(qName);
        if (dimensions > 0) {
            qName = Signature.getElementType(qName);
        }

        if (isPrimitiveTypeSignature(qName)) {
            final ITypeName t = VmTypeName.get(StringUtils.repeat('[', dimensions) + qName);
            return of(t);
        }

        type = findClosestTypeOrThis(parent);
        if (type == null) {
            return absent();
        }

        if (qName.charAt(0) == Signature.C_TYPE_VARIABLE) {
            String literal = StringUtils.repeat('[', dimensions) + VmTypeName.OBJECT.getIdentifier();
            ITypeName name = VmTypeName.get(literal);
            return of(name);
        }
        if (qName.charAt(0) == Signature.C_UNRESOLVED) {

            final String[][] resolvedNames = type.resolveType(qName.substring(1));
            if (resolvedNames == null || resolvedNames.length == 0) {
                return of((ITypeName) VmTypeName.OBJECT);
            }
            final String pkg = resolvedNames[0][0];
            final String name = resolvedNames[0][1].replace('.', '$');
            qName = StringUtils.repeat('[', dimensions) + 'L' + pkg + '.' + name;
        }
        qName = qName.replace('.', '/');
        final ITypeName typeName = VmTypeName.get(qName);
        return of(typeName);
    } catch (JavaModelException e) {
        log(WARNING_FAILED_TO_RESOLVE_UNQUALIFIED_JDT_TYPE, e, type.getFullyQualifiedName());
        return absent();
    } catch (Exception e) {
        log(ERROR_FAILED_TO_RESOLVE_UNQUALIFIED_JDT_TYPE, e, parent.getElementName(), qName);
        return absent();
    }
}

From source file:org.eclipse.wst.xml.ui.internal.contentassist.tapestry.TapestryRootComponentsProposalComputer.java

License:Open Source License

public List<Template> getRootComponentsAttributes(IProject project, String contextTypeId, String nodeName) {
    try {/* www .  j  ava2 s  .  c o m*/
        IJavaElement[] elements = getComponentsJavaElements(project);
        components.clear();
        for (IJavaElement ele : elements) {
            if (ele.getElementType() == IJavaElement.COMPILATION_UNIT
                    && ele.getElementName().endsWith(".java")) {
                String name = ele.getElementName().substring(0, ele.getElementName().indexOf('.'));
                if (("t:" + name).toLowerCase().equals(nodeName.toLowerCase())) {
                    goThroughClass((ICompilationUnit) ele, contextTypeId);
                }
            }
        }
        return components;
    } catch (JavaModelException e) {
        e.printStackTrace();
    }

    return null;
}

From source file:org.eclipse.wst.xml.ui.internal.contentassist.tapestry.TapestryRootComponentsProposalComputer.java

License:Open Source License

/**
 * Get components template list in situation:<span t:type="${component name here}"></span>
 * //w ww. java  2  s.c  om
 * @param project
 * @param contextTypeId
 * @return
 */
public List<Template> getRootComponentsNameTemplates(IProject project, String contextTypeId) {
    try {
        IJavaElement[] elements = getComponentsJavaElements(project);
        List<Template> components = new ArrayList<Template>();
        for (IJavaElement ele : elements) {
            if (ele.getElementType() == IJavaElement.COMPILATION_UNIT
                    && ele.getElementName().endsWith(".java")) {
                TapestryCoreComponents component = new TapestryCoreComponents();
                String name = ele.getElementName().substring(0, ele.getElementName().indexOf('.'));
                component.setName(name);
                component.setElementLabel("t:" + name.toLowerCase());
                components.add(new Template("t:" + component.getName(),
                        buildDescription(component, "root package"), contextTypeId, component.getName(), true));
            }
        }
        return components;
    } catch (JavaModelException e) {
        e.printStackTrace();
    }

    return null;
}

From source file:org.eclipse.wst.xml.ui.internal.contentassist.tapestry.TapestryRootComponentsProposalComputer.java

License:Open Source License

public List<Template> getRootComponentsTemplates(IProject project, String contextTypeId, int type) {
    try {/*from   w w  w .  j av  a  2 s  .c  om*/
        IJavaElement[] elements = getComponentsJavaElements(project);
        List<Template> components = new ArrayList<Template>();
        for (IJavaElement ele : elements) {
            if (ele.getElementType() == IJavaElement.COMPILATION_UNIT
                    && ele.getElementName().endsWith(".java")) {
                TapestryCoreComponents component = new TapestryCoreComponents();
                String name = ele.getElementName().substring(0, ele.getElementName().indexOf('.'));
                component.setName(name);
                component.setElementLabel("t:" + name.toLowerCase());
                components.add(
                        new Template("t:" + component.getName(), buildDescription(component, "root package"),
                                contextTypeId, buildInsertCode(component, type), true));
            }
        }
        return components;
    } catch (JavaModelException e) {
        e.printStackTrace();
    }

    return null;
}

From source file:org.eclipse.wst.xml.ui.internal.contentassist.tapestry.TapestryRootComponentsProposalComputer.java

License:Open Source License

/**
 * Get custom component attribute templates
 * //  w  w  w. j a v  a 2  s .  c  o m
 * @param project
 * @param contextTypeId
 * @param nodeName
 * @param tapestryClassLoader
 * @return
 */
public List<Template> getCustomComponentsAttributes(IProject project, String contextTypeId, String nodeName,
        TapestryClassLoader tapestryClassLoader) {
    components.clear();
    String prefix = nodeName.substring(0, nodeName.indexOf(':'));
    try {
        final IFile res = project.getFile(TapestryContants.CUSTOM_COMPONENTS_FILE);
        if (res == null || prefix == null)
            return components;
        List<ComponentPackage> packageList = loadCustomComponentsPackageListWithPrefix(res, prefix);
        IPackageFragmentRoot[] roots = JavaCore.create(project).getAllPackageFragmentRoots();
        for (ComponentPackage cp : packageList) {
            for (IPackageFragmentRoot root : roots) {
                if (cp.isArchive() == root.isArchive() && cp.getFragmentRoot().equals(root.getElementName())) {
                    IPackageFragment packInstance = root.getPackageFragment(cp.getPath());
                    if (!root.isArchive()) {
                        //If current custom component is in source directory
                        if (packInstance != null) {
                            IJavaElement[] elements = packInstance.getChildren();
                            for (IJavaElement ele : elements) {
                                if (ele.getElementType() == IJavaElement.COMPILATION_UNIT
                                        && ele.getElementName().endsWith(".java")) {
                                    String name = ele.getElementName().substring(0,
                                            ele.getElementName().indexOf('.'));
                                    if ((prefix + ":" + name).toLowerCase().equals(nodeName)) {
                                        goThroughClass((ICompilationUnit) ele, contextTypeId);
                                        return components;
                                    }
                                }
                            }
                        }
                    } else if (packInstance instanceof PackageFragment) {
                        //Current custom component is in jar files
                        for (Object packo : ((PackageFragment) packInstance)
                                .getChildrenOfType(IJavaElement.CLASS_FILE)) {
                            ClassFile packi = (ClassFile) packo;
                            String className = packi.getElementName().substring(0,
                                    packi.getElementName().indexOf('.'));
                            if (className.indexOf('$') < 0
                                    && (prefix + ":" + className.toLowerCase()).equals(nodeName)) {
                                TapestryCoreComponents component = null;
                                try {
                                    component = tapestryClassLoader.loadComponentAttributesFromClassFile(root,
                                            prefix, packi);
                                } catch (ClassFormatException e) {
                                    e.printStackTrace();
                                }
                                if (component != null) {
                                    for (String paramName : component.getPamameters()) {
                                        Template template = new Template(paramName,
                                                "add attribute " + paramName, contextTypeId,
                                                buildAttributeInsertCode(paramName), true);
                                        components.add(template);
                                    }
                                    return components;
                                }
                            }
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }

    return null;
}

From source file:org.eclipse.wst.xml.ui.internal.contentassist.tapestry.TapestryRootComponentsProposalComputer.java

License:Open Source License

private List<String> getCustomComponentsNameList(IPackageFragmentRoot[] roots, ComponentPackage cp) {
    List<String> componentNameList = new ArrayList<String>();
    try {/*from  w ww . java2  s .c o  m*/
        for (IPackageFragmentRoot root : roots) {
            if (root instanceof JarPackageFragmentRoot == cp.isArchive()
                    && root.getElementName().equals(cp.getFragmentRoot())) {
                if (!root.isArchive()) {
                    // Load custom components from source directory
                    IPackageFragment packInstance = root.getPackageFragment(cp.getPath());
                    if (packInstance != null) {
                        IJavaElement[] elements = packInstance.getChildren();
                        for (IJavaElement ele : elements) {
                            if (ele.getElementType() == IJavaElement.COMPILATION_UNIT
                                    && ele.getElementName().endsWith(".java")) {
                                String name = ele.getElementName().substring(0,
                                        ele.getElementName().indexOf('.'));
                                componentNameList.add(name);
                            }
                        }
                    }
                } else {
                    // Load custom components from jar files
                    for (IJavaElement pack : root.getChildren()) {
                        if (pack != null && pack instanceof PackageFragment
                                && pack.getElementName().equals(cp.getPath())) {
                            for (Object packo : ((PackageFragment) pack)
                                    .getChildrenOfType(IJavaElement.CLASS_FILE)) {
                                ClassFile packi = (ClassFile) packo;
                                String itemName = packi.getElementName();
                                if (itemName.indexOf('$') < 0 && itemName.endsWith(".class"))
                                    componentNameList.add(itemName.substring(0, itemName.length() - 6));
                            }
                            break;
                        }
                    }
                }
                return componentNameList;
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return componentNameList;
}