Package org.zkoss.io

## Class Serializables

- java.lang.Object
- - org.zkoss.io.Serializables

-     public class Serializables
      extends java.lang.Object

  Utilities to handle java.io.Serializable.
  Author:
    tomyeh

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static org.slf4j.Logger` | `logio` | The logger called org.zkoss.io.serializable used to log serialization information.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T> java.util.Collection<T>` | `smartRead​(java.io.ObjectInputStream s, java.util.Collection<T> col)` | Reads serializable elements back (serialized by `smartWrite(ObjectOutputStream,Collection)`)
    `static <T> java.util.List<T>` | `smartRead​(java.io.ObjectInputStream s, java.util.List<T> col)` | Reads serializable elements back (serialized by `smartWrite(ObjectOutputStream,Collection)`)
    `static <K,​V> java.util.Map<K,​V>` | `smartRead​(java.io.ObjectInputStream s, java.util.Map<K,​V> map)` | Reads serializable entries back (serialized by `smartWrite(ObjectOutputStream,Map)`).
    `static void` | `smartWrite​(java.io.ObjectOutputStream s, java.lang.Object val)` | Writes the given value only if it is serializable.
    `static <T> void` | `smartWrite​(java.io.ObjectOutputStream s, java.util.Collection<T> col)` | Writes only serializable elements of the specified collection.
    `static <K,​V> void` | `smartWrite​(java.io.ObjectOutputStream s, java.util.Map<K,​V> map)` | Writes only serializable entries of the specified map.
    `static <T> void` | `smartWrite​(java.io.ObjectOutputStream s, T[] ary)` | Writes only serializable elements of the specified array.

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

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

- - ### Field Detail

    - #### logio

          public static final org.slf4j.Logger logio

      The logger called org.zkoss.io.serializable used to log serialization information. You could set it to DEBUG, such that the non-serializable and ignored values will be logged.
      Since:
        5.0.7

  - ### Method Detail

    - #### smartWrite

          public static <K,​V> void smartWrite​(java.io.ObjectOutputStream s,
                                                    java.util.Map<K,​V> map)
                                             throws java.io.IOException

      Writes only serializable entries of the specified map. Non-serializable attributes are ignored.
      Throws:
        `java.io.IOException`

    - #### smartRead

          public static <K,​V> java.util.Map<K,​V> smartRead​(java.io.ObjectInputStream s,
                                                                       java.util.Map<K,​V> map)
                                                                throws java.io.IOException,
                                                                       java.lang.ClassNotFoundException

      Reads serializable entries back (serialized by `smartWrite(ObjectOutputStream,Map)`).
      Parameters:
        `map` - the map to hold the data being read. If null and any data is read, a new map (HashMap) is created and returned.
      Returns:
        the map being read
      Throws:
        `java.io.IOException`
        `java.lang.ClassNotFoundException`

    - #### smartWrite

          public static <T> void smartWrite​(java.io.ObjectOutputStream s,
                                            java.util.Collection<T> col)
                                     throws java.io.IOException

      Writes only serializable elements of the specified collection.
      Throws:
        `java.io.IOException`

    - #### smartRead

          public static <T> java.util.Collection<T> smartRead​(java.io.ObjectInputStream s,
                                                              java.util.Collection<T> col)
                                                       throws java.io.IOException,
                                                              java.lang.ClassNotFoundException

      Reads serializable elements back (serialized by `smartWrite(ObjectOutputStream,Collection)`)
      Parameters:
        `col` - the collection to hold the data being read. If null and and data is read, a new collection (LinkedList) is created and returned.
      Returns:
        the collection being read
      Throws:
        `java.io.IOException`
        `java.lang.ClassNotFoundException`

    - #### smartRead

          public static <T> java.util.List<T> smartRead​(java.io.ObjectInputStream s,
                                                        java.util.List<T> col)
                                                 throws java.io.IOException,
                                                        java.lang.ClassNotFoundException

      Reads serializable elements back (serialized by `smartWrite(ObjectOutputStream,Collection)`)
      Parameters:
        `col` - the collection to hold the data being read. If null and and data is read, a new collection (LinkedList) is created and returned.
      Returns:
        the collection being read
      Throws:
        `java.io.IOException`
        `java.lang.ClassNotFoundException`
      Since:
        6.0.0

    - #### smartWrite

          public static <T> void smartWrite​(java.io.ObjectOutputStream s,
                                            T[] ary)
                                     throws java.io.IOException

      Writes only serializable elements of the specified array.

      To read back, use `smartRead(ObjectInputStream, Collection)`.

      Throws:
        `java.io.IOException`
      Since:
        3.0.0

    - #### smartWrite

          public static void smartWrite​(java.io.ObjectOutputStream s,
                                        java.lang.Object val)
                                 throws java.io.IOException

      Writes the given value only if it is serializable. If not, null is written.
      Throws:
        `java.io.IOException`
      Since:
        5.0.7