# Hierarchy For Package de.caff.generics

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - de.caff.generics.AbstractBasicCopyable<T> (implements de.caff.generics.Copyable<T>)
  - de.caff.generics.AbstractBasicCountingSet<T> (implements de.caff.generics.CountingSet<T>)
    - de.caff.generics.CountingHashSet<T>
    - de.caff.generics.CountingTreeSet<T> (implements java.util.SortedSet<E>)
  - de.caff.generics.AbstractBasicUnmodifiableList<T> (implements java.util.List<E>)
    - de.caff.generics.UnmodifiableListArrayWrapper<T>
    - de.caff.generics.UnmodifiableListBooleanArrayWrapper
    - de.caff.generics.UnmodifiableListByteArrayWrapper
    - de.caff.generics.UnmodifiableListDoubleArrayWrapper
    - de.caff.generics.UnmodifiableListFloatArrayWrapper
    - de.caff.generics.UnmodifiableListIntArrayWrapper
    - de.caff.generics.UnmodifiableListLongArrayWrapper
    - de.caff.generics.UnmodifiableListShortArrayWrapper
  - java.util.AbstractCollection<E> (implements java.util.Collection<E>)
    - java.util.AbstractList<E> (implements java.util.List<E>)
      - de.caff.generics.ActiveList<T>
      - de.caff.generics.Indexable.ListView<T> (implements java.util.RandomAccess)
      - de.caff.generics.MutableIndexable.ListView<T> (implements java.util.RandomAccess)
    - java.util.AbstractSet<E> (implements java.util.Set<E>)
      - de.caff.generics.IdentityHashSet<T>
  - de.caff.generics.ArrayIterator<T> (implements java.util.Iterator<E>)
  - de.caff.generics.BasicLoop<T> (implements de.caff.generics.Countable<T>)
    - de.caff.generics.Loop<T>
  - de.caff.generics.BasicLoop.Item<V>
    - de.caff.generics.Loop.Item<T>
  - de.caff.generics.BooleanIndexable.Base (implements de.caff.generics.BooleanIndexable, java.lang.Comparable<T>)
    - de.caff.generics.MutableBooleanIndexable.Base (implements de.caff.generics.MutableBooleanIndexable)
  - de.caff.generics.BooleanPair (implements de.caff.generics.BooleanIndexable, java.io.Serializable)
  - de.caff.generics.ByteIndexable.Base (implements de.caff.generics.ByteIndexable, java.lang.Comparable<T>)
    - de.caff.generics.MutableByteIndexable.Base (implements de.caff.generics.MutableByteIndexable)
  - de.caff.generics.BytePair (implements de.caff.generics.ByteIndexable, java.io.Serializable)
  - de.caff.generics.CharIndexable.Base (implements de.caff.generics.CharIndexable, java.lang.Comparable<T>)
    - de.caff.generics.MutableCharIndexable.Base (implements de.caff.generics.MutableCharIndexable)
  - de.caff.generics.CharPair (implements de.caff.generics.CharIndexable, java.io.Serializable)
  - de.caff.generics.ConcatenatedIterables<T> (implements java.lang.Iterable<T>)
  - de.caff.generics.ConcatenatedIterators<T> (implements java.util.Iterator<E>)
  - de.caff.generics.CopierFStackImpl<T> (implements de.caff.generics.FStack<T>)
  - de.caff.generics.CopierFStackImpl.Empty<T> (implements de.caff.generics.FStack<T>)
  - de.caff.generics.Countable.Base<TT> (implements de.caff.generics.Countable<T>)
    - de.caff.generics.Indexable.Base<TT> (implements de.caff.generics.Indexable<T>)
      - de.caff.generics.MutableIndexable.Base<TT> (implements de.caff.generics.MutableIndexable<T>)
  - de.caff.generics.Dict.Base<KK,VV> (implements de.caff.generics.Dict<K,V>)
  - de.caff.generics.Dict.Entry<EK,EV> (implements de.caff.generics.tuple.ITuple2<T1,T2>)
  - de.caff.generics.DoubleIndexable.Base (implements java.lang.Comparable<T>, de.caff.generics.DoubleIndexable)
    - de.caff.generics.MutableDoubleIndexable.Base (implements de.caff.generics.MutableDoubleIndexable)
  - de.caff.generics.DoubleIndexable.DoubleIndexableSpliterator (implements java.util.Spliterator.OfDouble)
  - de.caff.generics.DoublePair (implements de.caff.generics.DoubleIndexable, java.io.Serializable)
  - de.caff.generics.Empty
  - de.caff.generics.EnumerationIterator<T> (implements java.util.Iterator<E>)
  - de.caff.generics.Enums
  - de.caff.generics.ExpandableDoubleIndexableImpl
  - de.caff.generics.ExpandableIndexableImpl
  - de.caff.generics.ExpandableIntIndexableImpl
  - de.caff.generics.ExpandableLongIndexableImpl
  - de.caff.generics.FilteringIteratorWrapper<T> (implements java.util.Iterator<E>)
  - de.caff.generics.FloatIndexable.Base (implements java.lang.Comparable<T>, de.caff.generics.FloatIndexable)
    - de.caff.generics.MutableFloatIndexable.Base (implements de.caff.generics.MutableFloatIndexable)
  - de.caff.generics.FloatPair (implements de.caff.generics.FloatIndexable, java.io.Serializable)
  - de.caff.generics.FStackImpl<T> (implements de.caff.generics.FStack<T>)
  - de.caff.generics.HashCacheWrapper<T>
  - de.caff.generics.HashCoder<T> (implements de.caff.generics.HashCodeCalculator<T>, de.caff.generics.UniformMatcher<T>)
  - de.caff.generics.HashCoderMap<K,V> (implements java.util.Map<K,V>)
  - de.caff.generics.HashCoderSet<V> (implements java.util.Set<E>)
  - de.caff.generics.Indexable.IndexableSpliterator<TElem> (implements java.util.Spliterator<T>)
  - de.caff.generics.IndexableHelper
  - de.caff.generics.IntCountable.Base (implements de.caff.generics.IntCountable)
    - de.caff.generics.IntIndexable.Base (implements java.lang.Comparable<T>, de.caff.generics.IntIndexable)
      - de.caff.generics.MutableIntIndexable.Base (implements de.caff.generics.MutableIntIndexable)
  - de.caff.generics.IntIndexable.IntIndexableSpliterator (implements java.util.Spliterator.OfInt)
  - de.caff.generics.IntPair (implements de.caff.generics.IntIndexable, java.io.Serializable)
  - de.caff.generics.IterableConverter<T,S> (implements java.lang.Iterable<T>)
  - de.caff.generics.IteratorConverter<T,S> (implements java.util.Iterator<E>)
  - de.caff.generics.IteratorEnumeration<T> (implements java.util.Enumeration<E>)
  - de.caff.generics.LeastRecentlyUsedCache<K,V>
    - de.caff.generics.RecreatingLeastRecentlyUsedCache<K,V>
  - de.caff.generics.ListIteratorConverter<T,S> (implements java.util.ListIterator<E>)
  - de.caff.generics.LongIndexable.Base (implements java.lang.Comparable<T>, de.caff.generics.LongIndexable)
    - de.caff.generics.MutableLongIndexable.Base (implements de.caff.generics.MutableLongIndexable)
  - de.caff.generics.LongIndexable.LongIndexableSpliterator (implements java.util.Spliterator.OfLong)
  - de.caff.generics.LongPair (implements de.caff.generics.LongIndexable, java.io.Serializable)
  - de.caff.generics.MatchSet<E> (implements java.util.Set<E>)
  - de.caff.generics.OrderedPair<S,T> (implements de.caff.generics.tuple.ITuple2<T1,T2>, java.util.Map.Entry<K,V>)
    - de.caff.generics.Pair<T> (implements java.lang.Iterable<T>)
  - de.caff.generics.Primitives
  - de.caff.generics.Pythonesque
  - de.caff.generics.References
  - de.caff.generics.RefValueHashMap<K,V> (implements java.util.Map<K,V>)
    - de.caff.generics.SoftValueHashMap<K,V>
    - de.caff.generics.WeakValueHashMap<K,V>
  - de.caff.generics.RefWrapperHashSet<V> (implements java.util.Set<E>)
  - de.caff.generics.RefWrapperList<V> (implements java.util.List<E>)
  - de.caff.generics.Sequences
  - de.caff.generics.ShortIndexable.Base (implements java.lang.Comparable<T>, de.caff.generics.ShortIndexable)
    - de.caff.generics.MutableShortIndexable.Base (implements de.caff.generics.MutableShortIndexable)
  - de.caff.generics.ShortPair (implements java.io.Serializable, de.caff.generics.ShortIndexable)
  - de.caff.generics.SingletonIterator<T> (implements java.util.Iterator<E>)
  - de.caff.generics.SoftPropertyChangeListener (implements java.beans.PropertyChangeListener)
  - de.caff.generics.Subject.Base<TT> (implements de.caff.generics.Subject<T>)
  - de.caff.generics.Subjectivity
  - de.caff.generics.SynchronizedCollection<T> (implements java.util.Collection<E>)
  - de.caff.generics.SynchronizedList<T> (implements java.util.List<E>)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Error
      - de.caff.generics.EmptyLoopError
      - de.caff.generics.FactoryError
    - java.lang.Exception
      - java.lang.RuntimeException
        - de.caff.generics.LazyEvalutionFailure
        - de.caff.generics.WrappedFragileException
      - de.caff.generics.TypeConverterException
  - de.caff.generics.Types
  - de.caff.generics.TypesImpFilter
  - de.caff.generics.TypesImplFolding
  - de.caff.generics.TypesImplMap
  - de.caff.generics.UnionBase<T1,T2>
    - de.caff.generics.NullableUnion<T1,T2>
    - de.caff.generics.Union<T1,T2>
  - de.caff.generics.WeakPropertyChangeListener (implements java.beans.PropertyChangeListener)

