Package com.io7m.smfj.format.binary2.internal.serial

## Class WriterBase

- java.lang.Object
- - com.io7m.smfj.format.binary2.internal.serial.WriterBase

- All Implemented Interfaces:
    `SMFSerializerDataAttributesValuesType`, `java.io.Closeable`, `java.lang.AutoCloseable`
  Direct Known Subclasses:
    `WriterBEFloat1_16`, `WriterBEFloat1_32`, `WriterBEFloat1_64`, `WriterBEFloat2_16`, `WriterBEFloat2_32`, `WriterBEFloat2_64`, `WriterBEFloat3_16`, `WriterBEFloat3_32`, `WriterBEFloat3_64`, `WriterBEFloat4_16`, `WriterBEFloat4_32`, `WriterBEFloat4_64`, `WriterBESigned1_16`, `WriterBESigned1_32`, `WriterBESigned1_64`, `WriterBESigned2_16`, `WriterBESigned2_32`, `WriterBESigned2_64`, `WriterBESigned3_16`, `WriterBESigned3_32`, `WriterBESigned3_64`, `WriterBESigned4_16`, `WriterBESigned4_32`, `WriterBESigned4_64`, `WriterBEUnsigned1_16`, `WriterBEUnsigned1_32`, `WriterBEUnsigned1_64`, `WriterBEUnsigned2_16`, `WriterBEUnsigned2_32`, `WriterBEUnsigned2_64`, `WriterBEUnsigned3_16`, `WriterBEUnsigned3_32`, `WriterBEUnsigned3_64`, `WriterBEUnsigned4_16`, `WriterBEUnsigned4_32`, `WriterBEUnsigned4_64`, `WriterLEFloat1_16`, `WriterLEFloat1_32`, `WriterLEFloat1_64`, `WriterLEFloat2_16`, `WriterLEFloat2_32`, `WriterLEFloat2_64`, `WriterLEFloat3_16`, `WriterLEFloat3_32`, `WriterLEFloat3_64`, `WriterLEFloat4_16`, `WriterLEFloat4_32`, `WriterLEFloat4_64`, `WriterLESigned1_16`, `WriterLESigned1_32`, `WriterLESigned1_64`, `WriterLESigned2_16`, `WriterLESigned2_32`, `WriterLESigned2_64`, `WriterLESigned3_16`, `WriterLESigned3_32`, `WriterLESigned3_64`, `WriterLESigned4_16`, `WriterLESigned4_32`, `WriterLESigned4_64`, `WriterLEUnsigned1_16`, `WriterLEUnsigned1_32`, `WriterLEUnsigned1_64`, `WriterLEUnsigned2_16`, `WriterLEUnsigned2_32`, `WriterLEUnsigned2_64`, `WriterLEUnsigned3_16`, `WriterLEUnsigned3_32`, `WriterLEUnsigned3_64`, `WriterLEUnsigned4_16`, `WriterLEUnsigned4_32`, `WriterLEUnsigned4_64`

      public abstract class WriterBase
      extends java.lang.Object
      implements SMFSerializerDataAttributesValuesType

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `WriterBase​(com.io7m.jbssio.api.BSSWriterSequentialType inWriter, SMFAttribute inAttribute)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` |
    `void` | `serializeValueFloat1​(double x)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueFloat2​(double x, double y)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueFloat3​(double x, double y, double z)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueFloat4​(double x, double y, double z, double w)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueIntegerSigned1​(long x)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueIntegerSigned2​(long x, long y)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueIntegerSigned3​(long x, long y, long z)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueIntegerSigned4​(long x, long y, long z, long w)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueIntegerUnsigned1​(long x)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueIntegerUnsigned2​(long x, long y)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueIntegerUnsigned3​(long x, long y, long z)` | Must be overridden for writers that accept values of this type.
    `void` | `serializeValueIntegerUnsigned4​(long x, long y, long z, long w)` | Must be overridden for writers that accept values of this type.
    `protected com.io7m.jbssio.api.BSSWriterSequentialType` | `writer()` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### WriterBase

          protected WriterBase​(com.io7m.jbssio.api.BSSWriterSequentialType inWriter,
                               SMFAttribute inAttribute)

  - ### Method Detail

    - #### close

          public final void close()
                           throws java.io.IOException

      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in interface `java.io.Closeable`
      Throws:
        `java.io.IOException`

    - #### writer

          protected final com.io7m.jbssio.api.BSSWriterSequentialType writer()

    - #### serializeValueFloat4

          public void serializeValueFloat4​(double x,
                                           double y,
                                           double z,
                                           double w)
                                    throws java.io.IOException,
                                           java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueFloat4` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
        `y` - The y value
        `z` - The z value
        `w` - The w value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueFloat3

          public void serializeValueFloat3​(double x,
                                           double y,
                                           double z)
                                    throws java.io.IOException,
                                           java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueFloat3` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
        `y` - The y value
        `z` - The z value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueFloat2

          public void serializeValueFloat2​(double x,
                                           double y)
                                    throws java.io.IOException,
                                           java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueFloat2` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
        `y` - The y value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueFloat1

          public void serializeValueFloat1​(double x)
                                    throws java.io.IOException,
                                           java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueFloat1` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueIntegerSigned4

          public void serializeValueIntegerSigned4​(long x,
                                                   long y,
                                                   long z,
                                                   long w)
                                            throws java.io.IOException,
                                                   java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueIntegerSigned4` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
        `y` - The y value
        `z` - The z value
        `w` - The w value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueIntegerSigned3

          public void serializeValueIntegerSigned3​(long x,
                                                   long y,
                                                   long z)
                                            throws java.io.IOException,
                                                   java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueIntegerSigned3` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
        `y` - The y value
        `z` - The z value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueIntegerSigned2

          public void serializeValueIntegerSigned2​(long x,
                                                   long y)
                                            throws java.io.IOException,
                                                   java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueIntegerSigned2` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
        `y` - The y value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueIntegerSigned1

          public void serializeValueIntegerSigned1​(long x)
                                            throws java.io.IOException,
                                                   java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueIntegerSigned1` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueIntegerUnsigned4

          public void serializeValueIntegerUnsigned4​(long x,
                                                     long y,
                                                     long z,
                                                     long w)
                                              throws java.io.IOException,
                                                     java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueIntegerUnsigned4` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
        `y` - The y value
        `z` - The z value
        `w` - The w value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueIntegerUnsigned3

          public void serializeValueIntegerUnsigned3​(long x,
                                                     long y,
                                                     long z)
                                              throws java.io.IOException,
                                                     java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueIntegerUnsigned3` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
        `y` - The y value
        `z` - The z value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueIntegerUnsigned2

          public void serializeValueIntegerUnsigned2​(long x,
                                                     long y)
                                              throws java.io.IOException,
                                                     java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueIntegerUnsigned2` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
        `y` - The y value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors

    - #### serializeValueIntegerUnsigned1

          public void serializeValueIntegerUnsigned1​(long x)
                                              throws java.io.IOException,
                                                     java.lang.IllegalArgumentException

      Must be overridden for writers that accept values of this type.
      Specified by:
        `serializeValueIntegerUnsigned1` in interface `SMFSerializerDataAttributesValuesType`
      Parameters:
        `x` - The x value
      Throws:
        `java.io.IOException` - On I/O errors
        `java.lang.IllegalArgumentException` - On other errors