package org.multiverse.api.references;
/**
* A Factory for creating references.
*
* @author Peter Veentjer.
*/
public interface TxnRefFactory {
/**
* Creates a committed TxnRef.
*
* @param value the initial value.
* @return the created TxnRef.
*/
<E> TxnRef<E> newTxnRef(E value);
/**
* Creates a committed TxnInteger.
*
* @param value the initial value.
* @return the created TxnInteger.
*/
TxnInteger newTxnInteger(int value);
/**
* Creates a committed TxnBoolean.
*
* @param value the initial value.
* @return the created TxnBoolean.
*/
TxnBoolean newTxnBoolean(boolean value);
/**
* Creates a committed TxnDouble.
*
* @param value the initial value.
* @return the created TxnDouble.
*/
TxnDouble newTxnDouble(double value);
/**
* Creates a committed TxnLong.
*
* @param value the initial value.
* @return the created TxnLong.
*/
TxnLong newTxnLong(long value);
}