# Hierarchy For All Packages

Package Hierarchies:

- com.hammurapi.common,
- com.hammurapi.common.concurrent,
- com.hammurapi.common.concurrent.transactions,
- com.hammurapi.convert,
- com.hammurapi.extract,
- com.hammurapi.extract.scripting,
- com.hammurapi.store,
- com.hammurapi.store.local

## Class Hierarchy

- java.lang.Object
  - java.util.concurrent.AbstractExecutorService (implements java.util.concurrent.ExecutorService)
    - com.hammurapi.common.concurrent.CallerThreadExecutorService
    - com.hammurapi.common.concurrent.LocalTrackingExecutorService (implements com.hammurapi.common.concurrent.TrackingExecutorService)
    - com.hammurapi.common.concurrent.NonBlockingExecutorService
    - com.hammurapi.common.concurrent.NonQueueingThreadPoolExecutorService
  - com.hammurapi.store.AbstractIndex<ST,T,PK,V,S> (implements com.hammurapi.store.OrderedIndex<ST,T,PK,V,S>)
  - com.hammurapi.store.AbstractIndex.UpdateEntry
  - com.hammurapi.common.concurrent.AbstractPropertySet<KP,KE> (implements com.hammurapi.common.concurrent.PropertySet<KP>, java.util.concurrent.locks.ReadWriteLock)
    - com.hammurapi.common.concurrent.LocalAbstractPropertySet<KP,KE>
      - com.hammurapi.common.concurrent.LocalStringPropertySet
  - com.hammurapi.convert.AbstractReflectiveAtomicConvertersBundle (implements com.hammurapi.convert.AtomicConvertersBundle)
    - com.hammurapi.convert.ReflectiveAtomicConvertersBundle
  - javax.script.AbstractScriptEngine (implements javax.script.ScriptEngine)
    - com.hammurapi.common.TokenExpanderScriptEngine
  - com.hammurapi.store.AbstractStore<T,PK,S> (implements com.hammurapi.store.Store<T,PK,S>)
    - com.hammurapi.store.DeputyStore<T,PK,S>
      - com.hammurapi.store.local.LocalStoreImpl.LocalDeputyStore<T,PK> (implements com.hammurapi.store.local.LocalStore<T,PK>)
    - com.hammurapi.store.local.LocalStoreBase<T,PK,S>
      - com.hammurapi.store.local.LocalStoreImpl<T,PK> (implements com.hammurapi.store.local.LocalStore<T,PK>)
  - com.hammurapi.store.AbstractStore.ExtractorTask<V> (implements java.util.concurrent.Callable<V>, java.io.Serializable)
  - com.hammurapi.store.AbstractStore.IndexizationTask<V> (implements java.util.concurrent.Callable<V>)
  - com.hammurapi.store.AbstractStore.QueryCallable<V> (implements java.util.concurrent.Callable<V>, java.io.Serializable)
  - com.hammurapi.store.AbstractStore.QueryItemCallable<V> (implements java.util.concurrent.Callable<V>)
  - com.hammurapi.store.AbstractStore.QueryMultipleCallable<V> (implements java.util.concurrent.Callable<V>, java.io.Serializable)
  - com.hammurapi.store.AbstractStore.RemoveTask (implements java.util.concurrent.Callable<V>, java.io.Serializable)
  - com.hammurapi.store.AbstractStore.SelectorTask (implements java.util.concurrent.Callable<V>, java.io.Serializable)
  - com.hammurapi.store.AbstractStore.UpdateCallable (implements java.util.concurrent.Callable<V>, java.io.Serializable)
  - com.hammurapi.store.AbstractStore.ValueSelectorTask<V> (implements java.util.concurrent.Callable<V>, java.io.Serializable)
  - com.hammurapi.common.concurrent.AbstractSubSet<KP> (implements com.hammurapi.common.concurrent.PropertySet<KP>)
    - com.hammurapi.common.concurrent.StringSubSet
  - com.hammurapi.store.AbstractTrackingLock (implements com.hammurapi.store.TrackingLock)
    - com.hammurapi.store.local.LocalTrackingLock
  - com.hammurapi.common.concurrent.transactions.AbstractTransactionalProcessor<KP>
    - com.hammurapi.common.concurrent.transactions.StandaloneTransactionalProcessor
  - com.hammurapi.common.concurrent.transactions.AbstractTransactionalProcessor.SimpleTransactionPropagation (implements com.hammurapi.common.concurrent.transactions.AbstractTransactionalProcessor.TransactionPropagation)
  - com.hammurapi.common.concurrent.ArgumentIteratorAdapter<E> (implements com.hammurapi.common.concurrent.ArgumentIterator<E>)
  - com.hammurapi.convert.AtomicConverterBase<S,T> (implements com.hammurapi.convert.AtomicConverter<S,T>)
  - com.hammurapi.convert.CallableConverterPart (implements com.hammurapi.convert.ConverterPart)
  - com.hammurapi.common.ClassHierarchyVisitable (implements com.hammurapi.common.Visitable<T>)
  - java.lang.ClassLoader
    - com.hammurapi.common.FilterClassLoader
  - com.hammurapi.common.ClassLoaderResourceSet (implements com.hammurapi.common.ResourceSet)
  - com.hammurapi.extract.ComparisonResult
  - com.hammurapi.common.CompositeContext (implements com.hammurapi.common.MutableContext)
  - com.hammurapi.common.concurrent.CompositeLogger (implements com.hammurapi.common.concurrent.Logger)
  - com.hammurapi.convert.ContextConverterFactory
  - com.hammurapi.convert.ConvertingService
  - com.hammurapi.common.concurrent.CountedRunnable (implements java.lang.Runnable)
  - com.hammurapi.common.concurrent.CountedRunnable.Counter
  - com.hammurapi.convert.DecoratingService
  - com.hammurapi.common.DefaultContext (implements com.hammurapi.common.Context)
  - com.hammurapi.common.DefaultObservableConverter<T> (implements com.hammurapi.common.ObservableConverter<T>)
  - com.hammurapi.common.concurrent.DelegatingRunnableFuture<V> (implements java.util.concurrent.RunnableFuture<V>)
  - com.hammurapi.common.DependencyScanner
  - com.hammurapi.store.DeputyLock (implements com.hammurapi.store.TrackingLock)
  - com.hammurapi.store.DeputyReadWriteLock (implements java.util.concurrent.locks.ReadWriteLock)
  - com.hammurapi.convert.DuckConverterFactory
  - com.hammurapi.extract.ExtractorBase<T,V,C> (implements com.hammurapi.extract.Extractor<T,V,C>)
    - com.hammurapi.extract.AbstractExtractor<T,V,C>
      - com.hammurapi.extract.AbstractPredicate<T,C> (implements com.hammurapi.extract.Predicate<T,C>)
      - com.hammurapi.extract.CompiledExtractorBase<T,V,C> (implements com.hammurapi.extract.Mappable<T,V,C>)
    - com.hammurapi.extract.Add<T,C>
    - com.hammurapi.extract.And<T,C> (implements java.lang.Cloneable, com.hammurapi.extract.CompositePredicate<T,PC,C,S>, java.io.Serializable)
    - com.hammurapi.extract.CommutativeAnd<T,C> (implements com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>, java.io.Serializable)
    - com.hammurapi.extract.CommutativeOr<T,C> (implements com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>, java.io.Serializable)
    - com.hammurapi.extract.ComparisonPredicate<T,V,C> (implements com.hammurapi.extract.BinaryExtractor<T,V,C>, com.hammurapi.extract.Mappable<T,V,C>, com.hammurapi.extract.Predicate<T,C>)
      - com.hammurapi.extract.Equal<T,V,C>
      - com.hammurapi.extract.GreaterEqual<T,V,C>
      - com.hammurapi.extract.GreaterThan<T,V,C>
      - com.hammurapi.extract.LessEqual<T,V,C>
      - com.hammurapi.extract.LessThan<T,V,C>
      - com.hammurapi.extract.NotEqual<T,V,C>
    - com.hammurapi.extract.CompositeExtractorBase<T,V,C>
    - com.hammurapi.extract.Constant<T,V,C>
    - com.hammurapi.extract.Divide<T,C>
    - com.hammurapi.extract.MethodExtractor<T,V,C> (implements com.hammurapi.extract.Extractor<T,V,C>)
    - com.hammurapi.extract.Multiply<T,C>
    - com.hammurapi.extract.Or<T,C> (implements com.hammurapi.extract.CompositePredicate<T,PC,C,S>, java.io.Serializable)
    - com.hammurapi.extract.scripting.ScriptingPredicate<T,C> (implements com.hammurapi.extract.Predicate<T,C>)
    - com.hammurapi.extract.Subtract<T,C>
  - com.hammurapi.extract.ExtractorComparator<T,V,C> (implements java.util.Comparator<T>)
  - com.hammurapi.extract.ExtractorUtil
  - com.hammurapi.common.FacadeContext (implements com.hammurapi.common.Context)
  - com.hammurapi.extract.False<T,C> (implements com.hammurapi.extract.Predicate<T,C>)
  - com.hammurapi.convert.FoundationAtomicConvertersBundle (implements com.hammurapi.convert.AtomicConvertersBundle)
  - com.hammurapi.common.FreezeableCollection<E> (implements java.util.Collection<E>)
  - com.hammurapi.convert.FutureConverterPart (implements com.hammurapi.convert.ConverterPart)
  - java.util.concurrent.FutureTask<V> (implements java.util.concurrent.RunnableFuture<V>)
    - com.hammurapi.common.concurrent.NonBlockingFutureTask<V>
    - com.hammurapi.common.concurrent.NonBlockingNotifyingFutureTask<V> (implements com.hammurapi.common.concurrent.NotifyingFuture<V>)
  - com.hammurapi.common.HtmlScriptEngineFactory (implements javax.script.ScriptEngineFactory)
  - com.hammurapi.extract.IndexedExtractor<T,C> (implements com.hammurapi.extract.Extractor<T,V,C>, com.hammurapi.extract.Mappable<T,V,C>)
  - com.hammurapi.common.InlineExecutor (implements java.util.concurrent.Executor)
  - com.hammurapi.extract.InstanceOfPredicate<T,C> (implements com.hammurapi.extract.Mappable<T,V,C>, com.hammurapi.extract.Predicate<T,C>)
  - com.hammurapi.common.concurrent.InvocationImpl<K> (implements java.lang.Cloneable, com.hammurapi.common.concurrent.Invocation<K>)
  - com.hammurapi.common.InvocationRecordingProxyFactory
  - com.hammurapi.common.InvocationRecordingProxyFactory.InvocationRecord
  - com.hammurapi.common.Joiner<T,C,R>
    - com.hammurapi.common.LocalJoiner<T,C,R>
  - com.hammurapi.common.Joiner.CollectionAdapter<T> (implements com.hammurapi.common.Joiner.Collector<T>)
  - com.hammurapi.common.Joiner.InputConsumer
  - com.hammurapi.store.LiveView<T,PK,S> (implements com.hammurapi.store.Store<T,PK,S>)
    - com.hammurapi.store.local.LocalStoreImpl.LocalLiveView<T,PK> (implements com.hammurapi.store.local.LocalStore<T,PK>)
  - com.hammurapi.store.local.LocalHandle<T,PK,S> (implements com.hammurapi.store.Store.Handle<T,PK,S>)
  - com.hammurapi.store.local.LocalStoreBase.Config<T,PK,S> (implements java.lang.Cloneable)
  - com.hammurapi.common.concurrent.LocalSynapse<C,R,E> (implements com.hammurapi.common.concurrent.Synapse<C,R,K,E>)
  - com.hammurapi.common.concurrent.LoggerWrapper (implements com.hammurapi.common.concurrent.Logger)
  - com.hammurapi.extract.MappedExtractor<T,V,C> (implements com.hammurapi.extract.FacadeExtractor<T,V,C>, com.hammurapi.extract.Mappable<T,V,C>)
    - com.hammurapi.extract.MappedPredicate<T,C> (implements com.hammurapi.extract.Predicate<T,C>)
  - com.hammurapi.common.MapTokenSource (implements com.hammurapi.common.TokenExpander.TokenSource)
  - com.hammurapi.common.concurrent.MethodInvocable<C> (implements com.hammurapi.common.concurrent.Invocable<C,R,K,E>)
  - com.hammurapi.convert.Mixer
  - com.hammurapi.store.NaturalComparator<V> (implements java.util.Comparator<T>)
  - com.hammurapi.extract.Not<T,C> (implements com.hammurapi.extract.FacadeExtractor<T,V,C>, com.hammurapi.extract.Predicate<T,C>)
  - com.hammurapi.common.ObservableAdapter (implements com.hammurapi.common.Observable<T>)
  - com.hammurapi.common.concurrent.OneOffCallable<T> (implements java.util.concurrent.Callable<V>)
  - com.hammurapi.common.concurrent.PropertySetConvertersBundle
  - com.hammurapi.common.Pumper (implements java.util.concurrent.Callable<V>)
  - com.hammurapi.convert.ReflectionConverter<S,T> (implements com.hammurapi.convert.AtomicConverter<S,T>)
  - com.hammurapi.common.ResourceLoaderImpl (implements com.hammurapi.common.ResourceLoader)
    - com.hammurapi.common.ClassResourceLoader
  - com.hammurapi.extract.scripting.ScriptingExtractorFactory (implements com.hammurapi.extract.ExtractorFactory)
  - com.hammurapi.common.ScriptProcessor
  - com.hammurapi.common.SimpleMutableContext (implements com.hammurapi.common.MutableContext)
  - com.hammurapi.common.SimpleObservableConverter<T> (implements com.hammurapi.common.ObservableConverter<T>)
  - com.hammurapi.common.SingletonChainingContext<ST> (implements com.hammurapi.common.MutableContext)
  - com.hammurapi.convert.SingletonConverterPart (implements com.hammurapi.convert.ConverterPart)
  - com.hammurapi.common.concurrent.SynapseChain<C,R,K,E> (implements com.hammurapi.common.concurrent.Synapse<C,R,K,E>)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - com.hammurapi.convert.ConversionException
        - com.hammurapi.convert.DecorationException
        - com.hammurapi.common.HammurapiException
          - com.hammurapi.common.concurrent.ConflictResolutionException
          - com.hammurapi.extract.ExtractorException
          - com.hammurapi.common.concurrent.transactions.ProcessingException
          - com.hammurapi.common.concurrent.PropertySetException
        - com.hammurapi.common.concurrent.InvocationException
        - com.hammurapi.store.StoreException
        - com.hammurapi.common.TokenExpansionException
  - com.hammurapi.extract.TimeIntervalPredicate<T,C> (implements com.hammurapi.extract.Predicate<T,C>)
  - com.hammurapi.common.TokenExpander
  - com.hammurapi.common.TokenExpanderScriptEngineFactory (implements javax.script.ScriptEngineFactory)
  - com.hammurapi.extract.True<T,C> (implements com.hammurapi.extract.Predicate<T,C>)
  - com.hammurapi.store.UnmodifiableStore<T,PK,S> (implements com.hammurapi.store.Store<T,PK,S>)
    - com.hammurapi.store.local.LocalStoreImpl.LocalUnmodifiableStore<T,PK> (implements com.hammurapi.store.local.LocalStore<T,PK>)
  - java.net.URLStreamHandler
    - com.hammurapi.common.ScriptURLStreamHandler
  - com.hammurapi.common.Util
  - com.hammurapi.common.WeakIdentityManager (implements com.hammurapi.common.IdentityManager<I>)

