Class DataManager<T extends KingdomsObject>

java.lang.Object
org.kingdoms.data.managers.BaseDataManager
org.kingdoms.data.managers.base.DataManager<T>
All Implemented Interfaces:
Closeable, AutoCloseable, org.kingdoms.constants.namespace.Namespaced
Direct Known Subclasses:
KeyedDataManager, SingularDataManager

public abstract class DataManager<T extends KingdomsObject> extends org.kingdoms.data.managers.BaseDataManager
  • Field Details

    • savingState

      protected boolean savingState
  • Constructor Details

    • DataManager

      public DataManager(org.kingdoms.constants.namespace.Namespace namespace, org.kingdoms.data.managers.BaseDataManager inherit)
  • Method Details

    • saveObjectState

      protected void saveObjectState(T data, boolean forceSave)
      Called after loading the data for the first time.
    • getDatabase

      @Internal public abstract KingdomsDatabase<T> getDatabase()
    • deleteAllData

      public abstract void deleteAllData()
    • setSavingState

      @Internal public final void setSavingState(boolean savingState)
      When false, signals this data manager that it should not save any data when saveAll(boolean) with true argument is called.
    • copyAllDataTo

      @Internal public abstract void copyAllDataTo(DataManager<T> dataManager)
      This method is for internal purposes only.
    • clearCache

      @Internal public abstract void clearCache()
      This method is for internal purposes only.
    • autoSave

      @Internal public final int autoSave()
    • saveAll

      public abstract int saveAll(boolean smart)
      Returns:
      the number of saved data.
    • onLoad

      @MustBeInvokedByOverriders protected T onLoad(T value)
      Can't override KeyedDataManager.cache(KeyedKingdomsObject, boolean) because this is also used inside the cache loader which automatically loads it after retrieving the data.
    • onDisable

      public void onDisable()
      Specified by:
      onDisable in class org.kingdoms.data.managers.BaseDataManager
    • unload

      @MustBeInvokedByOverriders protected void unload(@NonNull T data)
    • loadedCount

      public abstract int loadedCount()
      The amount of data that are currently loaded. Sometimes this number is an estimate. For total number of data, use getDatabase()->KingdomsDatabase.count().
    • loadAllData

      public abstract void loadAllData(boolean checkIfLoaded)
    • getLoadedData

      public abstract Collection<T> getLoadedData()
      Get all data that are currently loaded into the cache.
    • peekAllData

      public abstract Collection<T> peekAllData()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • close

      @Internal public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class org.kingdoms.data.managers.BaseDataManager