@Override public List<ReferenceType> getAllClasses(final SourcePosition source) throws NoDataException { PsiFile _file = source.getFile(); Language _language = _file.getLanguage(); boolean _notEquals = (!Objects.equal(_language, this.language)); if (_notEquals) { throw NoDataException.INSTANCE; } final Map<URI, AbstractTraceRegion> traces = this._debugProcessExtensions.getTracesForSource(this.process, source); final ArrayList<ReferenceType> allClasses = CollectionLiterals.<ReferenceType>newArrayList(); final int line = source.getLine(); Set<Map.Entry<URI, AbstractTraceRegion>> _entrySet = traces.entrySet(); for (final Map.Entry<URI, AbstractTraceRegion> uri2trace : _entrySet) { { AbstractTraceRegion _value = uri2trace.getValue(); TreeIterator<AbstractTraceRegion> _treeIterator = _value.treeIterator(); final Function1<AbstractTraceRegion, Boolean> _function = new Function1<AbstractTraceRegion, Boolean>() { @Override public Boolean apply(final AbstractTraceRegion it) { List<ILocationData> _associatedLocations = it.getAssociatedLocations(); ILocationData _head = IterableExtensions.<ILocationData>head(_associatedLocations); int _lineNumber = 0; if (_head != null) { _lineNumber = _head.getLineNumber(); } return Boolean.valueOf((_lineNumber == line)); } }; final AbstractTraceRegion region = IteratorExtensions.<AbstractTraceRegion>findFirst(_treeIterator, _function); boolean _notEquals_1 = (!Objects.equal(region, null)); if (_notEquals_1) { URI _key = uri2trace.getKey(); final PsiFile psiFile = this._debugProcessExtensions.getPsiFile(this.process, _key); PositionManagerImpl _javaPositionManger = this._debugProcessExtensions.getJavaPositionManger(this.process); int _myLineNumber = region.getMyLineNumber(); int _plus = (_myLineNumber + 1); SourcePosition _createFromLine = SourcePosition.createFromLine(psiFile, _plus); final List<ReferenceType> classes = _javaPositionManger.getAllClasses(_createFromLine); allClasses.addAll(classes); } } } return allClasses; }
@Override public SourcePosition getSourcePosition(final Location location) throws NoDataException { int _lineNumber = location.lineNumber(); final int line = (_lineNumber - 1); final PsiFile psiFile = this._debugProcessExtensions.getPsiFile(this.process, location); boolean _equals = Objects.equal(psiFile, null); if (_equals) { throw NoDataException.INSTANCE; } SourcePosition _createFromLine = SourcePosition.createFromLine(psiFile, line); final AbstractTraceRegion trace = this._debugProcessExtensions.getTraceForJava(_createFromLine); boolean _equals_1 = Objects.equal(trace, null); if (_equals_1) { throw NoDataException.INSTANCE; } final URI sourceURI = this._debugProcessExtensions.findOriginalDeclaration(this.process, location); SourcePosition fallBack = null; SourcePosition secondaryFallBack = null; TreeIterator<AbstractTraceRegion> iter = trace.treeIterator(); while (iter.hasNext()) { { final AbstractTraceRegion n = iter.next(); int _myLineNumber = n.getMyLineNumber(); boolean _tripleEquals = (_myLineNumber == line); if (_tripleEquals) { final ILocationData mergedAssociatedLocation = n.getMergedAssociatedLocation(); if (((n.isUseForDebugging() && (n.getMyEndLineNumber() == line)) && (mergedAssociatedLocation.getLineNumber() == mergedAssociatedLocation.getEndLineNumber()))) { final PsiFile psi = this._debugProcessExtensions.getPsiFile(this.process, sourceURI); int _offset = mergedAssociatedLocation.getOffset(); return SourcePosition.createFromOffset(psi, _offset); } else { final PsiFile psi_1 = this._debugProcessExtensions.getPsiFile(this.process, sourceURI); int _offset_1 = mergedAssociatedLocation.getOffset(); SourcePosition _createFromOffset = SourcePosition.createFromOffset(psi_1, _offset_1); fallBack = _createFromOffset; } } int _myEndLineNumber = n.getMyEndLineNumber(); boolean _tripleEquals_1 = (_myEndLineNumber == line); if (_tripleEquals_1) { final ILocationData mergedAssociatedLocation_1 = n.getMergedAssociatedLocation(); final PsiFile psi_2 = this._debugProcessExtensions.getPsiFile(this.process, sourceURI); int _endLineNumber = mergedAssociatedLocation_1.getEndLineNumber(); SourcePosition _createFromLine_1 = SourcePosition.createFromLine(psi_2, _endLineNumber); secondaryFallBack = _createFromLine_1; } } } SourcePosition _elvis = null; if (fallBack != null) { _elvis = fallBack; } else { _elvis = secondaryFallBack; } return _elvis; }