Interface AnnotatedOutput

All Superinterfaces:
ByteOutput, Output
All Known Implementing Classes:
ByteArrayAnnotatedOutput

public interface AnnotatedOutput extends Output
Interface for a binary output destination that may be augmented with textual annotations.
  • Method Details

    • annotates

      boolean annotates()
      Get whether this instance will actually keep annotations.
      Returns:
      true iff annotations are being kept
    • isVerbose

      boolean isVerbose()
      Get whether this instance is intended to keep verbose annotations. Annotators may use the result of calling this method to inform their annotation activity.
      Returns:
      true iff annotations are to be verbose
    • annotate

      void annotate(String msg)
      Add an annotation for the subsequent output. Any previously open annotation will be closed by this call, and the new annotation marks all subsequent output until another annotation call.
      Parameters:
      msg - non-null; the annotation message
    • annotate

      void annotate(int amt, String msg)
      Add an annotation for a specified amount of subsequent output. Any previously open annotation will be closed by this call. If there is already pending annotation from one or more previous calls to this method, the new call "consumes" output after all the output covered by the previous calls.
      Parameters:
      amt - >= 0; the amount of output for this annotation to cover
      msg - non-null; the annotation message
    • endAnnotation

      void endAnnotation()
      End the most recent annotation. Subsequent output will be unannotated, until the next call to annotate(java.lang.String).
    • getAnnotationWidth

      int getAnnotationWidth()
      Get the maximum width of the annotated output. This is advisory: Implementations of this interface are encouraged to deal with too-wide output, but annotaters are encouraged to attempt to avoid exceeding the indicated width.
      Returns:
      >= 1; the maximum width