# Hierarchy For All Packages

Package Hierarchies:

- org.multiverse,
- org.multiverse.api,
- org.multiverse.api.blocking,
- org.multiverse.api.callables,
- org.multiverse.api.collections,
- org.multiverse.api.exceptions,
- org.multiverse.api.functions,
- org.multiverse.api.lifecycle,
- org.multiverse.api.predicates,
- org.multiverse.api.references,
- org.multiverse.collections,
- org.multiverse.commitbarriers,
- org.multiverse.stms.gamma,
- org.multiverse.stms.gamma.transactionalobjects,
- org.multiverse.stms.gamma.transactions,
- org.multiverse.stms.gamma.transactions.fat,
- org.multiverse.stms.gamma.transactions.lean,
- org.multiverse.utils

## Class Hierarchy

- java.lang.Object
  - org.multiverse.stms.gamma.transactionalobjects.AbstractGammaObject (implements org.multiverse.stms.gamma.transactionalobjects.GammaObject, org.multiverse.api.Lock)
    - org.multiverse.stms.gamma.transactionalobjects.BaseGammaTxnRef
      - org.multiverse.stms.gamma.transactionalobjects.GammaTxnBoolean (implements org.multiverse.api.references.TxnBoolean)
      - org.multiverse.stms.gamma.transactionalobjects.GammaTxnDouble (implements org.multiverse.api.references.TxnDouble)
      - org.multiverse.stms.gamma.transactionalobjects.GammaTxnInteger (implements org.multiverse.api.references.TxnInteger)
      - org.multiverse.stms.gamma.transactionalobjects.GammaTxnLong (implements org.multiverse.api.references.TxnLong)
      - org.multiverse.stms.gamma.transactionalobjects.GammaTxnRef<E> (implements org.multiverse.api.references.TxnRef<E>)
  - org.multiverse.stms.gamma.AbstractGammaTxnExecutor (implements org.multiverse.stms.gamma.GammaTxnExecutor)
    - org.multiverse.stms.gamma.FatGammaTxnExecutor
    - org.multiverse.stms.gamma.LeanGammaTxnExecutor
  - org.multiverse.collections.AbstractTxnCollection<E> (implements org.multiverse.api.collections.TxnCollection<E>)
    - org.multiverse.collections.NaiveTxnHashSet<E> (implements org.multiverse.api.collections.TxnSet<E>)
    - org.multiverse.collections.NaiveTxnLinkedList<E> (implements org.multiverse.api.collections.TxnDeque<E>, org.multiverse.api.collections.TxnList<E>)
    - org.multiverse.collections.NaiveTxnStack<E> (implements org.multiverse.api.collections.TxnStack<E>)
  - org.multiverse.collections.AbstractTxnIterator<E> (implements org.multiverse.api.collections.TxnIterator<E>)
  - org.multiverse.collections.AbstractTxnMap<K,​V> (implements org.multiverse.api.collections.TxnMap<K,​V>)
    - org.multiverse.collections.NaiveTxnHashMap<K,​V>
  - org.multiverse.api.functions.BooleanFunction (implements org.multiverse.api.functions.Function<E>)
  - org.multiverse.api.predicates.BooleanPredicate (implements org.multiverse.api.predicates.Predicate<E>)
  - org.multiverse.utils.Bugshaker (implements org.multiverse.MultiverseConstants)
  - org.multiverse.stms.gamma.transactionalobjects.CallableNode
  - org.multiverse.commitbarriers.CommitBarrier
    - org.multiverse.commitbarriers.CountDownCommitBarrier
    - org.multiverse.commitbarriers.VetoCommitBarrier
  - org.multiverse.api.DefaultBackoffPolicy (implements org.multiverse.api.BackoffPolicy)
  - org.multiverse.api.blocking.DefaultRetryLatch (implements org.multiverse.api.blocking.RetryLatch)
  - org.multiverse.api.functions.DoubleFunction (implements org.multiverse.api.functions.Function<E>)
  - org.multiverse.api.predicates.DoublePredicate (implements org.multiverse.api.predicates.Predicate<E>)
  - org.multiverse.api.functions.Functions
  - org.multiverse.stms.gamma.GammaObjectPool
  - org.multiverse.stms.gamma.GammaOrElseBlock (implements org.multiverse.api.OrElseBlock)
  - org.multiverse.stms.gamma.GammaStm (implements org.multiverse.api.Stm)
  - org.multiverse.stms.gamma.GammaStmConfig
  - org.multiverse.stms.gamma.GammaStmUtils
  - org.multiverse.stms.gamma.transactions.GammaTxn (implements org.multiverse.stms.gamma.GammaConstants, org.multiverse.api.Txn)
    - org.multiverse.stms.gamma.transactions.fat.FatFixedLengthGammaTxn
    - org.multiverse.stms.gamma.transactions.fat.FatMonoGammaTxn
    - org.multiverse.stms.gamma.transactions.fat.FatVariableLengthGammaTxn
    - org.multiverse.stms.gamma.transactions.lean.LeanFixedLengthGammaTxn
    - org.multiverse.stms.gamma.transactions.lean.LeanMonoGammaTxn
  - org.multiverse.stms.gamma.transactions.GammaTxnConfig (implements org.multiverse.stms.gamma.GammaConstants, org.multiverse.api.TxnConfig)
  - org.multiverse.stms.gamma.transactions.GammaTxnPool (implements org.multiverse.stms.gamma.GammaConstants)
  - org.multiverse.stms.gamma.GlobalConflictCounter
  - org.multiverse.api.GlobalStmInstance
  - org.multiverse.api.functions.IntFunction (implements org.multiverse.api.functions.Function<E>)
    - org.multiverse.api.functions.IncIntFunction
  - org.multiverse.api.predicates.IntPredicate (implements org.multiverse.api.predicates.Predicate<E>)
  - org.multiverse.stms.gamma.Listeners
  - org.multiverse.api.functions.LongFunction (implements org.multiverse.api.functions.Function<E>)
  - org.multiverse.api.predicates.LongPredicate (implements org.multiverse.api.predicates.Predicate<E>)
  - org.multiverse.collections.NaiveTxnCollectionFactory (implements org.multiverse.api.collections.TxnCollectionsFactory)
  - org.multiverse.api.predicates.Predicates
  - java.util.Random (implements java.io.Serializable)
    - org.multiverse.utils.ThreadLocalRandom
  - org.multiverse.stms.gamma.transactions.SpeculativeGammaConfiguration
  - org.multiverse.utils.StandardThreadFactory (implements java.util.concurrent.ThreadFactory)
  - org.multiverse.api.StmUtils
  - org.multiverse.stms.gamma.ThreadLocalGammaObjectPool
  - org.multiverse.stms.gamma.transactions.ThreadLocalGammaTxnPool
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Error
      - org.multiverse.api.exceptions.ControlFlowError
        - org.multiverse.api.exceptions.ReadWriteConflict
        - org.multiverse.api.exceptions.RetryError
        - org.multiverse.api.exceptions.SpeculativeConfigurationError
      - org.multiverse.api.exceptions.PanicError
    - java.lang.Exception
      - java.lang.RuntimeException
        - java.lang.IllegalStateException
          - org.multiverse.commitbarriers.CommitBarrierOpenException
          - org.multiverse.api.exceptions.IllegalTxnFactoryException
        - org.multiverse.api.exceptions.InvisibleCheckedException
        - org.multiverse.api.exceptions.TodoException
        - org.multiverse.api.exceptions.TxnExecutionException
          - org.multiverse.api.exceptions.AtomicOperationException
            - org.multiverse.api.exceptions.LockedException
          - org.multiverse.api.exceptions.IllegalCommuteException
          - org.multiverse.api.exceptions.IllegalTxnStateException
            - org.multiverse.api.exceptions.AbortOnlyException
            - org.multiverse.api.exceptions.DeadTxnException
            - org.multiverse.api.exceptions.PreparedTxnException
            - org.multiverse.api.exceptions.ReadonlyException
          - org.multiverse.api.exceptions.PropagationException
            - org.multiverse.api.exceptions.TxnMandatoryException
            - org.multiverse.api.exceptions.TxnNotAllowedException
          - org.multiverse.api.exceptions.RetryException
            - org.multiverse.api.exceptions.RetryInterruptedException
            - org.multiverse.api.exceptions.RetryNotAllowedException
            - org.multiverse.api.exceptions.RetryNotPossibleException
            - org.multiverse.api.exceptions.RetryTimeoutException
            - org.multiverse.api.exceptions.TooManyRetriesException
          - org.multiverse.api.exceptions.StmMismatchException
  - org.multiverse.utils.ToolUnsafe
  - org.multiverse.stms.gamma.transactionalobjects.Tranlocal<E> (implements org.multiverse.stms.gamma.GammaConstants)
  - org.multiverse.api.TxnThreadLocal
  - org.multiverse.api.TxnThreadLocal.Container

