Class ExcludeList


  • public class ExcludeList
    extends java.lang.Object
    A set of tests to be excluded from a test run.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ExcludeList.Entry
      An entry in the exclude list.
      static class  ExcludeList.Fault
      This exception is used to report problems manipulating an exclude list.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String EXCLUDEFILE_EXTN
      The standard extension for exclude-list files.
    • Constructor Summary

      Constructors 
      Constructor Description
      ExcludeList()
      Create a new exclude list.
      ExcludeList​(java.io.File f)
      Create an ExcludeList from the data contained in a file.
      ExcludeList​(java.io.File... files)
      Create an ExcludeList from the data contained in a series of files.
      ExcludeList​(java.io.File[] files, boolean strict)
      Create an ExcludeList from the data contained in a series of files.
      ExcludeList​(java.io.File f, boolean strict)
      Create an ExcludeList from the data contained in a file.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addEntry​(ExcludeList.Entry e)
      Add an entry to the table.
      boolean equals​(java.lang.Object obj)  
      boolean excludesAllOf​(TestDescription td)
      Test if a specific test is completely excluded according to the table.
      boolean excludesAllOf​(java.lang.String url)
      Test if a specific test is completely excluded according to the table.
      boolean excludesAnyOf​(TestDescription td)
      Test if a specific test is partially or completely excluded according to the table.
      boolean excludesAnyOf​(java.lang.String url)
      Test if a specific test is partially or completely excluded according to the table.
      ExcludeList.Entry getEntry​(java.lang.String url)
      Locate an entry for a test.
      ExcludeList.Entry getEntry​(java.lang.String url, java.lang.String testCase)
      Locate an entry for a test.
      java.util.Iterator<?> getIterator​(boolean group)
      Iterate over the contents of the table.
      java.lang.String[] getTestCases​(TestDescription td)
      Get the test cases to be excluded for a test.
      java.lang.String getTitle()
      Get the title for this exclude list.
      int hashCode()  
      boolean isEmpty()
      Check whether an exclude list has any entries or not.
      static boolean isExcludeFile​(java.io.File f)
      Test if a file appears to be for an exclude list, by checking the extension.
      boolean isStrictModeEnabled()
      Check whether strict mode is enabled or not.
      void merge​(ExcludeList other)
      Merge the contents of another exclude list into this one.
      void removeEntry​(ExcludeList.Entry e)
      Remove an entry from the table.
      void setStrictModeEnabled​(boolean on)
      Specify whether strict mode is on or not.
      void setTitle​(java.lang.String title)
      Set the title for this exclude list.
      int size()
      Get the number of entries in the table.
      void write​(java.io.File f)
      Write the table out to a file.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EXCLUDEFILE_EXTN

        public static final java.lang.String EXCLUDEFILE_EXTN
        The standard extension for exclude-list files. (".jtx")
        See Also:
        Constant Field Values
    • Constructor Detail

      • ExcludeList

        public ExcludeList()
        Create a new exclude list.
      • ExcludeList

        public ExcludeList​(java.io.File f)
                    throws java.io.FileNotFoundException,
                           java.io.IOException,
                           ExcludeList.Fault
        Create an ExcludeList from the data contained in a file.
        Parameters:
        f - The file to be read.
        Throws:
        java.io.FileNotFoundException - if the file cannot be found
        java.io.IOException - if any problems occur while reading the file
        ExcludeList.Fault - if the data in the file is ionconsistent
        See Also:
        ExcludeList(File[])
      • ExcludeList

        public ExcludeList​(java.io.File f,
                           boolean strict)
                    throws java.io.FileNotFoundException,
                           java.io.IOException,
                           ExcludeList.Fault
        Create an ExcludeList from the data contained in a file.
        Parameters:
        f - The file to be read.
        strict - Indicate if strict data checking rules should be used.
        Throws:
        java.io.FileNotFoundException - if the file cannot be found
        java.io.IOException - if any problems occur while reading the file
        ExcludeList.Fault - if the data in the file is inconsistent
        See Also:
        ExcludeList(File[]), setStrictModeEnabled(boolean)
      • ExcludeList

        public ExcludeList​(java.io.File... files)
                    throws java.io.FileNotFoundException,
                           java.io.IOException,
                           ExcludeList.Fault
        Create an ExcludeList from the data contained in a series of files.
        Parameters:
        files - The file to be read.
        Throws:
        java.io.FileNotFoundException - if any of the files cannot be found
        java.io.IOException - if any problems occur while reading the files.
        ExcludeList.Fault - if the data in the files is inconsistent
        See Also:
        ExcludeList(File)
      • ExcludeList

        public ExcludeList​(java.io.File[] files,
                           boolean strict)
                    throws java.io.FileNotFoundException,
                           java.io.IOException,
                           ExcludeList.Fault
        Create an ExcludeList from the data contained in a series of files.
        Parameters:
        files - The file to be read.
        strict - Indicate if strict data checking rules should be used.
        Throws:
        java.io.FileNotFoundException - if any of the files cannot be found
        java.io.IOException - if any problems occur while reading the files.
        ExcludeList.Fault - if the data in the files is inconsistent
        See Also:
        ExcludeList(File), setStrictModeEnabled(boolean)
    • Method Detail

      • isExcludeFile

        public static boolean isExcludeFile​(java.io.File f)
        Test if a file appears to be for an exclude list, by checking the extension.
        Parameters:
        f - The file to be tested.
        Returns:
        true if the file appears to be an exclude list.
      • isStrictModeEnabled

        public boolean isStrictModeEnabled()
        Check whether strict mode is enabled or not. In strict mode, calls to addEntry may generate an exception in the case of conflicts, such as adding an entry to exclude a specific test case when the entire test is already excluded.
        Returns:
        true if strict mode is enabled, and false otherwise
        See Also:
        setStrictModeEnabled(boolean)
      • setStrictModeEnabled

        public void setStrictModeEnabled​(boolean on)
        Specify whether strict mode is on or not. In strict mode, calls to addEntry may generate an exception in the case of conflicts, such as adding an entry to exclude a specific test case when the entire test is already excluded.
        Parameters:
        on - true if strict mode should be enabled, and false otherwise
        See Also:
        isStrictModeEnabled()
      • excludesAllOf

        public boolean excludesAllOf​(TestDescription td)
        Test if a specific test is completely excluded according to the table. It is completely excluded if there is an entry, and the test case field is null.
        Parameters:
        td - A test description for the test being checked.
        Returns:
        true if the table contains an entry for this test.
      • excludesAllOf

        public boolean excludesAllOf​(java.lang.String url)
        Test if a specific test is completely excluded according to the table. It is completely excluded if there is an entry, and the test case field is null.
        Parameters:
        url - The test-suite root-relative URL for the test.
        Returns:
        true if the table contains an entry for this test.
      • excludesAnyOf

        public boolean excludesAnyOf​(TestDescription td)
        Test if a specific test is partially or completely excluded according to the table. It is so excluded if there is any entry in the table for the test.
        Parameters:
        td - A test description for the test being checked.
        Returns:
        true if the table contains an entry for this test.
      • excludesAnyOf

        public boolean excludesAnyOf​(java.lang.String url)
        Test if a specific test is partially or completely excluded according to the table. It is so excluded if there is any entry in the table for the test.
        Parameters:
        url - The test-suite root-relative URL for the test.
        Returns:
        true if the table contains an entry for this test.
      • getTestCases

        public java.lang.String[] getTestCases​(TestDescription td)
        Get the test cases to be excluded for a test.
        Parameters:
        td - A test description for the test being checked.
        Returns:
        an array of test case names if any test cases are to be excluded. The result is null if the test is not found or is completely excluded without specifying test cases. This may be a mix of single TC strings or a comma separated list of them.
      • addEntry

        public void addEntry​(ExcludeList.Entry e)
                      throws ExcludeList.Fault
        Add an entry to the table.
        Parameters:
        e - The entry to be added; if an entry already exists for this test description, it will be replaced.
        Throws:
        ExcludeList.Fault - if the entry is for the entire test and there is already an entry for a test case for this test, or vice versa.
      • getEntry

        public ExcludeList.Entry getEntry​(java.lang.String url)
        Locate an entry for a test.
        Parameters:
        url - The root relative URL for the test; the URL may include a test case if necessary included in square brackets after the URL proper.
        Returns:
        The entry for the test, or null if there is none.
      • getEntry

        public ExcludeList.Entry getEntry​(java.lang.String url,
                                          java.lang.String testCase)
        Locate an entry for a test.
        Parameters:
        url - The root relative URL for the test.
        testCase - An optional test case to be taken into account. This cannot be a comma separated list. A value of null will match any entry with the given url.
        Returns:
        The entry for the test, or null if the URL cannot be found.
      • merge

        public void merge​(ExcludeList other)
        Merge the contents of another exclude list into this one. The individual entries are merged; The title of the exclude list being merged is ignored.
        Parameters:
        other - the exclude list to be merged with this one.
      • removeEntry

        public void removeEntry​(ExcludeList.Entry e)
        Remove an entry from the table.
        Parameters:
        e - the entry to be removed
      • isEmpty

        public boolean isEmpty()
        Check whether an exclude list has any entries or not.
        Returns:
        true if this exclude list has no entries
        See Also:
        size()
      • size

        public int size()
        Get the number of entries in the table.
        Returns:
        the number of entries in the table
        See Also:
        isEmpty()
      • getIterator

        public java.util.Iterator<?> getIterator​(boolean group)
        Iterate over the contents of the table.
        Parameters:
        group - if true, entries for the same relative URL are grouped together, and if more than one, returned in an array; if false, the iterator always returns separate entries.
        Returns:
        an iterator for the table: the entries are either single instances of @link(Entry) or a mixture of @link(Entry) and @link(Entry)[], depending on the group parameter.
        See Also:
        ExcludeList.Entry
      • getTitle

        public java.lang.String getTitle()
        Get the title for this exclude list.
        Returns:
        the title for this exclude list
        See Also:
        setTitle(java.lang.String)
      • setTitle

        public void setTitle​(java.lang.String title)
        Set the title for this exclude list.
        Parameters:
        title - the title for this exclude list
        See Also:
        getTitle()
      • write

        public void write​(java.io.File f)
                   throws java.io.IOException
        Write the table out to a file.
        Parameters:
        f - The file to which the table should be written.
        Throws:
        java.io.IOException - is thrown if any problems occur while the file is being written.
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - - object to compare
        Returns:
        returns true if two entry tables are equal
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object