Class Files

java.lang.Object
edu.wisc.game.rest.Files

public class Files
extends Object
Information about the data files the Rule Game web server reads and writes
  • Constructor Details

  • Method Details

    • setInputDir

      public static void setInputDir​(String path)
      Sets the path to the input directory, which is the root of the tree that contains the experiment control files. You only need to use this method if you want trial list files, rule set files, etc. to be read from directories in a directory tree other than the default ("/opt/tomcat/game-data"). So, for example, the Captive Game Server may use this method. If you use it, do so early in your application.
      Parameters:
      path - E.g. "/opt/tomcat/game-data"
    • setSavedDir

      public static void setSavedDir​(String path)
      Sets the path to the saved-data directory. The Game Server itself would never need to do that; however, one can imagine an analysis script running on a different computer (e.g., you use your desktop computer to analyze the data accumulated at the main server), in which case it may read the transcript etc. data to be analyzed from a different location.
    • guessesFile

      public static File guessesFile​(String playerId) throws IOException
      The file into which guesses by a given player are written
      Throws:
      IOException
    • boardsFile

      public static File boardsFile​(String playerId) throws IOException
      The file into which the initial boards of all episodes played by a given player are written
      Throws:
      IOException
    • boardsFile

      public static File boardsFile​(String playerId, boolean readOnly) throws IOException
      Throws:
      IOException
    • transcriptsFile

      public static File transcriptsFile​(String playerId) throws IOException
      Throws:
      IOException
    • transcriptsFile

      public static File transcriptsFile​(String playerId, boolean readOnly) throws IOException
      Throws:
      IOException
    • detailedTranscriptsFile

      public static File detailedTranscriptsFile​(String playerId) throws IOException
      Throws:
      IOException
    • shapesDir

      public static File shapesDir()
    • mlcUploadDir

      public static File mlcUploadDir​(String nickname, boolean readOnly) throws IOException
      The upload directory for a particular MLC participant. It is created if it does not exist yet
      Throws:
      IOException
    • rulesFile

      public static File rulesFile​(String ruleSetName) throws IOException
      Parameters:
      ruleSetName - Either a complete absolute path name ("/home/vmenkov/foo.txt") starting with a slash, or just a file name without the extension ("foo"). In the later case, the file is assumed to be in the standard rules directory.
      Throws:
      IOException
    • allowCachingAllRules

      public static void allowCachingAllRules​(boolean x)
      This can be used (typically, in the captive server context) to allow caching all rules, for greater efficiency
    • rulesCanBeCached

      public static boolean rulesCanBeCached​(String ruleSetName)
      Can the game server cache this rule set? The convention is, names not starting with a slash refer to files in the tomcat directory, whose content is supposed to be stable; therefore, they can be cached in the web app. Names starting with a slash are interpreted as absolute paths of files, presumably belonging to developers and thus possibly not stable; so the game server does not cache those.
    • initialBoardFile

      public static File initialBoardFile​(String boardName) throws IOException
      Throws:
      IOException
    • inputBoardSubdir

      public static File inputBoardSubdir​(String boardSubdirName) throws IOException
      A subdirectory of the input boards directory, for use in a param set with initial boards
      Throws:
      IOException
    • getSvgFile

      public static File getSvgFile​(Piece.Shape shape)
    • getSvgFile

      public static File getSvgFile​(String shape)
      Parameters:
      shape - Case-insensitive shape name, e.g. "circle", or "arrows/up". To obtain the SVG file name, the shape name is converted to lower case, and ".svg" is added.
    • getImageFile

      public static File getImageFile​(String shape)
      Looks for an image file with an appropriate name in the shapes directory.
      Returns:
      A File object if a file has been found, or null otherwise
    • listSAllExperimentPlans

      public static String[] listSAllExperimentPlans() throws IOException
      List all existing experiment plans (based on the directory names in the appropriate tree). Excludes obviously "bad" plans (those without the rule set files, for example).
      Throws:
      IOException
    • listSAllExperimentPlans

      public static String[] listSAllExperimentPlans​(boolean validOnly) throws IOException
      Parameters:
      validOnly - If true, excludes obviously "bad" plans (those without the rule set files, for example).
      Throws:
      IOException
    • listSAllExperimentPlansInTree

      public static String[] listSAllExperimentPlansInTree​(String subdir) throws IOException
      Throws:
      IOException
    • listAllRuleSetsInTree

      public static String[] listAllRuleSetsInTree​(String s) throws IOException
      Lists all rule sets under rules/s
      Parameters:
      s - The position of the root of the tree relative to the main rules directory
      Returns:
      A list of proper rule set names (in the same format they would be likely to be encountered in trial list files, i.e. path names (relative to "rules") without extension.
      Throws:
      IOException
    • listSAllExperimentPlansHtml

      public static String listSAllExperimentPlansHtml() throws IOException
      Creates an HTML snippet (to be used inside a FORM, e.g. at front-end-form.jsp) listing all currently existing experiment plans.
      Throws:
      IOException
    • listSAllExperimentPlansHtml

      public static String listSAllExperimentPlansHtml​(boolean validOnly) throws IOException
      Throws:
      IOException
    • getLaunchFileA

      public static File getLaunchFileA​(LaunchRulesBase.Mode mode)
      The control file for the repeat-user launch page
      Parameters:
      mode - APP, MLC, etc
    • getLaunchFileB

      public static File getLaunchFileB​(LaunchRulesBase.Mode mode)
    • modifierFile

      public static File modifierFile​(String modifierName) throws IOException
      Throws:
      IOException
    • pregameDir

      public static File pregameDir​(String pregame) throws IOException
      The directory where the bundle pregame experience files is stored for a specific experience name
      Throws:
      IOException