Class StringListQuestion


  • public abstract class StringListQuestion
    extends Question
    A question to which the response is an array of strings.
    • Field Detail

      • value

        protected java.lang.String[] value
        The current response for this question.
    • Constructor Detail

      • StringListQuestion

        protected StringListQuestion​(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

      • equal

        protected static boolean equal​(java.lang.String[] s1,
                                       java.lang.String... s2)
        Compare two string arrays for equality.
        Parameters:
        s1 - the first array to be compared, or null
        s2 - the other array to be compared, or null
        Returns:
        true if both parameters are null, or if both are non-null and are element-wise equal.
        See Also:
        equal(String, String)
      • equal

        protected static boolean equal​(java.lang.String s1,
                                       java.lang.String s2)
        Compare two strings for equality.
        Parameters:
        s1 - the first string to be compared, or null
        s2 - the other string to be compared, or null
        Returns:
        true if both parameters are null, or if both are non-null and equal.
      • split

        protected static java.lang.String[] split​(java.lang.String s)
        Split a string into a set of newline-separated strings.
        Parameters:
        s - The string to be split, or null
        Returns:
        an array of strings containing the newline-separated substrings of the argument.
      • setDefaultValue

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

        public boolean isDuplicatesAllowed()
        Check whether or not duplicates should be allowed in the list.
        Returns:
        true if duplicates should be allowed, and false otherwise
        See Also:
        setDuplicatesAllowed(boolean)
      • setDuplicatesAllowed

        public void setDuplicatesAllowed​(boolean b)
        Specify whether or not duplicates should be allowed in the list. By default, duplicates are allowed.
        Parameters:
        b - true if duplicates should be allowed, and false otherwise
        See Also:
        isDuplicatesAllowed()
      • getValue

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

        public void setValue​(java.lang.String s)
        Description copied from class: Question
        Set the response to this question to the value represented by a string-valued argument. Subtypes of Question will typically have type-specific methods to set the value as well.
        Specified by:
        setValue in class Question
        Parameters:
        s - A string containing a value value appropriate for the particular type of question whose value is being set.
        See Also:
        Question.getStringValue()
      • setValue

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

        public java.lang.String[] 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()
        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:
        setValue(String)
      • 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.
      • clear

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

        protected void save​(java.util.Map<java.lang.String,​java.lang.String> 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.