## Interface Hierarchy

- de.caff.generics.Accessor<T>
- de.caff.generics.ActiveListListener<T>
- de.caff.generics.ArrayFactory<T>
- java.util.function.BiPredicate<T,U>
  - de.caff.generics.Matcher<T1,T2>
    - de.caff.generics.UniformMatcher<T>
- de.caff.generics.BooleanIndexable.EntryConsumer
- de.caff.generics.Copyable<T>
  - de.caff.generics.MutableBooleanIndexable (also extends de.caff.generics.BooleanIndexable)
  - de.caff.generics.MutableByteIndexable (also extends de.caff.generics.ByteIndexable)
  - de.caff.generics.MutableCharIndexable (also extends de.caff.generics.CharIndexable)
  - de.caff.generics.MutableDoubleIndexable (also extends de.caff.generics.DoubleIndexable)
  - de.caff.generics.MutableFloatIndexable (also extends de.caff.generics.FloatIndexable)
  - de.caff.generics.MutableIntIndexable (also extends de.caff.generics.IntIndexable)
  - de.caff.generics.MutableLongIndexable (also extends de.caff.generics.LongIndexable)
  - de.caff.generics.MutableShortIndexable (also extends de.caff.generics.ShortIndexable)
- de.caff.generics.Dict<K,V>
- de.caff.generics.Factory<T>
- de.caff.generics.FragileTypeConverter<T,S>
- java.util.function.Function<T,R>
  - de.caff.generics.function.Function1<R,P>
    - de.caff.generics.Copier<T>
    - de.caff.generics.TwoWayTypeConverter<T,S>
