/** * {@inheritDoc} * * @see org.eclipse.acceleo.common.utils.CompactHashSet#setIndex(int, java.lang.Object) */ @Override protected void setIndex(int index, E element) { super.setIndex(index, element); Entry newEntry = new Entry(index); header.last.next = newEntry; header.last = newEntry; newEntry.next = header; }
/** * {@inheritDoc} * * @see org.eclipse.acceleo.common.utils.CompactHashSet#deleteIndex(int) */ @Override protected void deleteIndex(int index) { super.deleteIndex(index); Entry previous = header; Entry entry = header.next; while (entry.index != index && entry != header) { previous = entry; entry = entry.next; } /* * TODO entry == header would mean we haven't found the index to delete in the linked list. How could * we be in such a state? Try and reproduce [341596]. */ if (entry != header) { previous.next = entry.next; if (entry == header.last) { header.last = previous; } } }
/** * {@inheritDoc} * * @see org.eclipse.acceleo.common.utils.CompactHashSet#clear() */ @Override public void clear() { super.clear(); header.next = header; header.last = header; }
/** * {@inheritDoc} * * @see org.eclipse.acceleo.common.utils.CompactHashSet#init() */ @Override protected void init() { header = new LinkedListHeader(); header.next = header; header.last = header; }