## Uses of Interface
com.hammurapi.extract.Extractor

- Packages that use Extractor
  Package | Description
  --- | ---
  com.hammurapi.common |
  com.hammurapi.extract |
  com.hammurapi.extract.scripting |
  com.hammurapi.store | This package contains interfaces and classes which define object store and provide foundation for implementations.
  com.hammurapi.store.local | Local (in-JVM) implementation of object store.

- - ### Uses of Extractor in com.hammurapi.common

    Method parameters in com.hammurapi.common with type arguments of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | Joiner.`join(T[] inputs, int currentIndex, int inputIndex, C context, Joiner.InputConsumer consumer, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, List<R> resultCollector)` This method can be overridden to implement concurrent joining, i.e.

  - ### Uses of Extractor in com.hammurapi.extract

    Subinterfaces of Extractor in com.hammurapi.extract
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `CommutativeCompositePredicate<T,C,S extends CommutativeCompositePredicate<T,C,S>>` Order of parts can be changed in a commutative composite predicate can be
    `interface` | `CompositePredicate<T,PC extends Collection<Predicate<T,C>>,C,S extends CompositePredicate<T,PC,C,S>>` Predicate which is a composition of other predicates, e.g.
    `interface` | `FacadeExtractor<T,V,C>` Marker interface for extractors which facade other extractors, e.g.
    `interface` | `Predicate<T,C>` Predicates are extractors which extract boolean values.

    Classes in com.hammurapi.extract that implement Extractor
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractExtractor<T,V,C>` Base class for extractors.
    `class` | `AbstractPredicate<T,C>`
    `class` | `Add<T,C>` Numeric add.
    `class` | `And<T,C>` Non-commutative AND.
    `class` | `CommutativeAnd<T,C>` Commutative AND.
    `class` | `CommutativeOr<T,C>` Commutative OR.
    `class` | `ComparisonPredicate<T,V,C>`
    `class` | `CompiledExtractorBase<T,V,C>` Base class for compiled java extractors/predicates.
    `class` | `CompositeExtractorBase<T,V,C>` Base class for composite extractors like +, *, / operations.
    `class` | `Constant<T,V,C>` Constants don't extract any data from sources, but may extract data from context.
    `class` | `Divide<T,C>`
    `class` | `Equal<T,V,C>`
    `class` | `ExtractorBase<T,V,C>` Base class for extractors, implements value caching.
    `class` | `False<T,C>` Predicate which always evaluates to true.
    `class` | `GreaterEqual<T,V extends Comparable<V>,C>`
    `class` | `GreaterThan<T,V extends Comparable<V>,C>`
    `class` | `IndexedExtractor<T,C>` Extracts value at index.
    `class` | `InstanceOfPredicate<T,C>` This predicate evaluates to true if argument is of a particular type.
    `class` | `LessEqual<T,V extends Comparable<V>,C>`
    `class` | `LessThan<T,V extends Comparable<V>,C>`
    `class` | `MappedExtractor<T,V,C>` Extractor which maps arguments to the target extractor.
    `class` | `MappedPredicate<T,C>` Extractor which maps arguments to the target extractor.
    `class` | `MethodExtractor<T,V,C>`
    `class` | `Multiply<T,C>`
    `class` | `Not<T,C>`
    `class` | `NotEqual<T,V,C>`
    `class` | `Or<T,C>` Non-commutative OR.
    `class` | `Subtract<T,C>`
    `class` | `TimeIntervalPredicate<T,C>` This predicate evaluates to true for `timeInterval` after construction.
    `class` | `True<T,C>` Predicate which always evaluates to true.

    Fields in com.hammurapi.extract declared as Extractor
    Modifier and Type | Field and Description
    --- | ---
    `protected Extractor<T,V,C>` | ComparisonPredicate.`leftExtractor`
    `protected Extractor<T,V,C>[]` | CompositeExtractorBase.`operands`
    `protected Extractor<T,V,C>` | ComparisonPredicate.`rightExtractor`

    Methods in com.hammurapi.extract that return Extractor
    Modifier and Type | Method and Description
    --- | ---
    `<T,V,C> Extractor<T,V,C>` | ExtractorFactory.`createExtractor(String language, String code, String[] parameterNames, Class<T>[] parameterTypes, Class<V> valueType, Class<C> contextType, ClassLoader classLoader)` Creates extractor.
    `Extractor<T,Object,C>` | InstanceOfPredicate.`getExtractor()`
    `Extractor<T,V,C>` | ComparisonPredicate.`getLeftExtractor()`
    `Extractor<T,V,C>` | BinaryExtractor.`getLeftExtractor()`
    `Extractor<T,V,C>` | ComparisonPredicate.`getRightExtractor()`
    `Extractor<T,V,C>` | BinaryExtractor.`getRightExtractor()`
    `Extractor<T,V,C>` | MappedExtractor.`getTarget()`
    `Extractor<T,Boolean,C>` | Or.`map(int[] map)`
    `Extractor<T,V,C>` | MappedExtractor.`map(int[] map)`
    `Extractor<T,V,C>` | Mappable.`map(int[] map)` Applies mapping to extractor.
    `Extractor<T,Boolean,C>` | InstanceOfPredicate.`map(int[] map)`
    `Extractor<T,T,C>` | IndexedExtractor.`map(int[] map)`
    `Extractor<T,V,C>` | CompiledExtractorBase.`map(int[] map)`
    `Extractor<T,Boolean,C>` | ComparisonPredicate.`map(int[] map)`
    `Extractor<T,Boolean,C>` | CommutativeOr.`map(int[] map)`
    `Extractor<T,Boolean,C>` | CommutativeAnd.`map(int[] map)`
    `Extractor<T,Boolean,C>` | And.`map(int[] map)`
    `static <T,V,C> Extractor<T,V,C>` | MappedExtractor.`mapExtractor(Extractor<T,V,C> target, int[] map)`
    `protected Extractor<T,Number,C>` | Subtract.`newInstance(Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `protected Extractor<T,Number,C>` | Multiply.`newInstance(Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `protected Extractor<T,Number,C>` | Divide.`newInstance(Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `protected Extractor<T,Object,C>` | Add.`newInstance(Extractor<T,Object,C> leftExtractor, Extractor<T,Object,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | NotEqual.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | LessThan.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | LessEqual.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | GreaterThan.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | GreaterEqual.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | Equal.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected abstract Extractor<T,Boolean,C>` | ComparisonPredicate.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`

    Methods in com.hammurapi.extract that return types with arguments of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `protected Map<Extractor<T,? super V,C>,? super V>` | ExtractorBase.`createCacheEntry()`

    Methods in com.hammurapi.extract with parameters of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `ComparisonResult` | True.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | TimeIntervalPredicate.`compareTo(Extractor<T,Boolean,C> other)`
    `ComparisonResult` | Or.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | NotEqual.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | Not.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | LessThan.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | LessEqual.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | InstanceOfPredicate.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | GreaterThan.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | GreaterEqual.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | False.`compareTo(Extractor<T,Boolean,C> other)`
    `ComparisonResult` | Equal.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | CommutativeOr.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | CommutativeAnd.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | And.`compareTo(Extractor<T,Boolean,C> otherPredicate)`
    `ComparisonResult` | IndexedExtractor.`compareTo(Extractor<T,T,C> other)`
    `ComparisonResult` | MappedExtractor.`compareTo(Extractor<T,V,C> other)`
    `ComparisonResult` | ExtractorBase.`compareTo(Extractor<T,V,C> other)` Basic comparisons with True and False.
    `ComparisonResult` | Extractor.`compareTo(Extractor<T,V,C> other)` Compares two extractors
    `ComparisonResult` | Constant.`compareTo(Extractor<T,V,C> other)`
    `ComparisonResult` | CompiledExtractorBase.`compareTo(Extractor<T,V,C> other)`
    `static <T,V,C> Extractor<T,V,C>` | MappedExtractor.`mapExtractor(Extractor<T,V,C> target, int[] map)`
    `protected Extractor<T,Number,C>` | Subtract.`newInstance(Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `protected Extractor<T,Number,C>` | Subtract.`newInstance(Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `protected Extractor<T,Number,C>` | Multiply.`newInstance(Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `protected Extractor<T,Number,C>` | Multiply.`newInstance(Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `protected Extractor<T,Number,C>` | Divide.`newInstance(Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `protected Extractor<T,Number,C>` | Divide.`newInstance(Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `protected Extractor<T,Object,C>` | Add.`newInstance(Extractor<T,Object,C> leftExtractor, Extractor<T,Object,C> rightExtractor)`
    `protected Extractor<T,Object,C>` | Add.`newInstance(Extractor<T,Object,C> leftExtractor, Extractor<T,Object,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | NotEqual.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | NotEqual.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | LessThan.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | LessThan.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | LessEqual.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | LessEqual.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | GreaterThan.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | GreaterThan.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | GreaterEqual.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | GreaterEqual.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | Equal.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected Extractor<T,Boolean,C>` | Equal.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected abstract Extractor<T,Boolean,C>` | ComparisonPredicate.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `protected abstract Extractor<T,Boolean,C>` | ComparisonPredicate.`newInstance(Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `static <T,V,C> Mappable<T,V,C>` | ExtractorUtil.`toMappable(Extractor<T,V,C> source)`
    `static <T,C> Predicate<T,C>` | ExtractorUtil.`wrap(Extractor<T,Boolean,C> extractor)` Wraps extractor into predicate, if given extractor is not already a predicate.

    Method parameters in com.hammurapi.extract with type arguments of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `Boolean` | True.`extract(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `Boolean` | TimeIntervalPredicate.`extract(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `Boolean` | Not.`extract(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `Boolean` | InstanceOfPredicate.`extract(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `Boolean` | False.`extract(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `T` | IndexedExtractor.`extract(C context, Map<C,Map<Extractor<T,? super T,C>,? super T>> cache, T... obj)`
    `V` | MappedExtractor.`extract(C context, Map<C,Map<Extractor<T,? super V,C>,? super V>> cache, T... obj)`
    `V` | ExtractorBase.`extract(C context, Map<C,Map<Extractor<T,? super V,C>,? super V>> cache, T... obj)`
    `V` | Extractor.`extract(C context, Map<C,Map<Extractor<T,? super V,C>,? super V>> cache, T... obj)` Extracts value.
    `protected Boolean` | Or.`extractInternal(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `protected Boolean` | ComparisonPredicate.`extractInternal(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `protected Boolean` | CommutativeOr.`extractInternal(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `protected Boolean` | CommutativeAnd.`extractInternal(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `protected Boolean` | And.`extractInternal(C context, Map<C,Map<Extractor<T,? super Boolean,C>,? super Boolean>> cache, T... obj)`
    `protected V` | MethodExtractor.`extractInternal(C context, Map<C,Map<Extractor<T,? super V,C>,? super V>> cache, T... obj)`
    `protected abstract V` | ExtractorBase.`extractInternal(C context, Map<C,Map<Extractor<T,? super V,C>,? super V>> cache, T... obj)`
    `protected V` | Constant.`extractInternal(C context, Map<C,Map<Extractor<T,? super V,C>,? super V>> cache, T... obj)`

    Constructors in com.hammurapi.extract with parameters of type Extractor
    Constructor and Description
    `Add(double initialCost, TimeUnit costUnit, Extractor<T,Object,C> leftExtractor, Extractor<T,Object,C> rightExtractor)`
    `Add(double initialCost, TimeUnit costUnit, Extractor<T,Object,C> leftExtractor, Extractor<T,Object,C> rightExtractor)`
    `ComparisonPredicate(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `ComparisonPredicate(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `CompositeExtractorBase(double initialCost, TimeUnit costUnit, Extractor<T,V,C>... operands)`
    `Divide(double initialCost, TimeUnit costUnit, Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `Divide(double initialCost, TimeUnit costUnit, Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `Equal(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor, boolean identity)`
    `Equal(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor, boolean identity)`
    `ExtractorComparator(Extractor<T,V,C> extractor, C context)`
    `GreaterEqual(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `GreaterEqual(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `GreaterThan(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `GreaterThan(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `InstanceOfPredicate(Extractor<T,Object,C> extractor, Class<?> instanceType)`
    `LessEqual(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `LessEqual(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `LessThan(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `LessThan(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor)`
    `MappedExtractor(Extractor<T,V,C> target, int[] map)`
    `Multiply(double initialCost, TimeUnit costUnit, Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `Multiply(double initialCost, TimeUnit costUnit, Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `NotEqual(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor, boolean identity)`
    `NotEqual(double initialCost, TimeUnit costUnit, Extractor<T,V,C> leftExtractor, Extractor<T,V,C> rightExtractor, boolean identity)`
    `Subtract(double initialCost, TimeUnit costUnit, Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`
    `Subtract(double initialCost, TimeUnit costUnit, Extractor<T,Number,C> leftExtractor, Extractor<T,Number,C> rightExtractor)`

  - ### Uses of Extractor in com.hammurapi.extract.scripting

    Classes in com.hammurapi.extract.scripting that implement Extractor
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ScriptingPredicate<T,C>`

    Methods in com.hammurapi.extract.scripting that return Extractor
    Modifier and Type | Method and Description
    --- | ---
    `<T,V,C> Extractor<T,V,C>` | ScriptingExtractorFactory.`createExtractor(String language, String code, String[] parameterNames, Class<T>[] parameterTypes, Class<V> valueType, Class<C> contextType, ClassLoader classLoader)`

  - ### Uses of Extractor in com.hammurapi.store

    Methods in com.hammurapi.store that return Extractor
    Modifier and Type | Method and Description
    --- | ---
    `Extractor<T,V,S>` | Index.`getExtractor()`
    `Extractor<T,V,S>` | AbstractIndex.`getExtractor()`
    `Extractor<T,PK,S>` | UnmodifiableStore.`getPrimaryKeyExtractor()`
    `Extractor<T,PK,S>` | Store.`getPrimaryKeyExtractor()` If primary key is set, then the store shall use equals on the value returned from the primaryKeyExtractor instead of equals on the object to compare objects for removal and update (put).
    `Extractor<T,PK,S>` | LiveView.`getPrimaryKeyExtractor()`
    `Extractor<T,PK,S>` | DeputyStore.`getPrimaryKeyExtractor()`

    Methods in com.hammurapi.store that return types with arguments of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `protected Map<S,Map<Extractor<T,? super PK,S>,? super PK>>` | DeputyStore.`createCache()`
    `protected abstract Map<S,Map<Extractor<T,? super PK,S>,? super PK>>` | AbstractStore.`createCache()`

    Methods in com.hammurapi.store with parameters of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `<V,ST extends T> Index<T,ST,PK,V,S>` | UnmodifiableStore.`addIndex(Predicate<T,S> predicate, Extractor<ST,V,S> extractor, Index.Type type, boolean ordered, Comparator<V> comparator)`
    `<V,ST extends T> Index<T,ST,PK,V,S>` | Store.`addIndex(Predicate<T,S> predicate, Extractor<ST,V,S> extractor, Index.Type type, boolean ordered, Comparator<V> comparator)` Adds index to the store to speed-up extraction operations.
    `<V,ST extends T> Index<T,ST,PK,V,S>` | LiveView.`addIndex(Predicate<T,S> predicate, Extractor<ST,V,S> extractor, Index.Type type, boolean ordered, Comparator<V> comparator)`
    `<V,ST extends T> Index<T,ST,PK,V,S>` | DeputyStore.`addIndex(Predicate<T,S> predicate, Extractor<ST,V,S> extractor, Index.Type type, boolean ordered, Comparator<V> comparator)`
    `<V,ST extends T> Index<T,ST,PK,V,S>` | AbstractStore.`addIndex(Predicate<T,S> predicate, Extractor<ST,V,S> extractor, Index.Type type, boolean ordered, Comparator<V> comparator)`
    `protected <V,ST extends T> AbstractIndex<T,ST,PK,V,S>` | DeputyStore.`createIndex(Predicate<T,S> predicate, Extractor<ST,V,S> extractor, Index.Type type, boolean ordered, Comparator<V> comparator)`
    `protected abstract <V,ST extends T> AbstractIndex<T,ST,PK,V,S>` | AbstractStore.`createIndex(Predicate<T,S> predicate, Extractor<ST,V,S> extractor, Index.Type type, boolean ordered, Comparator<V> comparator)`
    `<V> V` | Store.Handle.`extract(Extractor<T,V,S> extractor)` Extracts value from handle's object using given extractor and internal handle's cache.
    `<V> Iterable<V>` | UnmodifiableStore.`get(Predicate<T,S> selector, Extractor<T,V,S> extractor, boolean ordered, Comparator<V> comparator)`
    `<V> Iterable<V>` | Store.`get(Predicate<T,S> selector, Extractor<T,V,S> extractor, boolean ordered, Comparator<V> comparator)` Retrieves values from objects matching the predicate.
    `<V> Iterable<V>` | LiveView.`get(Predicate<T,S> selector, Extractor<T,V,S> extractor, boolean ordered, Comparator<V> comparator)`
    `<V> Iterable<V>` | DeputyStore.`get(Predicate<T,S> selector, Extractor<T,V,S> extractor, boolean ordered, Comparator<V> comparator)`
    `<V> Iterable<V>` | AbstractStore.`get(Predicate<T,S> selector, Extractor<T,V,S> extractor, boolean ordered, Comparator<V> comparator)`
    `<V> Iterable<V>` | UnmodifiableStore.`getMultiple(Predicate<T,S> selector, Extractor<T,Iterable<V>,S> extractor, Predicate<V,S> valueSelector, boolean ordered, Comparator<V> comparator)`
    `<V> Iterable<V>` | Store.`getMultiple(Predicate<T,S> selector, Extractor<T,Iterable<V>,S> extractor, Predicate<V,S> valueSelector, boolean ordered, Comparator<V> comparator)` Retrieves values from objects matching the predicate.
    `<V> Iterable<V>` | LiveView.`getMultiple(Predicate<T,S> selector, Extractor<T,Iterable<V>,S> extractor, Predicate<V,S> valueSelector, boolean ordered, Comparator<V> comparator)`
    `<V> Iterable<V>` | AbstractStore.`getMultiple(Predicate<T,S> selector, Extractor<T,Iterable<V>,S> extractor, Predicate<V,S> valueSelector, boolean ordered, Comparator<V> comparator)`
    `<V> int` | UnmodifiableStore.`query(Predicate<T,S> selector, Extractor<T,V,S> extractor, Store.QueryTask<V,PK,S> processor)`
    `<V> int` | Store.`query(Predicate<T,S> selector, Extractor<T,V,S> extractor, Store.QueryTask<V,PK,S> processor)` Processes values extracted from objects matching the predicate.
    `<V> int` | LiveView.`query(Predicate<T,S> selector, Extractor<T,V,S> extractor, Store.QueryTask<V,PK,S> processor)`
    `<V> int` | AbstractStore.`query(Predicate<T,S> selector, Extractor<T,V,S> extractor, Store.QueryTask<V,PK,S> query)`
    `<V> int` | UnmodifiableStore.`queryMultiple(Predicate<T,S> selector, Extractor<T,Iterable<V>,S> extractor, Predicate<V,S> valueSelector, Store.QueryTask<V,PK,S> processor)`
    `<V> int` | Store.`queryMultiple(Predicate<T,S> selector, Extractor<T,Iterable<V>,S> extractor, Predicate<V,S> valueSelector, Store.QueryTask<V,PK,S> processor)` Processes multiple values extracted from objects matching the predicate.
    `<V> int` | LiveView.`queryMultiple(Predicate<T,S> selector, Extractor<T,Iterable<V>,S> extractor, Predicate<V,S> valueSelector, Store.QueryTask<V,PK,S> processor)`
    `<V> int` | AbstractStore.`queryMultiple(Predicate<T,S> selector, Extractor<T,Iterable<V>,S> extractor, Predicate<V,S> valueSelector, Store.QueryTask<V,PK,S> query)`

    Method parameters in com.hammurapi.store with type arguments of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `protected Store.Handle<T,PK,S>` | DeputyStore.`createHandle(T obj, PK primaryKey, Map<S,Map<Extractor<T,? super PK,S>,? super PK>> cache, Predicate<T,S>[] validators)`
    `protected abstract Store.Handle<T,PK,S>` | AbstractStore.`createHandle(T obj, PK primaryKey, Map<S,Map<Extractor<T,? super PK,S>,? super PK>> cache, Predicate<T,S>[] validators)` Creates handle.

    Constructors in com.hammurapi.store with parameters of type Extractor
    Constructor and Description
    `AbstractIndex(Predicate<ST,S> predicate, Extractor<T,V,S> extractor, Index.Type type, boolean ordered, Comparator<V> comparator, AbstractStore<ST,PK,S> store)`
    `AbstractStore.ExtractorTask(Store.Handle<T,PK,S> handle, Predicate<T,S> selector, Extractor<T,V,S> extractor)`
    `AbstractStore.IndexizationTask(Predicate<T,S> selector, Extractor<T,V,S> extractor)`
    `AbstractStore.QueryCallable(Store.Handle<T,PK,S> handle, Predicate<T,S> selector, Extractor<T,V,S> extractor, Store.QueryTask<V,PK,S> query, S storeDeputy)`
    `AbstractStore.QueryMultipleCallable(Store.Handle<T,PK,S> handle, Predicate<T,S> selector, Extractor<T,Iterable<V>,S> extractor, Predicate<V,S> valueSelector, Store.QueryTask<V,PK,S> query, S storeDeputy)`

  - ### Uses of Extractor in com.hammurapi.store.local

    Methods in com.hammurapi.store.local that return Extractor
    Modifier and Type | Method and Description
    --- | ---
    `Extractor<T,PK,S>` | LocalStoreBase.`getPrimaryKeyExtractor()`
    `Extractor<T,PK,S>` | LocalStoreBase.Config.`getPrimaryKeyExtractor()`

    Methods in com.hammurapi.store.local that return types with arguments of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `protected Map<S,Map<Extractor<T,? super PK,S>,? super PK>>` | LocalStoreBase.`createCache()`
    `protected Map<S,Map<Extractor<T,? super PK,S>,? super PK>>` | LocalHandle.`getCache()`

    Methods in com.hammurapi.store.local with parameters of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `protected <V,ST extends T> AbstractIndex<T,ST,PK,V,S>` | LocalStoreBase.`createIndex(Predicate<T,S> predicate, Extractor<ST,V,S> extractor, Index.Type type, boolean ordered, Comparator<V> comparator)`
    `<V> V` | LocalHandle.`extract(Extractor<T,V,S> extractor)`
    `void` | LocalStoreBase.Config.`setPrimaryKeyExtractor(Extractor<T,PK,S> primaryKeyExtractor)`

    Method parameters in com.hammurapi.store.local with type arguments of type Extractor
    Modifier and Type | Method and Description
    --- | ---
    `H` | HandleFactory.`createHandle(S store, T obj, PK primaryKey, Map<S,Map<Extractor<T,? super PK,S>,? super PK>> cache, Predicate<T,S>[] validators, LocalHandle.HandleStrength handleStrength, boolean cacheExtracted)`
    `protected Store.Handle<T,PK,S>` | LocalStoreBase.`createHandle(T obj, PK primaryKey, Map<S,Map<Extractor<T,? super PK,S>,? super PK>> cache, Predicate<T,S>[] validators)`

    Constructor parameters in com.hammurapi.store.local with type arguments of type Extractor
    Constructor and Description
    `LocalHandle(LocalStoreBase<T,PK,S> store, T obj, PK primaryKey, Map<S,Map<Extractor<T,? super PK,S>,? super PK>> cache, Predicate<T,S>[] validators, LocalHandle.HandleStrength handleStrength, boolean cacheExtracted)`