## Interface Hierarchy

- com.hammurapi.common.concurrent.transactions.AbstractTransactionalProcessor.TransactionPropagation
- com.hammurapi.common.Adaptable
  - com.hammurapi.common.concurrent.PropertySet<KP> (also extends com.hammurapi.common.concurrent.Versionable<T>)
- com.hammurapi.common.concurrent.AsynchronousProcessor
  - com.hammurapi.common.concurrent.TrackingExecutorService (also extends java.util.concurrent.ExecutorService)
- com.hammurapi.convert.AtomicConverter<S,T>
- com.hammurapi.convert.AtomicConvertersBundle
- com.hammurapi.convert.AtomicDecorator<S>
- com.hammurapi.convert.AtomicDecoratorsBundle
- com.hammurapi.store.BackingStore<T,PK>
- com.hammurapi.extract.BinaryExtractor<T,V,C>
- com.hammurapi.common.concurrent.CallableListener<V>
- java.lang.Cloneable
  - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
  - com.hammurapi.extract.CompositePredicate<T,PC,C,S> (also extends com.hammurapi.extract.FacadeExtractor<T,V,C>, com.hammurapi.extract.Mappable<T,V,C>, com.hammurapi.extract.Predicate<T,C>)
    - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
- com.hammurapi.common.concurrent.transactions.Command<KP,V>
- com.hammurapi.common.concurrent.transactions.CommandFactory<CK,KP,V>
- com.hammurapi.common.Context
  - com.hammurapi.common.concurrent.transactions.ExecutionContext<KP> (also extends com.hammurapi.common.concurrent.transactions.ProgressMonitorFactory)
  - com.hammurapi.common.MutableContext
