package tc.oc.pgm.map; import java.nio.file.Path; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.logging.Logger; import javax.annotation.Nullable; import com.google.common.util.concurrent.ListenableFuture; import tc.oc.api.message.types.UpdateMultiResponse; public interface MapLibrary { Set addMaps(Collection maps); boolean addMap(PGMMap map); void removeMaps(Collection paths); boolean removeMap(Path path); Logger getLogger(); Collection getMaps(); Set getMapNames(); Map getMapsByPath(); @Nullable PGMMap getMapById(String mapId); @Nullable PGMMap getMapById(MapId mapId); PGMMap needMapById(String mapId); PGMMap needMapById(MapId mapId); Optional getMapByNameOrId(String nameOrId); List resolveMaps(List namesOrIds); Collection getDirtyMaps(); ListenableFuture pushAllMaps(); ListenableFuture pushDirtyMaps(); }