Package it.tidalwave.util.spi
Class FinderSupport<TYPE,EXTENDED_FINDER extends Finder<TYPE>>
- java.lang.Object
- 
- it.tidalwave.util.spi.FinderSupport<TYPE,EXTENDED_FINDER>
 
- 
- All Implemented Interfaces:
- Finder<TYPE>,- java.io.Serializable,- java.lang.Cloneable
 - Direct Known Subclasses:
- SimpleFinderSupport
 
 public class FinderSupport<TYPE,EXTENDED_FINDER extends Finder<TYPE>> extends java.lang.Object implements Finder<TYPE> A support class for implementing aFinder. Subclasses only need to implement thecomputeResults()method where raw results are retrieved (with raw we mean that they shouldn't be filtered or sorted, as post-processing will be performed by this class) and a clone constructor. If you don't need to extend theFinderwith extra methods, please use the simplifiedSimpleFinderSupport.- Author:
- Fabrizio Giudici
- See Also:
- Serialized Form
- Status: draft API
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from interface it.tidalwave.util.FinderFinder.InMemorySortCriterion<TYPE>, Finder.SortCriterion, Finder.SortDirection
 
- 
 - 
Constructor SummaryConstructors Modifier Constructor Description protectedFinderSupport()Default constructor.protectedFinderSupport(FinderSupport<TYPE,EXTENDED_FINDER> other, java.lang.Object holder)Clone constructor for subclasses.protectedFinderSupport(java.lang.String name)Creates an instance with the given name (that will be used for diagnostics).
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description FinderSupport<TYPE,EXTENDED_FINDER>clone()Deprecated.protected EXTENDED_FINDERclone(java.lang.Object override)Deprecated.UseclonedWith(Object)instead.protected EXTENDED_FINDERclonedWith(java.lang.Object override)Create a clone of this object calling the special copy constructor by reflection.protected java.util.List<? extends TYPE>computeNeededResults()Subclasses can implement this method where *only the requested* raw results must be retrieved.protected java.util.List<? extends TYPE>computeResults()Subclasses can implement this method where *all* the raw results must be actually retrieved.intcount()Performs the search and returns the count of found items.EXTENDED_FINDERfrom(int firstResult)Tells theFinderthat only a subset of found items will be returned, starting from the given position.protected static <T> TgetSource(java.lang.Class<T> type, T other, java.lang.Object override)A utility method used by the copy constructor (see general documentation).EXTENDED_FINDERmax(int maxResults)Tells theFinderthat only a maximum number of found items will be returned.<ANOTHER_TYPE>
 Finder<ANOTHER_TYPE>ofType(java.lang.Class<ANOTHER_TYPE> type)Tells theFinderthat the specified type of results is expected.java.util.List<? extends TYPE>results()Performs the search and returns the found items.EXTENDED_FINDERsort(Finder.SortCriterion criterion)Tells theFinderthat results will be sorted according to the given criterion, in ascending direction.EXTENDED_FINDERsort(Finder.SortCriterion criterion, Finder.SortDirection direction)Tells theFinderthat results will be sorted according to the given criterion and direction.EXTENDED_FINDERwithContext(java.lang.Object context)Tells theFinderthat results should be created with the given context.- 
Methods inherited from class java.lang.Objectequals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface it.tidalwave.util.FinderfirstResult, iterator, optionalFirstResult, optionalResult, result, stream
 
- 
 
- 
- 
- 
Constructor Detail- 
FinderSupportprotected FinderSupport(@Nonnull java.lang.String name)Creates an instance with the given name (that will be used for diagnostics).- Parameters:
- name- the name
 
 - 
FinderSupportprotected FinderSupport() Default constructor.
 - 
FinderSupportprotected FinderSupport(@Nonnull FinderSupport<TYPE,EXTENDED_FINDER> other, @Nonnull java.lang.Object holder)Clone constructor for subclasses.- Parameters:
- other- the other instance to clone
- holder- the holder object
 
 
- 
 - 
Method Detail- 
clone@Nonnull public final FinderSupport<TYPE,EXTENDED_FINDER> clone() Deprecated.This method throws an exception since aFinderextending this class must be cloned withclonedWith(Object).- Overrides:
- clonein class- java.lang.Object
- See Also:
- clonedWith(Object)
 
 - 
clonedWith@Nonnull protected EXTENDED_FINDER clonedWith(@Nonnull java.lang.Object override) Create a clone of this object calling the special copy constructor by reflection.- Parameters:
- override- the override object
- Returns:
- the clone
 
 - 
clone@Nonnull @Deprecated protected EXTENDED_FINDER clone(@Nonnull java.lang.Object override) Deprecated.UseclonedWith(Object)instead.Create a clone of this object calling the special clone constructor by reflection.- Parameters:
- override- the override object
- Returns:
- the clone
 
 - 
from@Nonnull public EXTENDED_FINDER from(@Nonnegative int firstResult) Tells theFinderthat only a subset of found items will be returned, starting from the given position.
 - 
max@Nonnull public EXTENDED_FINDER max(@Nonnegative int maxResults) Tells theFinderthat only a maximum number of found items will be returned.
 - 
withContext@Nonnull public EXTENDED_FINDER withContext(@Nonnull java.lang.Object context) Tells theFinderthat results should be created with the given context. This method can be called multiple times; contexts are accumulated.- Specified by:
- withContextin interface- Finder<TYPE>
- Parameters:
- context- the context
- Returns:
- the Finder
 
 - 
ofType@Nonnull public <ANOTHER_TYPE> Finder<ANOTHER_TYPE> ofType(@Nonnull java.lang.Class<ANOTHER_TYPE> type) Tells theFinderthat the specified type of results is expected.
 - 
sort@Nonnull public EXTENDED_FINDER sort(@Nonnull Finder.SortCriterion criterion, @Nonnull Finder.SortDirection direction) Tells theFinderthat results will be sorted according to the given criterion and direction.
 - 
sort@Nonnull public final EXTENDED_FINDER sort(@Nonnull Finder.SortCriterion criterion) Tells theFinderthat results will be sorted according to the given criterion, in ascending direction.
 - 
results@Nonnull public java.util.List<? extends TYPE> results() Performs the search and returns the found items.
 - 
count@Nonnegative public int count() Performs the search and returns the count of found items.
 - 
computeResults@Nonnull protected java.util.List<? extends TYPE> computeResults() Subclasses can implement this method where *all* the raw results must be actually retrieved.- Returns:
- the unprocessed results
 
 - 
computeNeededResults@Nonnull protected java.util.List<? extends TYPE> computeNeededResults() Subclasses can implement this method where *only the requested* raw results must be retrieved.- Returns:
- the unprocessed results
 
 - 
getSource@Nonnull protected static <T> T getSource(java.lang.Class<T> type, @Nonnull T other, @Nonnull java.lang.Object override)A utility method used by the copy constructor (see general documentation). If the override object is strictly of the specified type, it is returned; otherwise the other object is returned.- Type Parameters:
- T- the static type of the source
- Parameters:
- type- the dynamic type of the source
- other- the other finder
- override- the holder object
- Returns:
- the override or other
 
 
- 
 
-