- com.hammurapi.convert.Converter
- com.hammurapi.convert.ConverterClosure<S,T>
- com.hammurapi.convert.ConverterPart
- com.hammurapi.convert.Decorator<S,D>
- com.hammurapi.common.ExceptionHandler
- java.util.concurrent.Executor
  - java.util.concurrent.ExecutorService
    - com.hammurapi.common.concurrent.TrackingExecutorService (also extends com.hammurapi.common.concurrent.AsynchronousProcessor)
  - com.hammurapi.common.concurrent.TrackingExecutorService (also extends com.hammurapi.common.concurrent.AsynchronousProcessor, java.util.concurrent.ExecutorService)
- com.hammurapi.extract.Extractor<T,V,C>
  - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
  - com.hammurapi.extract.CompositePredicate<T,PC,C,S> (also extends java.lang.Cloneable, com.hammurapi.extract.FacadeExtractor<T,V,C>, com.hammurapi.extract.Mappable<T,V,C>, com.hammurapi.extract.Predicate<T,C>)
    - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
  - com.hammurapi.extract.FacadeExtractor<T,V,C>
    - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
    - com.hammurapi.extract.CompositePredicate<T,PC,C,S> (also extends java.lang.Cloneable, com.hammurapi.extract.Mappable<T,V,C>, com.hammurapi.extract.Predicate<T,C>)
      - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
  - com.hammurapi.extract.Predicate<T,C>
    - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
    - com.hammurapi.extract.CompositePredicate<T,PC,C,S> (also extends java.lang.Cloneable, com.hammurapi.extract.FacadeExtractor<T,V,C>, com.hammurapi.extract.Mappable<T,V,C>)
      - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