- de.caff.generics.HashCodeCalculator<T>
- de.caff.generics.IntIndexable.EntryConsumer
- java.lang.Iterable<T>
  - java.util.Collection<E>
    - java.util.Set<E>
      - de.caff.generics.CountingSet<T>
  - de.caff.generics.Countable<T> (also extends de.caff.generics.Sizeable)
    - de.caff.generics.Indexable<T>
      - de.caff.generics.ExpandableIndexable<T>
      - de.caff.generics.MutableIndexable<T>
  - de.caff.generics.FStack<T>
  - de.caff.generics.PrimitiveBooleanIterable
    - de.caff.generics.BooleanIndexable (also extends de.caff.generics.Sizeable)
      - de.caff.generics.MutableBooleanIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.PrimitiveByteIterable
    - de.caff.generics.ByteIndexable (also extends de.caff.generics.Sizeable)
      - de.caff.generics.MutableByteIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.PrimitiveCharIterable
    - de.caff.generics.CharIndexable (also extends de.caff.generics.Sizeable)
      - de.caff.generics.MutableCharIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.PrimitiveDoubleIterable
    - de.caff.generics.DoubleIndexable (also extends de.caff.generics.Sizeable)
      - de.caff.generics.ExpandableDoubleIndexable
      - de.caff.generics.MutableDoubleIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.PrimitiveFloatIterable
    - de.caff.generics.FloatIndexable (also extends de.caff.generics.Sizeable)
      - de.caff.generics.MutableFloatIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.PrimitiveIntIterable
    - de.caff.generics.IntCountable (also extends de.caff.generics.Sizeable)
      - de.caff.generics.IntIndexable
        - de.caff.generics.ExpandableIntIndexable
        - de.caff.generics.MutableIntIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.PrimitiveLongIterable
    - de.caff.generics.LongIndexable (also extends de.caff.generics.Sizeable)
      - de.caff.generics.ExpandableLongIndexable
      - de.caff.generics.MutableLongIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.PrimitiveShortIterable
    - de.caff.generics.ShortIndexable (also extends de.caff.generics.Sizeable)
      - de.caff.generics.MutableShortIndexable (also extends de.caff.generics.Copyable<T>)
