package org.rakam.analysis; import org.rakam.analysis.metadata.QueryMetadataStore; import org.rakam.collection.SchemaField; import org.rakam.plugin.ContinuousQuery; import org.rakam.report.QueryExecution; import org.rakam.util.AlreadyExistsException; import java.util.List; import java.util.Map; import java.util.concurrent.CompletableFuture; public abstract class ContinuousQueryService { protected final QueryMetadataStore database; public ContinuousQueryService(QueryMetadataStore database) { this.database = database; } public abstract QueryExecution create(String project, ContinuousQuery report, boolean replayHistoricalData) throws AlreadyExistsException; public abstract CompletableFuture<Boolean> delete(String project, String tableName); public List<ContinuousQuery> list(String project) { return database.getContinuousQueries(project); } public ContinuousQuery get(String project, String tableName) { return database.getContinuousQuery(project, tableName); } public abstract Map<String, List<SchemaField>> getSchemas(String project); public abstract boolean test(String project, String query); public abstract QueryExecution refresh(String project, String tableName); }