Package org.apache.synapse.commons.staxon.core.json.stream.util

## Class AutoArrayTarget

- java.lang.Object
- - org.apache.synapse.commons.staxon.core.json.stream.util.AutoArrayTarget

- All Implemented Interfaces:
    `Closeable`, `Flushable`, `AutoCloseable`, `JsonStreamTarget`

      public class AutoArrayTarget
      extends Object
      implements JsonStreamTarget

  Target filter to auto-insert array boundaries.

  Note: this class caches all events and flushes to the underlying target after receiving the last close-object event, which may cause memory issues for large documents. Also, auto-recognition of array boundaries never creates arrays with a single element.

  It is recommended to handle array boundaries via the `JsonXMLStreamWriter.writeStartArray(String)` and `JsonXMLStreamWriter.writeEndArray()` methods or by producing `<?xml-muliple ...?>` processing instructions.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AutoArrayTarget​(JsonStreamTarget delegate)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` |
    `void` | `endArray()` | End array.
    `void` | `endObject()` | End object.
    `void` | `flush()` |
    `void` | `name​(String name)` | Write name.
    `void` | `startArray()` | Start array.
    `void` | `startObject()` | Start object
    `void` | `value​(Object value)` | Write value.

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

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

- - ### Constructor Detail

    - #### AutoArrayTarget

          public AutoArrayTarget​(JsonStreamTarget delegate)

  - ### Method Detail

    - #### name

          public void name​(String name)
                    throws IOException

      Description copied from interface: `JsonStreamTarget`
      Write name.
      Specified by:
        `name` in interface `JsonStreamTarget`
      Throws:
        `IOException`

    - #### value

          public void value​(Object value)
                     throws IOException

      Description copied from interface: `JsonStreamTarget`
      Write value.
      Specified by:
        `value` in interface `JsonStreamTarget`
      Throws:
        `IOException`

    - #### startObject

          public void startObject()
                           throws IOException

      Description copied from interface: `JsonStreamTarget`
      Start object
      Specified by:
        `startObject` in interface `JsonStreamTarget`
      Throws:
        `IOException`

    - #### endObject

          public void endObject()
                         throws IOException

      Description copied from interface: `JsonStreamTarget`
      End object.
      Specified by:
        `endObject` in interface `JsonStreamTarget`
      Throws:
        `IOException`

    - #### startArray

          public void startArray()
                          throws IOException

      Description copied from interface: `JsonStreamTarget`
      Start array.
      Specified by:
        `startArray` in interface `JsonStreamTarget`
      Throws:
        `IOException`

    - #### endArray

          public void endArray()
                        throws IOException

      Description copied from interface: `JsonStreamTarget`
      End array.
      Specified by:
        `endArray` in interface `JsonStreamTarget`
      Throws:
        `IOException`

    - #### close

          public void close()
                     throws IOException

      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `Closeable`
      Throws:
        `IOException`

    - #### flush

          public void flush()
                     throws IOException

      Specified by:
        `flush` in interface `Flushable`
      Throws:
        `IOException`