package org.rakam.analysis.metadata; import org.rakam.collection.SchemaField; import org.rakam.util.NotExistsException; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; public interface Metastore { Map<String, List<SchemaField>> getCollections(String project); Set<String> getCollectionNames(String project); void createProject(String project); Set<String> getProjects(); List<SchemaField> getCollection(String project, String collection); List<SchemaField> getOrCreateCollectionFieldList(String project, String collection, Set<SchemaField> fields) throws NotExistsException; void deleteProject(String project); Map<String, Stats> getStats(Collection<String> projects); default void setup() {} class Stats { public Long allEvents; public Long monthlyEvents; public Long dailyEvents; public Stats() { } public Stats(Long allEvents, Long monthlyEvents, Long dailyEvents) { this.allEvents = allEvents; this.monthlyEvents = monthlyEvents; this.dailyEvents = dailyEvents; } } }