## Interface Hierarchy

- org.multiverse.api.BackoffPolicy
- org.multiverse.api.functions.BinaryFunction<E>
- org.multiverse.api.functions.Function<E>
- java.lang.Iterable<T>
  - java.util.Collection<E>
    - java.util.Queue<E>
      - java.util.Deque<E>
        - org.multiverse.api.collections.TxnDeque<E> (also extends org.multiverse.api.collections.TxnQueue<E>)
      - org.multiverse.api.collections.TxnQueue<E> (also extends org.multiverse.api.collections.TxnCollection<E>)
        - org.multiverse.api.collections.TxnDeque<E> (also extends java.util.Deque<E>)
    - java.util.Set<E>
      - org.multiverse.api.collections.TxnSet<E> (also extends org.multiverse.api.collections.TxnCollection<E>)
    - org.multiverse.api.collections.TxnCollection<E> (also extends org.multiverse.api.collections.TxnIterable<E>)
      - org.multiverse.api.collections.TxnList<E>
      - org.multiverse.api.collections.TxnQueue<E> (also extends java.util.Queue<E>)
        - org.multiverse.api.collections.TxnDeque<E> (also extends java.util.Deque<E>)
      - org.multiverse.api.collections.TxnSet<E> (also extends java.util.Set<E>)
      - org.multiverse.api.collections.TxnStack<E>
  - org.multiverse.api.collections.TxnIterable<E>
    - org.multiverse.api.collections.TxnCollection<E> (also extends java.util.Collection<E>)
      - org.multiverse.api.collections.TxnList<E>
      - org.multiverse.api.collections.TxnQueue<E> (also extends java.util.Queue<E>)
        - org.multiverse.api.collections.TxnDeque<E> (also extends java.util.Deque<E>)
      - org.multiverse.api.collections.TxnSet<E> (also extends java.util.Set<E>)
      - org.multiverse.api.collections.TxnStack<E>
