protected EObject resolveReference(EObject referringElement, IReferenceDescription referenceDescription) { Object resolvedValue = referringElement.eGet(referenceDescription.getEReference()); if (referenceDescription.getEReference().isMany()) { List<?> list = (List<?>) resolvedValue; resolvedValue = list.get(referenceDescription.getIndexInList()); } return (EObject) resolvedValue; }
public void accept(IReferenceDescription referenceDescription) { if (referenceDescription.getSourceEObjectUri() == null || referenceDescription.getTargetEObjectUri() == null || referenceDescription.getEReference() == null) { handleCorruptReferenceDescription(referenceDescription, status); } else { URI sourceResourceURI = referenceDescription.getSourceEObjectUri().trimFragment(); IReferenceUpdater referenceUpdater = getReferenceUpdater(sourceResourceURI); if (referenceUpdater == null) handleNoReferenceUpdater(sourceResourceURI, status); else updater2refs.put(referenceUpdater, referenceDescription); } }
protected void handleOpen(OpenEvent openEvent) { ISelection selection = openEvent.getSelection(); if (selection instanceof IStructuredSelection) { IStructuredSelection structuredSelection = (IStructuredSelection) selection; for (Iterator<?> i = structuredSelection.iterator(); i.hasNext();) { Object selectedObject = i.next(); if (selectedObject instanceof ReferenceSearchViewTreeNode) { ReferenceSearchViewTreeNode treeNode = (ReferenceSearchViewTreeNode) selectedObject; Object description = treeNode.getDescription(); if (description instanceof IReferenceDescription) { IReferenceDescription referenceDescription = (IReferenceDescription) description; uriEditorOpener.open(referenceDescription.getSourceEObjectUri(), referenceDescription.getEReference(), referenceDescription.getIndexInList(), true); } else if (description instanceof IResourceDescription) { uriEditorOpener.open(((IResourceDescription) description).getURI(), true); } } } } }
/** * @return a hierarchy node reference for the given reference; cannot be <code>null</code> */ protected IHierarchyNodeReference createNodeReference(final IReferenceDescription reference) { final IUnitOfWork<DefaultHierarchyNodeReference, EObject> _function = (EObject sourceObject) -> { final ITextRegionWithLineInformation textRegion = this.getTextRegion(sourceObject, reference.getEReference(), reference.getIndexInList()); final String text = this.getText(sourceObject, textRegion); return new DefaultHierarchyNodeReference(text, textRegion, reference); }; return this.<DefaultHierarchyNodeReference>readOnly(reference.getSourceEObjectUri(), _function); }
protected void createReferenceUpdate(IReferenceDescription referenceDescription, URI referringResourceURI, ElementRenameArguments elementRenameArguments, ResourceSet resourceSet, IRefactoringUpdateAcceptor updateAcceptor) { URI referringElementNewURI = elementRenameArguments .getNewElementURI(referenceDescription.getSourceEObjectUri()); EObject referringElement = resourceSet.getEObject(referringElementNewURI, false); URI targetElementNewURI = elementRenameArguments.getNewElementURI(referenceDescription.getTargetEObjectUri()); EObject newTargetElement = resourceSet.getEObject(targetElementNewURI, false); createReferenceUpdate(referringElement, referringResourceURI, referenceDescription.getEReference(), referenceDescription.getIndexInList(), newTargetElement, updateAcceptor); }
try { EObject source = resource.getEObject(reference.getSourceEObjectUri().fragment()); if (source != null && reference.getEReference() != null) { // prevent exception for outdated data ITextRegion textRegion = locationInFileProvider.getSignificantTextRegion(source, reference.getEReference(), reference.getIndexInList()); addOccurrenceAnnotation(OCCURRENCE_ANNOTATION_TYPE, document, textRegion, result);
public List<? extends Location> getReferences(final XtextResource resource, final int offset, final IReferenceFinder.IResourceAccess resourceAccess, final IResourceDescriptions indexData, final CancelIndicator cancelIndicator) { final EObject element = this._eObjectAtOffsetHelper.resolveElementAt(resource, offset); if ((element == null)) { return CollectionLiterals.<Location>emptyList(); } final ArrayList<Location> locations = CollectionLiterals.<Location>newArrayList(); final TargetURIs targetURIs = this.collectTargetURIs(element); final IAcceptor<IReferenceDescription> _function = (IReferenceDescription reference) -> { final Procedure1<EObject> _function_1 = (EObject obj) -> { final Location location = this._documentExtensions.newLocation(obj, reference.getEReference(), reference.getIndexInList()); if ((location != null)) { locations.add(location); } }; this.doRead(resourceAccess, reference.getSourceEObjectUri(), _function_1); }; ReferenceAcceptor _referenceAcceptor = new ReferenceAcceptor(this.resourceServiceProviderRegistry, _function); CancelIndicatorProgressMonitor _cancelIndicatorProgressMonitor = new CancelIndicatorProgressMonitor(cancelIndicator); this.referenceFinder.findAllReferences(targetURIs, resourceAccess, indexData, _referenceAcceptor, _cancelIndicatorProgressMonitor); return locations; }
public static ReferenceDescriptionImpl create(IReferenceDescription desc) { ReferenceDescriptionImpl description = (ReferenceDescriptionImpl) BuilderStateFactory.eINSTANCE.createReferenceDescription(); description.setIndexInList(desc.getIndexInList()); description.setSourceEObjectUri(desc.getSourceEObjectUri()); description.setTargetEObjectUri(desc.getTargetEObjectUri()); description.setReference(desc.getEReference()); description.setContainerEObjectURI(desc.getContainerEObjectURI()); return description; }
URI targetURI = ref.getTargetEObjectUri(); URI sourceEObjectUri = ref.getSourceEObjectUri(); EReference reference = ref.getEReference(); if (targetURI == null || sourceEObjectUri == null || reference == null) { continue;