List of usage examples for org.eclipse.jdt.core IJavaElement getElementName
String getElementName();
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; }