Class FileQuestion


  • public abstract class FileQuestion
    extends Question
    A question to which the response is a filename.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.io.File[] suggestions
      Suggested values for this question.
      protected java.io.File value
      The current (default or latest) response to this question.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected FileQuestion​(Interview interview, java.lang.String tag)
      Create a question with a nominated tag.
    • Field Detail

      • value

        protected java.io.File value
        The current (default or latest) response to this question.
      • suggestions

        protected java.io.File[] suggestions
        Suggested values for this question.
    • Constructor Detail

      • FileQuestion

        protected FileQuestion​(Interview interview,
                               java.lang.String tag)
        Create a question with a nominated tag.
        Parameters:
        interview - The interview containing this question.
        tag - A unique tag to identify this specific question.
    • Method Detail

      • getSuggestions

        public java.io.File[] getSuggestions()
        Get the suggested responses to this question, or null if none.
        Returns:
        The suggestions.
        See Also:
        setSuggestions(java.io.File[])
      • setSuggestions

        public void setSuggestions​(java.io.File[] newSuggestions)
        Set the set of suggested responses.
        Parameters:
        newSuggestions - The values to be set, or null if none
        Throws:
        java.lang.IllegalArgumentException - if any of the values in the array are null
        See Also:
        getSuggestions()
      • getDefaultValue

        public java.io.File getDefaultValue()
        Get the default response for this question.
        Returns:
        the default response for this question.
        See Also:
        setDefaultValue(java.io.File)
      • setDefaultValue

        public void setDefaultValue​(java.io.File v)
        Set the default response for this question, used by the clear method.
        Parameters:
        v - the default response for this question.
        See Also:
        getDefaultValue()
      • getValue

        public java.io.File getValue()
        Get the current (default or latest) response to this question.
        Returns:
        The current value.
        See Also:
        setValue(java.lang.String)
      • getValueOnPath

        public java.io.File getValueOnPath()
                                    throws Interview.NotOnPathFault
        Verify this question is on the current path, and if it is, return the current value.
        Returns:
        the current value of this question
        Throws:
        Interview.NotOnPathFault - if this question is not on the current path
        See Also:
        getValue()
      • getStringValue

        public java.lang.String getStringValue()
        Description copied from class: Question
        Get the response to this question as a string.
        Specified by:
        getStringValue in class Question
        Returns:
        a string representing the current response to this question, or null.
        See Also:
        Question.setValue(String)
      • setValue

        public void setValue​(java.lang.String path)
        Set the response to this question to the value represented by a string-valued argument.
        Specified by:
        setValue in class Question
        Parameters:
        path - A string containing a value value appropriate for the particular type of question whose value is being set.
        See Also:
        getValue()
      • setValue

        public void setValue​(java.io.File newValue)
        Set the current value.
        Parameters:
        newValue - The value to be set.
        See Also:
        getValue()
      • isValueValid

        public boolean isValueValid()
        Description copied from class: Question
        Check if the question currently has a valid response.
        Specified by:
        isValueValid in class Question
        Returns:
        true if the question currently has a valid response, and false otherwise.
      • isValueAlwaysValid

        public boolean isValueAlwaysValid()
        Description copied from class: Question
        Check if the question always has a valid response. This may be true, for example, for a choice question with a default response.
        Specified by:
        isValueAlwaysValid in class Question
        Returns:
        true if the question always has a valid response, and false otherwise.
      • getBaseDirectory

        public java.io.File getBaseDirectory()
        Get the default directory for files for a response to this question.
        Returns:
        the default directory in which files should be found/placed
        See Also:
        setBaseDirectory(java.io.File), isBaseRelativeOnly()
      • setBaseDirectory

        public void setBaseDirectory​(java.io.File dir)
        Set the default directory for files for a response to this question.
        Parameters:
        dir - the default directory in which files should be found/placed
        See Also:
        getBaseDirectory()
      • isBaseRelativeOnly

        public boolean isBaseRelativeOnly()
        Determine whether all valid responses to this question should be relative to the base directory (i.e. in or under it.) False by default.
        Returns:
        true if all valid responses to this question should be relative to the base directory
        See Also:
        setBaseRelativeOnly(boolean)
      • setBaseRelativeOnly

        public void setBaseRelativeOnly​(boolean b)
        Specify whether all valid responses to this question should be relative to the base directory (in or under it).
        Parameters:
        b - this parameter should be true if all valid responses to this question should be relative to the base directory
        See Also:
        setBaseRelativeOnly(boolean)
      • clear

        public void clear()
        Clear any response to this question, resetting the value back to its initial state.
        Specified by:
        clear in class Question
      • load

        protected void load​(java.util.Map data)
        Load the value for this question from a dictionary, using the tag as the key.
        Specified by:
        load in class Question
        Parameters:
        data - The map from which to load the value for this question.
      • save

        protected void save​(java.util.Map data)
        Save the value for this question in a dictionary, using the tag as the key.
        Specified by:
        save in class Question
        Parameters:
        data - The map in which to save the value for this question.
      • equal

        protected static boolean equal​(java.io.File f1,
                                       java.io.File f2)
        Determine if two filenames are equal.
        Parameters:
        f1 - the first filename to be compared
        f2 - the other filename to be compared
        Returns:
        true if both filenames are null, or if both identify the same filename