# Class SurfaceSerializer

java.lang.Object
com.codename1.surfaces.SurfaceSerializer

public final class SurfaceSerializer extends Object

Serializes surface descriptors to the canonical wire format shared by every port: a compact JSON document plus PNG blobs named by content hash. This class is an internal seam between the core API and the platform bridges -- it is public only because ports live in separate artifacts; apps never call it.

The wire format is versioned (`"v": 1`) and deterministic: node maps preserve build order, state maps are emitted with sorted keys, timeline entries are sorted ascending by date and image names derive from a hash of the PNG bytes (identical art always gets the same name).

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `serializeKind(WidgetKind kind)`
  Serializes a widget kind declaration.
  `static String`
  `serializeLiveActivity(LiveActivityDescriptor descriptor, Map<String,Object> state, Map<String,byte[]> imagesOut)`
  Serializes a live activity descriptor together with its initial state.
  `static String`
  `serializeState(Map<String,Object> state)`
  Serializes a state map with sorted keys.
  `static String`
  `serializeTimeline(String kindId, WidgetTimeline timeline, Map<String,byte[]> imagesOut)`
  Serializes a widget timeline.

  ### Methods inherited from class Object

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

- ## Method Details

  - ### serializeTimeline

    public static String serializeTimeline(String kindId, WidgetTimeline timeline, Map<String,byte[]> imagesOut)

    Serializes a widget timeline.

    ###### Parameters

    - `kindId`: the widget kind id the timeline belongs to
    - `timeline`: the timeline to serialize
    - `imagesOut`: receives PNG blobs keyed by registered name

    ###### Returns

    the timeline JSON

  - ### serializeLiveActivity

    public static String serializeLiveActivity(LiveActivityDescriptor descriptor, Map<String,Object> state, Map<String,byte[]> imagesOut)

    Serializes a live activity descriptor together with its initial state.

    ###### Parameters

    - `descriptor`: the descriptor to serialize
    - `state`: the initial state map, may be null
    - `imagesOut`: receives PNG blobs keyed by registered name

    ###### Returns

    the descriptor JSON

  - ### serializeState

    public static String serializeState(Map<String,Object> state)

    Serializes a state map with sorted keys.

    ###### Parameters

    - `state`: the state map, may be null

    ###### Returns

    the state JSON

  - ### serializeKind

    public static String serializeKind(WidgetKind kind)

    Serializes a widget kind declaration.

    ###### Parameters

    - `kind`: the kind to serialize

    ###### Returns

    the kind JSON