- com.hammurapi.extract.ExtractorFactory
- java.util.concurrent.Future<V>
  - com.hammurapi.common.concurrent.NotifyingFuture<V>
- com.hammurapi.store.local.HandleFactory<T,PK,S,H>
- com.hammurapi.common.Identifiable<I>
- com.hammurapi.common.IdentityExtractor<I>
- com.hammurapi.common.IdentityManager<I>
- com.hammurapi.common.concurrent.Invocable<C,R,K,E>
  - com.hammurapi.common.concurrent.FireAndForgetInvocable<C,K>
  - com.hammurapi.common.concurrent.Synapse<C,R,K,E> (also extends com.hammurapi.common.concurrent.Invoker<C,R,K,E>)
- com.hammurapi.common.concurrent.Invocation<K>
- java.lang.reflect.InvocationHandler
  - com.hammurapi.convert.FilterInvocationHandler
- com.hammurapi.common.InvocationRecordingProxyFactory.ProblemListener
- com.hammurapi.common.concurrent.Invoker<C,R,K,E>
  - com.hammurapi.common.concurrent.Synapse<C,R,K,E> (also extends com.hammurapi.common.concurrent.Invocable<C,R,K,E>)
- java.lang.Iterable<T>
  - com.hammurapi.store.Index<ST,T,PK,V,S>
    - com.hammurapi.store.MultiIndex<ST,T,PK,V,S>
    - com.hammurapi.store.OrderedIndex<ST,T,PK,V,S>
    - com.hammurapi.store.UniqueIndex<ST,T,PK,V,S>
  - com.hammurapi.common.Joiner.Collector<T>
  - com.hammurapi.store.local.LocalStore<T,PK>
  - com.hammurapi.store.MultiIndex<ST,T,PK,V,S>
  - com.hammurapi.store.OrderedIndex<ST,T,PK,V,S>
  - com.hammurapi.store.Store<T,PK,S> (also extends java.util.concurrent.locks.ReadWriteLock)
    - com.hammurapi.store.local.LocalStore<T,PK>
    - com.hammurapi.store.Transaction<T,PK,S>
    - com.hammurapi.store.TransactionalStore<T,PK,S>
  - com.hammurapi.store.Transaction<T,PK,S>
  - com.hammurapi.store.TransactionalStore<T,PK,S>
  - com.hammurapi.store.UniqueIndex<ST,T,PK,V,S>
