(Object value)
| 96 | } |
| 97 | |
| 98 | private Cell<T> removeCell(Object value) { |
| 99 | PersistentSet.Path<Cell<T>> p = set.find(new Cell(value, null)); |
| 100 | if (p.fresh()) { |
| 101 | return null; |
| 102 | } else { |
| 103 | Cell<T> old = p.value(); |
| 104 | |
| 105 | if (p.value().next != null) { |
| 106 | set = p.replaceWith(p.value().next); |
| 107 | } else { |
| 108 | set = p.remove(); |
| 109 | } |
| 110 | |
| 111 | return old; |
| 112 | } |
| 113 | } |
| 114 | |
| 115 | public boolean remove(Object value) { |
| 116 | return removeCell(value) != null; |
no test coverage detected