org.multiverse.collections

## Class AbstractTxnCollection<E>

- java.lang.Object
- - org.multiverse.collections.AbstractTxnCollection<E>

All Implemented Interfaces:
  java.lang.Iterable<E>, java.util.Collection<E>, TxnCollection<E>, TxnIterable<E>

Direct Known Subclasses:
  NaiveTxnHashSet, NaiveTxnLinkedList, NaiveTxnStack

    public abstract class AbstractTxnCollection<E>
    extends java.lang.Object
    implements TxnCollection<E>

### Field Summary

Fields
`protected TxnRefFactory` `defaultRefFactory`
`protected Stm` `stm`

### Constructor Summary

Constructors
`protected` `AbstractTxnCollection(Stm stm)`

### Method Summary

Methods
`boolean` `add(E item)`
`boolean` `addAll(java.util.Collection<? extends E> c)`
`boolean` `addAll(TxnCollection<? extends E> c)` Adds all of the elements in the specified collection to this collection (optional operation).
`boolean` `addAll(Txn tx, java.util.Collection<? extends E> c)` Adds all of the elements in the specified collection to this collection (optional operation).
`boolean` `addAll(Txn tx, TxnCollection<? extends E> c)` Adds all of the elements in the specified collection to this collection (optional operation).
`void` `clear()`
`boolean` `contains(java.lang.Object item)`
`boolean` `containsAll(java.util.Collection<?> c)`
`boolean` `containsAll(Txn tx, java.util.Collection<?> c)` Returns `true` if this collection contains all of the elements in the specified collection.
`Stm` `getStm()` Returns the STM that manages this TxnCollection.
`boolean` `isEmpty()`
`boolean` `isEmpty(Txn tx)` Returns `true` if this collection contains no elements.
`TxnIterator<E>` `iterator()`
`boolean` `remove(java.lang.Object o)`
`boolean` `removeAll(java.util.Collection<?> c)`
`boolean` `retainAll(java.util.Collection<?> c)`
`int` `size()`
`java.lang.Object[]` `toArray()`
`<T> T[]` `toArray(T[] a)`
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.multiverse.api.collections.TxnCollection

`add, clear, contains, remove, size, toString`

### Methods inherited from interface org.multiverse.api.collections.TxnIterable

`iterator`

### Methods inherited from interface java.util.Collection

`equals, hashCode`

### Field Detail

#### stm

    protected final Stm stm

#### defaultRefFactory

    protected final TxnRefFactory defaultRefFactory

### Constructor Detail

#### AbstractTxnCollection

    protected AbstractTxnCollection(Stm stm)

### Method Detail

#### getStm

    public Stm getStm()

Description copied from interface: `TxnCollection`
Returns the STM that manages this TxnCollection. Returned value will never be null.

Specified by:
  `getStm` in interface `TxnCollection<E>`
Returns:
  the STM that manages this TxnCollection.

#### isEmpty

    public boolean isEmpty()

Specified by:
  `isEmpty` in interface `java.util.Collection<E>`

#### isEmpty

    public boolean isEmpty(Txn tx)

Description copied from interface: `TxnCollection`
Returns `true` if this collection contains no elements.

Specified by:
  `isEmpty` in interface `TxnCollection<E>`
Parameters:
  `tx` - the transaction used for this operation.
Returns:
  `true` if this collection contains no elements

#### size

    public int size()

Specified by:
  `size` in interface `java.util.Collection<E>`

#### clear

    public void clear()

Specified by:
  `clear` in interface `java.util.Collection<E>`

#### contains

    public boolean contains(java.lang.Object item)

Specified by:
  `contains` in interface `java.util.Collection<E>`

#### containsAll

    public boolean containsAll(java.util.Collection<?> c)

Specified by:
  `containsAll` in interface `java.util.Collection<E>`

#### containsAll

    public boolean containsAll(Txn tx,
                      java.util.Collection<?> c)

Description copied from interface: `TxnCollection`
Returns `true` if this collection contains all of the elements in the specified collection.

Specified by:
  `containsAll` in interface `TxnCollection<E>`
Parameters:
  `tx` - the transaction used for this operation.
  `c` - collection to be checked for containment in this collection
Returns:
  `true` if this collection contains all of the elements in the specified collection
See Also:
  `Collection.contains(Object)`

#### remove

    public boolean remove(java.lang.Object o)

Specified by:
  `remove` in interface `java.util.Collection<E>`

#### add

    public boolean add(E item)

Specified by:
  `add` in interface `java.util.Collection<E>`

#### addAll

    public boolean addAll(java.util.Collection<? extends E> c)

Specified by:
  `addAll` in interface `java.util.Collection<E>`

#### addAll

    public boolean addAll(Txn tx,
                 java.util.Collection<? extends E> c)

Description copied from interface: `TxnCollection`
Adds all of the elements in the specified collection to this collection (optional operation). The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (This implies that the behavior of this call is undefined if the specified collection is this collection, and this collection is nonempty.)

Specified by:
  `addAll` in interface `TxnCollection<E>`
Parameters:
  `tx` - the transaction used for this operation.
  `c` - collection containing elements to be added to this collection
Returns:
  `true` if this collection changed as a result of the call
See Also:
  `Collection.add(Object)`

#### addAll

    public boolean addAll(TxnCollection<? extends E> c)

Description copied from interface: `TxnCollection`
Adds all of the elements in the specified collection to this collection (optional operation). The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (This implies that the behavior of this call is undefined if the specified collection is this collection, and this collection is nonempty.)

Specified by:
  `addAll` in interface `TxnCollection<E>`
Parameters:
  `c` - collection containing elements to be added to this collection
Returns:
  `true` if this collection changed as a result of the call
See Also:
  `Collection.add(Object)`

#### addAll

    public boolean addAll(Txn tx,
                 TxnCollection<? extends E> c)

Description copied from interface: `TxnCollection`
Adds all of the elements in the specified collection to this collection (optional operation). The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (This implies that the behavior of this call is undefined if the specified collection is this collection, and this collection is nonempty.)

Specified by:
  `addAll` in interface `TxnCollection<E>`
  `c` - collection containing elements to be added to this collection
Returns:
  `true` if this collection changed as a result of the call
See Also:
  `Collection.add(Object)`

#### iterator

    public TxnIterator<E> iterator()

Specified by:
  `iterator` in interface `java.lang.Iterable<E>`
Specified by:
  `iterator` in interface `java.util.Collection<E>`
Specified by:
  `iterator` in interface `TxnIterable<E>`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### toArray

    public java.lang.Object[] toArray()

Specified by:
  `toArray` in interface `java.util.Collection<E>`

#### toArray

    public <T> T[] toArray(T[] a)

Specified by:
  `toArray` in interface `java.util.Collection<E>`

#### removeAll

    public boolean removeAll(java.util.Collection<?> c)

Specified by:
  `removeAll` in interface `java.util.Collection<E>`

#### retainAll

    public boolean retainAll(java.util.Collection<?> c)

Specified by:
  `retainAll` in interface `java.util.Collection<E>`