- java.util.Iterator<E>
  - com.hammurapi.common.concurrent.ArgumentIterator<E>
  - com.hammurapi.store.Store.StoreIterator<T>
- java.util.concurrent.locks.Lock
  - com.hammurapi.store.TrackingLock
- com.hammurapi.common.concurrent.Logger
- com.hammurapi.extract.Mappable<T,V,C>
  - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
  - com.hammurapi.extract.CompositePredicate<T,PC,C,S> (also extends java.lang.Cloneable, com.hammurapi.extract.FacadeExtractor<T,V,C>, com.hammurapi.extract.Predicate<T,C>)
    - com.hammurapi.extract.CommutativeCompositePredicate<T,C,S>
- com.hammurapi.common.Observable<T>
- com.hammurapi.common.ObservableConverter<T>
- com.hammurapi.common.Observer<T>
- com.hammurapi.common.concurrent.transactions.ProgressMonitor
- com.hammurapi.common.concurrent.transactions.ProgressMonitorFactory
  - com.hammurapi.common.concurrent.transactions.ExecutionContext<KP> (also extends com.hammurapi.common.Context)
- java.util.concurrent.locks.ReadWriteLock
  - com.hammurapi.store.local.LocalStore<T,PK>
  - com.hammurapi.store.Store<T,PK,S> (also extends java.lang.Iterable<T>)
    - com.hammurapi.store.local.LocalStore<T,PK>
    - com.hammurapi.store.Transaction<T,PK,S>
    - com.hammurapi.store.TransactionalStore<T,PK,S>
  - com.hammurapi.store.Transaction<T,PK,S>
  - com.hammurapi.store.TransactionalStore<T,PK,S>
