public RewriteEvent replaceEntry(ASTNode entry, ASTNode newEntry) { if (entry == null) { throw new IllegalArgumentException(); } List entries = getEntries(); int nEntries = entries.size(); for (int i = 0; i < nEntries; i++) { NodeRewriteEvent curr = (NodeRewriteEvent) entries.get(i); if (curr.getOriginalValue() == entry || curr.getNewValue() == entry) { curr.setNewValue(newEntry); if (curr.getNewValue() == null && curr.getOriginalValue() == null) { // removed an inserted node entries.remove(i); return null; } return curr; } } return null; }