Class LockingGranuleCatalog
- Object
-
- GranuleCatalog
-
- LockingGranuleCatalog
-
public class LockingGranuleCatalog extends GranuleCatalog
Applies read/write locks around all operations to protect the underlying store, which might not be able to handle this scenario correctly
-
-
Field Summary
-
Fields inherited from class GranuleCatalog
configurations, hints, multiScaleROIProvider
-
-
Constructor Summary
Constructors Constructor Description LockingGranuleCatalog(GranuleCatalog delegate, Hints hints)
-
Method Summary
-
Methods inherited from class GranuleCatalog
getConfigurations, getHints
-
-
-
-
Constructor Detail
-
LockingGranuleCatalog
public LockingGranuleCatalog(GranuleCatalog delegate, Hints hints)
-
-
Method Detail
-
addGranule
public void addGranule(String typeName, SimpleFeature granule, Transaction transaction) throws IOException
- Overrides:
addGranule
in classGranuleCatalog
- Throws:
IOException
-
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
-
getBounds
public BoundingBox getBounds(String typeName, Transaction t)
- Overrides:
getBounds
in classGranuleCatalog
-
getGranules
public SimpleFeatureCollection getGranules(Query q) throws IOException
- Specified by:
getGranules
in classGranuleCatalog
- Throws:
IOException
-
getGranules
public SimpleFeatureCollection getGranules(Query q, Transaction t) throws IOException
- Overrides:
getGranules
in classGranuleCatalog
- Throws:
IOException
-
getGranulesCount
public int getGranulesCount(Query q) throws IOException
- Specified by:
getGranulesCount
in classGranuleCatalog
- Throws:
IOException
-
getGranuleDescriptors
public void getGranuleDescriptors(Query q, GranuleCatalogVisitor visitor) throws IOException
- Specified by:
getGranuleDescriptors
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
-
removeGranules
public int removeGranules(Query query)
- Specified by:
removeGranules
in classGranuleCatalog
-
removeGranules
public int removeGranules(Query query, Transaction transaction)
- Overrides:
removeGranules
in classGranuleCatalog
-
getTypeNames
public String[] getTypeNames()
- Specified by:
getTypeNames
in classGranuleCatalog
-
mergeHints
public 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
public 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
-
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
-
getAdaptee
public GranuleCatalog getAdaptee()
-
-