def _new_coverage(self, coverage_data): """ Build a new database coverage object from the given data. """ new_coverage = DatabaseCoverage(coverage_data, self._palette) new_coverage.update_metadata(self.metadata) new_coverage.refresh() return new_coverage
def _build_coverage(self, coverage_base, coverage_data): """ Build a new database coverage object from the given data. """ # initialize a new database-wide coverage object for this data new_coverage = DatabaseCoverage(coverage_base, coverage_data, self._palette) # map the coverage data using the database metadata new_coverage.update_metadata(self.metadata) new_coverage.refresh() return new_coverage
def update_coverage(self, coverage_name, coverage_data, coverage_filepath=None): """ Create or update a databases coverage mapping. """ assert not (coverage_name in RESERVED_NAMES) updating_coverage = coverage_name in self.coverage_names if updating_coverage: logger.debug("Updating coverage %s" % coverage_name) else: logger.debug("Adding coverage %s" % coverage_name) # create a new database coverage mapping from the given coverage data new_coverage = DatabaseCoverage( self._palette, coverage_name, coverage_filepath, coverage_data ) new_coverage.update_metadata(self.metadata) new_coverage.refresh() # # coverage mapping complete, looks like we're good. commit the new # coverage to the director's coverage table and surface it for use. # # note that this will overwrite an existing coverage mapping present # under the same name # self._commit_coverage(coverage_name, new_coverage) # assign a shorthand alias (if available) to new coverage additions if not updating_coverage: self._request_shorthand_alias(coverage_name) # notify any listeners that we have added or updated coverage if updating_coverage: self._notify_coverage_modified() else: self._notify_coverage_created() # return the created/updated coverage return new_coverage