@Override public int removeGranules(Filter filter, Hints hints) { // unmap the feature identifiers Filter unmapped = GranuleStoreViewFilterVisitor.unmapIdentifiers(filter, coverageView.getName()); List<CoverageBand> bands = coverageView.getCoverageBands(); int removed = 0; for (CoverageBand band : bands) { String coverageName = band.getInputCoverageBands().get(0).getCoverageName(); GranuleStore granuleStore; try { granuleStore = (GranuleStore) reader.getGranules(coverageName, false); // TODO: We may revisit the #removed granules computation to take into // account cases where we remove different number of records across different // input coverages removed = granuleStore.removeGranules(unmapped, hints); } catch (UnsupportedOperationException e) { LOGGER.log(Level.FINER, e.getMessage(), e); } catch (IOException e) { LOGGER.log(Level.FINER, e.getMessage(), e); } } return removed; }
/** * Removes granules selected by the given filter, controlled by a set of hints (might be * implementation dependent and eventually ignored). * * @param filter an OpenGIS filter * @param hints a set of hints to control how the removal is performed * @throws IOException if an error occurs modifying the data source */ default int removeGranules(Filter filter, Hints hints) { // the default implementation just delegates to the hint-less version of the method return removeGranules(filter); }
@Override public int removeGranules(Filter filter, Hints hints) { return delegate.removeGranules(filter, hints); }
@Override public int removeGranules(Filter filter) { return delegate.removeGranules(filter); }
@Override public int removeGranules(Filter filter) { return store.removeGranules(filter); }
@Override public int removeGranules(Filter filter, Hints hints) { return store.removeGranules(filter, hints); }
if (policy == GranuleRemovalPolicy.NONE) { removed = delegate.removeGranules(filter, hints); } else { removed = delegate.removeGranules(filter);
Utils.FF.literal(fileLocation), !isCaseSensitiveFileSystem(fileBeingProcessed)); store.removeGranules(filter);
private void granulesDeleteInternal( String workspaceName, String storeName, String coverageName, String purge, Filter filter) throws IOException { GranuleStore store = getGranuleStore(workspaceName, storeName, coverageName); if (purge != null) { GranuleRemovalPolicy policy = mapRemovalPolicy(purge); Hints hints = new Hints(Hints.GRANULE_REMOVAL_POLICY, policy); store.removeGranules(filter, hints); } else { store.removeGranules(filter); } }
assertEquals(1, granulesCollection.size()); final Filter filter = FF.equal(FF.property("location"), FF.literal("sample.grb2"), true); final int removed = granules.removeGranules(filter); assertEquals (1, removed); granulesCollection = granules.getGranules(null);
final int removed = granules.removeGranules(filter); assertEquals(1, removed); granulesCollection = granules.getGranules(null);