Class AnnotationWriter

All Implemented Interfaces:
Closeable, Flushable, Appendable, AutoCloseable

public class AnnotationWriter
extends TableWriter
Version:
2.15
Author:
Nicklas
Last modified
$Date: 2019-05-21 13:37:09 +0200 (tis, 21 maj 2019) $
  • Field Details

    • filename

      private String filename
    • hasPrintedHeaders

      private boolean hasPrintedHeaders
    • columnCount

      private int columnCount
    • usedIds

      private Set<Integer> usedIds
  • Constructor Details

    • AnnotationWriter

      public AnnotationWriter​(Writer out)
  • Method Details

    • create

      public static AnnotationWriter create​(OutputStream out, String filename)
      Utility method for creating an annotation writer when you have an output stream.
      Parameters:
      out - The output stream the annotation writer should print to
      filename - Optional, the name of the file the output stream is printing to
    • create

      public static AnnotationWriter create​(File file)
      Utility method for creating an annotation writer to a file in the BASE file system. The character set and MIME type on the file are automatically updated.
      Parameters:
      file - The file in the BASE file system
    • create

      public static AnnotationWriter create​(File file) throws IOException
      Utility method for creating an annotation writer to a file in the native file system. If the file doesn't exists, it is created.
      Parameters:
      file - The file in the native file system
      Throws:
      IOException
    • getFilename

      public String getFilename()
      Get the file name that this writer is printing to.
      Returns:
      The file name or null if not known
    • setFilename

      public void setFilename​(String filename)
      Set the file name that this writer is printing to.
    • hasPrintedHeaders

      public boolean hasPrintedHeaders()
      Checks if headers has already been printed or not.
    • getColumnCount

      public int getColumnCount()
      Get the number of data columns. This information is only available after the headers has been printed.
      Returns:
      The number of column, or -1 if the headers has not yet been printed
    • bfsPrintHeaders

      public void bfsPrintHeaders​(String... headers)
      Print the header line. This method must always be called before printing any data. It can only be called once. Each column header must be unique and 'ID' is not allowed since it is always used for the first column. Null values are not allowed.
      Parameters:
      headers - The header columns, not including the ID column
      Throws:
      IllegalStateException - If headers has already been printed
      NullPointerException - If any of the header values is null
      IllegalArgumentException - If a duplicate header is found
    • bfsPrintData

      public void bfsPrintData​(int id, Object... data)
      Print a data line. Before this method can be used headers must have been printed. The size of the data array must be exactly the same as the size of the headers array.
      Parameters:
      id - The id of the line, must be a unique positive integer
      data - The data to print
      Throws:
      IllegalStateException - If headers has not been printed
      IllegalArgumentException - If the ID values is not a unique postive integer or if the size of the data array doesn't match the size of the header array
      NullPointerException - If the data array is null