Class MemoryRegionDatabase

java.lang.Object
com.sk89q.worldguard.protection.managers.storage.MemoryRegionDatabase
All Implemented Interfaces:
RegionDatabase

public class MemoryRegionDatabase extends Object implements RegionDatabase
A region database that saves the memory to an in-memory HashSet.

This implementation is thread-safe. Difference saves are not supported.

  • Constructor Details

    • MemoryRegionDatabase

      public MemoryRegionDatabase()
  • Method Details

    • getName

      public String getName()
      Description copied from interface: RegionDatabase
      Get a displayable name for this store.
      Specified by:
      getName in interface RegionDatabase
    • loadAll

      public Set<ProtectedRegion> loadAll(FlagRegistry flagRegistry)
      Description copied from interface: RegionDatabase
      Load all regions from storage and place them into the passed map.

      The map will only be modified from one thread. The keys of each map entry will be in respect to the ID of the region but transformed to be lowercase. Until this method returns, the map may not be modified by any other thread simultaneously. If an exception is thrown, then the state in which the map is left is undefined.

      The provided map should have reasonably efficient get() and put() calls in order to maximize performance.

      Specified by:
      loadAll in interface RegionDatabase
      Parameters:
      flagRegistry - a flag registry
      Returns:
      a set of loaded regions
    • saveAll

      public void saveAll(Set<ProtectedRegion> regions)
      Description copied from interface: RegionDatabase
      Replace all the data in the store with the given collection of regions.
      Specified by:
      saveAll in interface RegionDatabase
      Parameters:
      regions - a set of regions
    • saveChanges

      public void saveChanges(RegionDifference difference) throws DifferenceSaveException
      Description copied from interface: RegionDatabase
      Perform a partial save that only commits changes, rather than the entire region index.
      Specified by:
      saveChanges in interface RegionDatabase
      Parameters:
      difference - the difference
      Throws:
      DifferenceSaveException - thrown if partial saves are not supported