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

public class YamlRegionFile extends Object implements RegionDatabase
A store that persists regions in a YAML-encoded file.
  • Constructor Details

    • YamlRegionFile

      public YamlRegionFile(String name, File file)
      Create a new instance.
      Parameters:
      name - the name of this store
      file - the file
  • 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) throws StorageException
      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
      Throws:
      StorageException - thrown on read error
    • saveAll

      public void saveAll(Set<ProtectedRegion> regions) throws StorageException
      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
      Throws:
      StorageException - thrown on write error
    • 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