Class FileLoader

java.lang.Object
com.csse3200.game.files.FileLoader

public class FileLoader extends Object
Wrapper for reading Java objects from JSON files.

A generic method is provided already, but methods for reading specific classes can be added for more control.

  • Field Details

    • jsonSave

      public static com.badlogic.gdx.utils.Json jsonSave
  • Constructor Details

    • FileLoader

      public FileLoader()
  • Method Details

    • readClass

      public static <T> T readClass(Class<T> type, String filename)
      Read generic Java classes from a JSON file. Properties in the JSON file will override class defaults.
      Type Parameters:
      T - Class type to read JSON into
      Parameters:
      type - class type
      filename - file to read from
      Returns:
      instance of class, may be null
    • readClass

      public static <T> T readClass(Class<T> type, String filename, FileLoader.Location location)
      Read generic Java classes from a JSON file. Properties in the JSON file will override class defaults.
      Type Parameters:
      T - Class type to read JSON into
      Parameters:
      type - class type
      filename - file to read from
      location - File storage type. See https://github.com/libgdx/libgdx/wiki/File-handling#file-storage-types
      Returns:
      instance of class, may be null
    • readPlayer

      public static <T> T readPlayer(Class<SaveLoadService.PlayerInfo> player, String filename, FileLoader.Location location)
      Read playerinfo from a JSON file and write into class.
      Type Parameters:
      T - Class type to read JSON into
      Parameters:
      player - class type
      filename - file to read from
      location - File storage type. See
      Returns:
      instance of class, may be null
    • readInventory

      public static InventoryComponent readInventory(List<String> inventory, int CPU)
      Reads Inventory component of a save file json - currently a placeholder for refacotring end sprint 2 / into sprint 3
      Parameters:
      inventory - string representation of the items
      CPU - processor count to be loaded in
    • writeClass

      public static void writeClass(Object object, String filename)
      Write generic Java classes to a JSON file.
      Parameters:
      object - Java object to write.
      filename - File to write to.
    • writeClass

      public static void writeClass(Object object, String filename, FileLoader.Location location)
      Write generic Java classes to a JSON file.
      Parameters:
      object - Java object to write.
      filename - File to write to.
      location - File storage type. See https://github.com/libgdx/libgdx/wiki/File-handling#file-storage-types
    • writeClass

      public static void writeClass(SaveLoadService.PlayerInfo playerInfo, String filename, FileLoader.Location location)
      Write specific player instance to a JSON file.
      Parameters:
      playerInfo - information required to load the player back in
      filename - File to write to.
      location - File storage type. See https://github.com/libgdx/libgdx/wiki/File-handling#file-storage-types