List of usage examples for org.eclipse.jdt.core IMember getResource
IResource getResource();
From source file:org.eclim.plugin.jdt.command.hierarchy.CallHierarchyCommand.java
License:Open Source License
private HashMap<String, Object> formatRoot(MethodWrapper root, Comparator<MethodWrapper> comparator, boolean callees) throws Exception { IMember member = root.getMember();/*from w w w . j a v a 2s . co m*/ String memberName = JavaElementLabels.getTextLabel(member, AppearanceAwareLabelProvider.DEFAULT_TEXTFLAGS | JavaElementLabels.ALL_POST_QUALIFIED | JavaElementLabels.P_COMPRESSED); CallLocation location = root.getMethodCall().getFirstCallLocation(); HashMap<String, Object> result = new HashMap<String, Object>(); result.put("name", memberName); if (location != null) { // If caller, locationMember == member. If callee, locationMember // is the function where the callee is called. IMember locationMember = location.getMember(); IResource resource = locationMember.getResource(); if (resource != null) { String file = resource.getLocation().toOSString().replace('\\', '/'); int offset = location.getStart(); result.put("position", Position.fromOffset(file, null, offset, location.getEnd() - offset)); } } result.put(callees ? "callees" : "callers", formatRoots(root.getCalls(new NullProgressMonitor()), comparator, callees)); return result; }
From source file:org.eclipse.objectteams.otdt.internal.ui.callinmarkers.CallinMarkerCreator2.java
License:Open Source License
/** API for {@link RoleBindingChangedListener}. */ public void updateCallinMarker(final IMember member, IStatusLineManager statusLine) { if (!isEnabled()) return;//from w w w .j a va2 s . c om if (!isCached(member.getResource()) && !isCreatingMarkersFor(member.getResource())) return; final IMarkableJavaElement target = MarkableFactory.createMarkable(member.getResource()); CallinMarkerJob job = new CallinMarkerJob(target) { protected void updateMarkers(IProgressMonitor monitor) throws Exception { updateCallinMarker(target, member, monitor); } }; // updating just one single method will not set current _currentJob schedule(job, statusLine); }
From source file:org.eclipse.objectteams.otdt.internal.ui.callinmarkers.CallinMarkerCreator2.java
License:Open Source License
private void updateCallinMarker(IMarkableJavaElement target, IMember member, IProgressMonitor monitor) throws CoreException { // TODO(SH): in this scenario a search for all callins mentioning method should be faster. try {/*from w w w . jav a 2 s . c o m*/ monitor.beginTask( NLS.bind(OTDTUIPlugin.getResourceString("CallinMarkerCreator2.updating_for_method_message"), //$NON-NLS-1$ new Object[] { member.getElementName() }), 45); IResource resource = member.getResource(); if (resource != null) // only called when base class changed -> source only. { CallinMarkerRemover.removeCallinMarker(member, resource); monitor.worked(5); // find direct roles: ArrayList<IType> allTypes = new ArrayList<IType>(1); allTypes.add((IType) member.getAncestor(IJavaElement.TYPE)); // TODO(SH): could be IOTType? Map<IMember, Set<IType>> playedByMap = OTSearchHelper.searchPlayedByBindings(allTypes, new IJavaProject[] { member.getJavaProject() }, new MySubProgressMonitor(monitor, 20)); if (playedByMap == null || playedByMap.isEmpty()) return; // no base types or cancelled // collect all roles w/ subroles for use as search scope: IMember[] allRoleTypes = collectRolesAndSubroles(playedByMap, new MySubProgressMonitor(monitor, 10)); if (monitor.isCanceled()) return; ArrayList<IMember> memberSet = new ArrayList<IMember>(1); memberSet.add(member); updateMethodMarkers(target, allRoleTypes, memberSet, new SubProgressMonitor(monitor, 10)); } } finally { monitor.done(); } }
From source file:org.eclipse.objectteams.otdt.internal.ui.callinmarkers.RoleBindingChangedListener.java
License:Open Source License
private void handleDeltaKind(IJavaElementDelta delta, IMember baseMember, Set<IMember> addedBaseMembers) { if (delta.getKind() == IJavaElementDelta.ADDED) { // don't yet handle, first count how many additions we have addedBaseMembers.add(baseMember); } else if (delta.getKind() == IJavaElementDelta.REMOVED) { baseMemberRemoved(baseMember, baseMember.getResource()); }/* ww w. java 2 s.c o m*/ }
From source file:org.eclipse.xtext.builder.smap.XbaseBreakpointUtil.java
License:Open Source License
protected IResource getBreakpointResource(IMember member) { ICompilationUnit cu = member.getCompilationUnit(); if (cu != null && cu.isWorkingCopy()) { member = (IMember) member.getPrimaryElement(); }//from www .j a va2 s. c om IResource res = member.getResource(); if (res == null) { res = ResourcesPlugin.getWorkspace().getRoot(); } else if (!res.getProject().exists()) { res = ResourcesPlugin.getWorkspace().getRoot(); } return res; }
From source file:org.eclipse.xtext.common.types.ui.navigation.LinkToOriginDetector.java
License:Open Source License
@Override public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) { try {/*from www . j a va 2 s.c om*/ // very pessimistic guards - most things should never happen ITextEditor textEditor = (ITextEditor) getAdapter(ITextEditor.class); if (textEditor == null) return null; IEditorInput editorInput = textEditor.getEditorInput(); if (editorInput == null) return null; IJavaElement adaptedJavaElement = (IJavaElement) Platform.getAdapterManager().getAdapter(editorInput, IJavaElement.class); if (adaptedJavaElement == null) return null; ICompilationUnit compilationUnit = (ICompilationUnit) adaptedJavaElement .getAncestor(IJavaElement.COMPILATION_UNIT); if (compilationUnit == null) return null; try { IRegion selectedWord = org.eclipse.jdt.internal.ui.text.JavaWordFinder .findWord(textViewer.getDocument(), region.getOffset()); // the actual implementation - find the referenced Java type under the cursor and link // to its origin if it's contained in a 'derived' resource IJavaElement[] javaElements = compilationUnit.codeSelect(selectedWord.getOffset(), selectedWord.getLength()); for (IJavaElement javaElement : javaElements) { /** * if IDE 3.8 is available the default 'Open Declaration' navigation will already open the original editor * So we don't need the additional hyperlinks. */ boolean provideHyperlinkOnReferences = !is_ORG_ECLIPSE_UI_IDE_3_8_Enabled() || compilationUnit.equals(((IMember) javaElement).getCompilationUnit()); if (javaElement instanceof IMember && provideHyperlinkOnReferences) { IMember selectedMember = (IMember) javaElement; IResource resource = selectedMember.getResource(); if (resource instanceof IFile) { ITrace traceToSource = traceInformation.getTraceToSource((IStorage) resource); if (traceToSource == null) { return null; } ILocationInResource sourceInformation = IterableExtensions .head(traceToSource.getAllAssociatedLocations()); if (sourceInformation != null) { try { URI resourceURI = sourceInformation.getAbsoluteResourceURI().getURI(); if (resourceURI != null) { IResourceServiceProvider serviceProvider = serviceProviderRegistry .getResourceServiceProvider(resourceURI); if (serviceProvider == null) return null; LinkToOriginProvider provider = serviceProvider .get(LinkToOriginProvider.class); LinkToOrigin hyperlink = provider.createLinkToOrigin(sourceInformation, selectedWord, selectedMember, compilationUnit, Collections.<LinkToOrigin>emptyList()); if (hyperlink != null) { return new IHyperlink[] { hyperlink }; } } } catch (IllegalArgumentException e) { /* invalid URI - ignore */ } } return null; } } } return null; } catch (JavaModelException e) { return null; } } catch (Throwable t) { return null; } }
From source file:org.jboss.tools.batch.internal.core.impl.definition.AbstractMemberDefinition.java
License:Open Source License
protected void addDependency(IMember reference, IRootDefinitionContext context) { if (reference == null || reference.isBinary()) return;// w ww .ja va 2 s . c om IResource resource = getResource(); if (!(resource instanceof IFile)) return; IFile target = (IFile) resource; IFile source = (IFile) reference.getResource(); if (target.exists() && source != null && source.exists()) { context.addDependency(source.getFullPath(), target.getFullPath()); } }
From source file:org.jboss.tools.cdi.core.CDIUtil.java
License:Open Source License
/** * Converts ISourceRange to ITextSourceReference * /*from w w w . j a v a 2s. c om*/ * @param range * @return */ public static ITextSourceReference convertToSourceReference(final ISourceRange range, final IResource resource, final IMember javaElement) { if (javaElement == null || javaElement.getResource() == null || !javaElement.getResource().equals(resource)) { return new ITextSourceReference() { public int getStartPosition() { return range.getOffset(); } public int getLength() { return range.getLength(); } public IResource getResource() { return resource; } }; } else { return new IJavaSourceReference() { public IMember getSourceMember() { return javaElement; } public IJavaElement getSourceElement() { return javaElement; } public int getStartPosition() { return range.getOffset(); } public IResource getResource() { return resource; } public int getLength() { return range.getLength(); } }; } }
From source file:org.jboss.tools.cdi.core.CDIUtil.java
License:Open Source License
/** * Converts ITypeDeclaration reference to IJavaSourceReference if * 1) javaElement is not null,/*from w w w . j a v a 2 s . co m*/ * 2) reference and javaElement are declared in the same resource * * @param reference * @param javaElement * @return */ public static ITextSourceReference convertToJavaSourceReference(final ITextSourceReference reference, final IMember javaElement) { if (reference instanceof IJavaSourceReference || javaElement == null || (reference.getResource() != null && !(reference.getResource().equals(javaElement.getResource())))) { return reference; } return new IJavaSourceReference() { public IMember getSourceMember() { return javaElement; } public IJavaElement getSourceElement() { return javaElement; } public int getStartPosition() { return reference.getStartPosition(); } public IResource getResource() { return reference.getResource(); } public int getLength() { return reference.getLength(); } }; }
From source file:org.jboss.tools.common.java.ParametedTypeFactory.java
License:Open Source License
public ParametedType getParametedTypeForParameter(IMember context, String typeParameterSignature, ParametedType result) throws JavaModelException { IType contextType = context instanceof IType ? (IType) context : context.getDeclaringType(); String key = context == null ? typeParameterSignature : contextType.getFullyQualifiedName() + "+" + typeParameterSignature; String t = Signature.getTypeVariable(typeParameterSignature); String[] bounds = Signature.getTypeParameterBounds(typeParameterSignature); t = Signature.C_RESOLVED + t + Signature.C_SEMICOLON; if (result == null || t.equals(result.getSignature()) || result.getSignature().endsWith("[" + t)) { if (bounds.length > 0 && bounds[0].length() > 0) { ParametedType st = getParametedType(contextType, bounds[0]); if (st != null) { result = new TypeDeclaration(st, context.getResource(), 0, 0); result.setUpper(true);/*from www. ja va 2 s .c om*/ } } else if (result != null) { result.setSignature(t); } if (result == null) { result = new ParametedType(); result.setFactory(this); result.setSignature(t); } result.setVariable(true); cache.put(key, result); return result; } return null; }