Class CachingDataStoreGranuleCatalog
- Object
-
- GranuleCatalog
-
- CachingDataStoreGranuleCatalog
-
public class CachingDataStoreGranuleCatalog extends GranuleCatalog
This class simply builds an SRTREE spatial index in memory for fast indexed geometric queries.Since the
ImageMosaicReaderheavily uses spatial queries to find out which are the involved tiles during mosaic creation, it is better to do some caching and keep the index in memory as much as possible, hence we came up with this index.- Since:
- 2.5
- Author:
- Simone Giannecchini, S.A.S., Stefan Alfons Krueger (alfonx), Wikisquare.de : Support for jar:file:foo.jar/bar.properties URLs
-
-
Field Summary
-
Fields inherited from class GranuleCatalog
configurations, hints, multiScaleROIProvider
-
-
Constructor Summary
Constructors Constructor Description CachingDataStoreGranuleCatalog(GranuleCatalog adaptee)
-
Method Summary
-
-
-
Constructor Detail
-
CachingDataStoreGranuleCatalog
public CachingDataStoreGranuleCatalog(GranuleCatalog adaptee)
-
-
Method Detail
-
getGranules
public SimpleFeatureCollection getGranules(Query q) throws IOException
- Throws:
IOException
-
getGranules
public SimpleFeatureCollection getGranules(Query q, Transaction t) throws IOException
- Throws:
IOException
-
getGranuleDescriptors
public void getGranuleDescriptors(Query q, GranuleCatalogVisitor visitor) throws IOException
- Throws:
IOException
-
getGranuleDescriptor
protected GranuleDescriptor getGranuleDescriptor(CatalogConfigurationBean configuration, SimpleFeature sf)
-
removeGranules
public int removeGranules(Query query)
-
removeGranules
public int removeGranules(Query query, Transaction transaction)
-
addGranules
public void addGranules(String typeName, Collection<SimpleFeature> granules, Transaction transaction) throws IOException
- Specified by:
addGranulesin classGranuleCatalog- Throws:
IOException
-
computeAggregateFunction
public void computeAggregateFunction(Query q, FeatureCalc function) throws IOException
- Specified by:
computeAggregateFunctionin classGranuleCatalog- Throws:
IOException
-
createType
public void createType(String namespace, String typeName, String typeSpec) throws IOException, SchemaException
- Specified by:
createTypein classGranuleCatalog- Throws:
IOExceptionSchemaException
-
createType
public void createType(SimpleFeatureType featureType) throws IOException
- Specified by:
createTypein classGranuleCatalog- Throws:
IOException
-
createType
public void createType(String identification, String typeSpec) throws SchemaException, IOException
- Specified by:
createTypein classGranuleCatalog- Throws:
SchemaExceptionIOException
-
dispose
public void dispose()
- Specified by:
disposein classGranuleCatalog
-
getBounds
public BoundingBox getBounds(String typeName)
- Specified by:
getBoundsin classGranuleCatalog
-
getGranulesCount
public int getGranulesCount(Query q) throws IOException
- Specified by:
getGranulesCountin classGranuleCatalog- Throws:
IOException
-
getQueryCapabilities
public QueryCapabilities getQueryCapabilities(String typeName)
- Specified by:
getQueryCapabilitiesin classGranuleCatalog
-
getType
public SimpleFeatureType getType(String typeName) throws IOException
- Specified by:
getTypein classGranuleCatalog- Throws:
IOException
-
removeType
public void removeType(String typeName) throws IOException
- Specified by:
removeTypein classGranuleCatalog- Throws:
IOException
-
getTypeNames
public String[] getTypeNames()
- Specified by:
getTypeNamesin classGranuleCatalog
-
drop
public void drop() throws IOExceptionDescription copied from class:GranuleCatalogDrop the underlying catalog, all the individual granule indexes.This is usuallu done when deleting an ImageMosaic storre.
- Specified by:
dropin classGranuleCatalog- Throws:
IOException- in case something bad happens
-
getParentLocation
protected String getParentLocation()
- Specified by:
getParentLocationin classGranuleCatalog
-
addGranule
public void addGranule(String typeName, SimpleFeature granule, Transaction transaction) throws IOException
- Overrides:
addGranulein classGranuleCatalog- Throws:
IOException
-
getBounds
public BoundingBox getBounds(String typeName, Transaction t)
- Overrides:
getBoundsin classGranuleCatalog
-
mergeHints
protected Query mergeHints(Query q)
Description copied from class:GranuleCatalogMerges the wrapper hints with the query ones, making sure not to overwrite the query ones- Overrides:
mergeHintsin classGranuleCatalog
-
setMultiScaleROIProvider
public void setMultiScaleROIProvider(MultiLevelROIProvider footprintProvider)
- Overrides:
setMultiScaleROIProviderin classGranuleCatalog
-
getGranuleFootprint
protected MultiLevelROI getGranuleFootprint(SimpleFeature sf)
Description copied from class:GranuleCatalogReturns the footprint for the given granule. Mind, when applying insets we might have the case of the geometry being empty (negative buffer eroded it fully), in that case the granule must not be loaded- Overrides:
getGranuleFootprintin classGranuleCatalog
-
getFootprintFiles
public List<File> getFootprintFiles(SimpleFeature sf) throws IOException
Description copied from class:GranuleCatalogReturns the list of footprint files for the given granule- Overrides:
getFootprintFilesin classGranuleCatalog- Throws:
IOException
-
getConfigurations
protected CatalogConfigurationBeans getConfigurations()
- Overrides:
getConfigurationsin classGranuleCatalog
-
getHints
public Hints getHints()
- Overrides:
getHintsin classGranuleCatalog
-
getAdaptee
public GranuleCatalog getAdaptee()
-
-