public static IMethod[] removeGeneratedMethods(IMethod[] methods) throws Exception { List<IMethod> result = new ArrayList<IMethod>(); for (IMethod m : methods) { if (m.getNameRange().getLength() > 0 && !m.getNameRange().equals(m.getSourceRange())) result.add(m); } return result.size() == methods.length ? methods : result.toArray(new IMethod[result.size()]); }
/** * Workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=130161 * (Java Model returns ISourceRanges [-1, 0] if source not available). * * @param range a source range, can be <code>null</code> * @return <code>true</code> iff range is not null and range.getOffset() is not -1 */ public static boolean isAvailable(ISourceRange range) { return range != null && range.getOffset() != -1; } }
private boolean overlaps(ISourceRange typeRange, ISourceRange methodRange) { if (typeRange == null || methodRange == null) { return false; } //method range is overlapping if it appears before or actually overlaps the type's range return methodRange.getOffset() < typeRange.getOffset() || methodRange.getOffset() >= typeRange.getOffset() && methodRange.getOffset() <= (typeRange.getOffset() + typeRange.getLength()); }
private boolean accept(int offset, IMember member) throws JavaModelException { ISourceRange nameRange = member.getNameRange(); if (nameRange == null) { return false; } int srcOffset = nameRange.getOffset(); return srcOffset > offset; }
protected static ISourceRange getSelectedNodeSourceRange(ISourceReference sr, ASTNode nodeToSelect) throws JavaModelException { int offset= nodeToSelect.getStartPosition(); int end= Math.min(sr.getSourceRange().getLength(), nodeToSelect.getStartPosition() + nodeToSelect.getLength() - 1); return createSourceRange(offset, end); }