...
Code Block |
---|
interface RuntimeContext { ... Admin getAdmin(); } interface Admin { boolean datasetExists(String name); @Nullable String getDatasetType(String name); @Nullable DatasetProperties getDatasetProperties(String name); void createDataset(String name, String type, DatasetProperties properties) throws DatasetManagementException; void updateDataset(String name, DatasetProperties properties) throws DatasetManagementException; void dropDataset(String name) throws DatasetManagementException; void truncateDataset(String name) throws DatasetManagementException; } |
Why are we adding this to RuntimeContext, and not to DatasetContext? The idea is that DatasetContext represents a way to obtain an instance of a dataset in a transactional context. Admin operations are not transactional, and therefore it seems cleaner to add them separately from DatasetContext.