- com.hammurapi.common.ResourceLoader
- com.hammurapi.common.ResourceSet
- com.hammurapi.store.Store.Handle<T,PK,S>
- com.hammurapi.store.Store.QueryTask<T,PK,S>
- com.hammurapi.store.Store.UpdateTask<T,PK,S>
- com.hammurapi.common.concurrent.TaskCounter
- com.hammurapi.common.TokenExpander.TokenSource
- com.hammurapi.common.concurrent.Versionable<T>
  - com.hammurapi.common.concurrent.PropertySet<KP> (also extends com.hammurapi.common.Adaptable)
- com.hammurapi.common.concurrent.Versioner
- com.hammurapi.common.Visitable<T>
- com.hammurapi.common.Visitor<T>

## Annotation Type Hierarchy

- com.hammurapi.common.Condition (implements java.lang.annotation.Annotation)
- com.hammurapi.common.concurrent.Immutable (implements java.lang.annotation.Annotation)
- com.hammurapi.convert.ConverterMethod (implements java.lang.annotation.Annotation)

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - com.hammurapi.extract.ComparisonResult.Type
    - com.hammurapi.extract.ComparisonPredicate.PromotionLevel
    - com.hammurapi.store.Store.ViewType
    - com.hammurapi.store.Index.Type
    - com.hammurapi.store.local.LocalHandle.HandleStrength