- java.util.Iterator<E>
  - java.util.PrimitiveIterator<T,T_CONS>
    - de.caff.generics.PrimitiveBooleanIterator
    - de.caff.generics.PrimitiveByteIterator
    - de.caff.generics.PrimitiveCharIterator
    - de.caff.generics.PrimitiveFloatIterator
    - de.caff.generics.PrimitiveShortIterator
- de.caff.generics.tuple.ITuple2<T1,T2>
  - de.caff.generics.NamedNullableValue<T>
  - de.caff.generics.NamedValue<T>
- de.caff.generics.LoopHandler
  - de.caff.generics.FragileLoopItemHandler<T,E>
  - de.caff.generics.LoopItemHandler<T>
- de.caff.generics.NullableAccessor<T>
- de.caff.generics.ReferenceCreator<R,V>
- de.caff.generics.Sizeable
  - de.caff.generics.BooleanIndexable (also extends de.caff.generics.PrimitiveBooleanIterable)
    - de.caff.generics.MutableBooleanIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.ByteIndexable (also extends de.caff.generics.PrimitiveByteIterable)
    - de.caff.generics.MutableByteIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.CharIndexable (also extends de.caff.generics.PrimitiveCharIterable)
    - de.caff.generics.MutableCharIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.Countable<T> (also extends java.lang.Iterable<T>)
    - de.caff.generics.Indexable<T>
      - de.caff.generics.ExpandableIndexable<T>
      - de.caff.generics.MutableIndexable<T>
  - de.caff.generics.DoubleIndexable (also extends de.caff.generics.PrimitiveDoubleIterable)
    - de.caff.generics.ExpandableDoubleIndexable
    - de.caff.generics.MutableDoubleIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.FloatIndexable (also extends de.caff.generics.PrimitiveFloatIterable)
    - de.caff.generics.MutableFloatIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.IntCountable (also extends de.caff.generics.PrimitiveIntIterable)
    - de.caff.generics.IntIndexable
      - de.caff.generics.ExpandableIntIndexable
      - de.caff.generics.MutableIntIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.LongIndexable (also extends de.caff.generics.PrimitiveLongIterable)
    - de.caff.generics.ExpandableLongIndexable
    - de.caff.generics.MutableLongIndexable (also extends de.caff.generics.Copyable<T>)
  - de.caff.generics.ShortIndexable (also extends de.caff.generics.PrimitiveShortIterable)
    - de.caff.generics.MutableShortIndexable (also extends de.caff.generics.Copyable<T>)
- de.caff.generics.Subject<T>
- de.caff.generics.Subjective<T>
- java.util.function.Supplier<T>
  - de.caff.generics.Lazy<T>
- de.caff.generics.TwoWayChoice<T>
- de.caff.generics.TwoWayChoiceN<T>

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - de.caff.generics.Order