- java.util.Iterator<E>
  - org.multiverse.api.collections.TxnIterator<E>
- org.multiverse.api.Lock
- java.util.Map<K,​V>
  - org.multiverse.api.collections.TxnMap<K,​V>
- org.multiverse.MultiverseConstants
  - org.multiverse.stms.gamma.GammaConstants
    - org.multiverse.stms.gamma.transactionalobjects.GammaObject
  - org.multiverse.api.OrElseBlock
  - org.multiverse.api.TxnExecutor
    - org.multiverse.stms.gamma.GammaTxnExecutor
- org.multiverse.api.predicates.Predicate<E>
- org.multiverse.api.blocking.RetryLatch
- org.multiverse.api.Stm
- org.multiverse.api.Txn
- org.multiverse.api.callables.TxnBooleanCallable
- org.multiverse.api.callables.TxnCallable<E>
- org.multiverse.api.collections.TxnCollectionsFactory
- org.multiverse.api.TxnConfig
- org.multiverse.api.callables.TxnDoubleCallable
- org.multiverse.api.TxnFactory
  - org.multiverse.stms.gamma.transactions.GammaTxnFactory
- org.multiverse.api.TxnFactoryBuilder
  - org.multiverse.stms.gamma.transactions.GammaTxnFactoryBuilder
- org.multiverse.api.callables.TxnIntCallable
- org.multiverse.api.lifecycle.TxnListener
- org.multiverse.api.callables.TxnLongCallable
- org.multiverse.api.TxnObject
  - org.multiverse.api.references.TxnBoolean
  - org.multiverse.api.references.TxnDouble
  - org.multiverse.api.references.TxnInteger
  - org.multiverse.api.references.TxnLong
  - org.multiverse.api.references.TxnRef<E>
- org.multiverse.api.references.TxnRefFactory
  - org.multiverse.stms.gamma.GammaTxnRefFactory
- org.multiverse.api.references.TxnRefFactoryBuilder
  - org.multiverse.stms.gamma.GammaTxnRefFactoryBuilder
- org.multiverse.api.callables.TxnVoidCallable

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - org.multiverse.api.IsolationLevel
    - org.multiverse.api.LockMode (implements org.multiverse.MultiverseConstants)
    - org.multiverse.api.PropagationLevel
    - org.multiverse.api.TraceLevel
    - org.multiverse.api.lifecycle.TxnEvent
    - org.multiverse.api.TxnStatus