package cgeo.geocaching.enumerations; import android.support.annotation.NonNull; import java.util.EnumSet; /** * Cache loading/saving/removing parameters */ public interface LoadFlags { enum LoadFlag { CACHE_BEFORE, // load from CacheCache CACHE_AFTER, // load from CacheCache DB_MINIMAL, // load minimal informations from DataBase ATTRIBUTES, WAYPOINTS, SPOILERS, LOGS, INVENTORY, OFFLINE_LOG } /** Retrieve cache from CacheCache only. Do not load from DB */ EnumSet<LoadFlag> LOAD_CACHE_ONLY = EnumSet.of(LoadFlag.CACHE_BEFORE); /** Retrieve cache from CacheCache first. If not found load from DB */ EnumSet<LoadFlag> LOAD_CACHE_OR_DB = EnumSet.of(LoadFlag.CACHE_BEFORE, LoadFlag.DB_MINIMAL, LoadFlag.OFFLINE_LOG); /** Retrieve cache (minimalistic information including waypoints) from DB first. If not found load from CacheCache */ EnumSet<LoadFlag> LOAD_WAYPOINTS = EnumSet.of(LoadFlag.CACHE_AFTER, LoadFlag.DB_MINIMAL, LoadFlag.WAYPOINTS, LoadFlag.OFFLINE_LOG); /** Retrieve cache (all stored informations) from DB only. Do not load from CacheCache */ EnumSet<LoadFlag> LOAD_ALL_DB_ONLY = EnumSet.range(LoadFlag.DB_MINIMAL, LoadFlag.OFFLINE_LOG); enum SaveFlag { CACHE, // save only to CacheCache DB // include saving to CacheCache } @NonNull EnumSet<SaveFlag> SAVE_ALL = EnumSet.allOf(SaveFlag.class); enum RemoveFlag { CACHE, // save only to CacheCache DB, // includes removing from CacheCache OWN_WAYPOINTS_ONLY_FOR_TESTING // only to be used in unit testing (as we never delete own waypoints) } @NonNull EnumSet<RemoveFlag> REMOVE_ALL = EnumSet.of(RemoveFlag.CACHE, RemoveFlag.DB); }