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
ImageMosaicReader
heavily 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:
addGranules
in classGranuleCatalog
- Throws:
IOException
-
computeAggregateFunction
public void computeAggregateFunction(Query q, FeatureCalc function) throws IOException
- Specified by:
computeAggregateFunction
in classGranuleCatalog
- Throws:
IOException
-
createType
public void createType(String namespace, String typeName, String typeSpec) throws IOException, SchemaException
- Specified by:
createType
in classGranuleCatalog
- Throws:
IOException
SchemaException
-
createType
public void createType(SimpleFeatureType featureType) throws IOException
- Specified by:
createType
in classGranuleCatalog
- Throws:
IOException
-
createType
public void createType(String identification, String typeSpec) throws SchemaException, IOException
- Specified by:
createType
in classGranuleCatalog
- Throws:
SchemaException
IOException
-
dispose
public void dispose()
- Specified by:
dispose
in classGranuleCatalog
-
getBounds
public BoundingBox getBounds(String typeName)
- Specified by:
getBounds
in classGranuleCatalog
-
getGranulesCount
public int getGranulesCount(Query q) throws IOException
- Specified by:
getGranulesCount
in classGranuleCatalog
- Throws:
IOException
-
getQueryCapabilities
public QueryCapabilities getQueryCapabilities(String typeName)
- Specified by:
getQueryCapabilities
in classGranuleCatalog
-
getType
public SimpleFeatureType getType(String typeName) throws IOException
- Specified by:
getType
in classGranuleCatalog
- Throws:
IOException
-
removeType
public void removeType(String typeName) throws IOException
- Specified by:
removeType
in classGranuleCatalog
- Throws:
IOException
-
getTypeNames
public String[] getTypeNames()
- Specified by:
getTypeNames
in classGranuleCatalog
-
drop
public void drop() throws IOException
Description copied from class:GranuleCatalog
Drop the underlying catalog, all the individual granule indexes.This is usuallu done when deleting an ImageMosaic storre.
- Specified by:
drop
in classGranuleCatalog
- Throws:
IOException
- in case something bad happens
-
getParentLocation
protected String getParentLocation()
- Specified by:
getParentLocation
in classGranuleCatalog
-
addGranule
public void addGranule(String typeName, SimpleFeature granule, Transaction transaction) throws IOException
- Overrides:
addGranule
in classGranuleCatalog
- Throws:
IOException
-
getBounds
public BoundingBox getBounds(String typeName, Transaction t)
- Overrides:
getBounds
in classGranuleCatalog
-
mergeHints
protected Query mergeHints(Query q)
Description copied from class:GranuleCatalog
Merges the wrapper hints with the query ones, making sure not to overwrite the query ones- Overrides:
mergeHints
in classGranuleCatalog
-
setMultiScaleROIProvider
public void setMultiScaleROIProvider(MultiLevelROIProvider footprintProvider)
- Overrides:
setMultiScaleROIProvider
in classGranuleCatalog
-
getGranuleFootprint
protected MultiLevelROI getGranuleFootprint(SimpleFeature sf)
Description copied from class:GranuleCatalog
Returns 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:
getGranuleFootprint
in classGranuleCatalog
-
getFootprintFiles
public List<File> getFootprintFiles(SimpleFeature sf) throws IOException
Description copied from class:GranuleCatalog
Returns the list of footprint files for the given granule- Overrides:
getFootprintFiles
in classGranuleCatalog
- Throws:
IOException
-
getConfigurations
protected CatalogConfigurationBeans getConfigurations()
- Overrides:
getConfigurations
in classGranuleCatalog
-
getHints
public Hints getHints()
- Overrides:
getHints
in classGranuleCatalog
-
getAdaptee
public GranuleCatalog getAdaptee()
-
-