package copyto.from.jdt.internal; import org.eclipse.jdt.core.ITypeRoot; import org.eclipse.jdt.core.dom.ASTNode; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jdt.core.dom.NodeFinder; import org.eclipse.jdt.ui.SharedASTProvider; import org.eclipse.jface.text.IRegion; class RangeCopyable extends ASTNodeCopyable { private final ITypeRoot root; private final IRegion range; public RangeCopyable(final ITypeRoot element, final IRegion range) { this.root = element; this.range = range; } @Override protected ASTNode createNode() { final CompilationUnit ast = SharedASTProvider.getAST(root, SharedASTProvider.WAIT_YES, null); if (ast == null) { return null; } final NodeFinder finder = new NodeFinder(ast, range.getOffset(), range .getLength()); return finder.getCoveringNode(); } }