Module org.snapfx

Class DockLayoutSnapshotService

java.lang.Object
org.snapfx.persistence.DockLayoutSnapshotService

public final class DockLayoutSnapshotService extends Object
Handles snapshot JSON composition, parsing, and validation for layouts that include floating windows.

This service encapsulates snapshot-specific JSON handling so SnapFX can delegate snapshot concerns instead of owning all parsing/validation helpers directly.

  • Constructor Details

    • DockLayoutSnapshotService

      public DockLayoutSnapshotService()
      Creates a snapshot service with default JSON configuration.
  • Method Details

    • createSnapshotJson

      public String createSnapshotJson(String mainLayoutJson, com.google.gson.JsonArray floatingWindows)
      Builds snapshot JSON from main-layout JSON and floating-window entries.
      Parameters:
      mainLayoutJson - main-layout JSON payload
      floatingWindows - serialized floating-window entries
      Returns:
      full snapshot JSON string
    • createFloatingWindowEntry

      public com.google.gson.JsonObject createFloatingWindowEntry(String layoutJson, Double x, Double y, double width, double height, boolean alwaysOnTop)
      Builds one floating-window snapshot entry.
      Parameters:
      layoutJson - serialized floating-layout JSON
      x - preferred x position, or null
      y - preferred y position, or null
      width - preferred width
      height - preferred height
      alwaysOnTop - always-on-top state
      Returns:
      snapshot entry JSON object
    • tryParseSnapshot

      public DockLayoutSnapshotService.DockLayoutSnapshot tryParseSnapshot(String json)
      Attempts to parse snapshot JSON that includes mainLayout and optional floating windows.
      Parameters:
      json - snapshot JSON string
      Returns:
      parsed snapshot, or null when the payload is not snapshot-shaped
    • validateSnapshot

      public void validateSnapshot(DockLayoutSnapshotService.DockLayoutSnapshot snapshot, DockNodeFactory nodeFactory) throws DockLayoutLoadException
      Validates a parsed snapshot payload including all floating-layout subtrees.
      Parameters:
      snapshot - parsed snapshot
      nodeFactory - optional node factory used by validation deserializers
      Throws:
      DockLayoutLoadException - when validation fails
    • validateLayoutJson

      public void validateLayoutJson(String layoutJson, String rootPath, DockNodeFactory nodeFactory) throws DockLayoutLoadException
      Validates plain layout JSON.
      Parameters:
      layoutJson - layout JSON payload
      rootPath - root path used for error rebasing
      nodeFactory - optional node factory used by validation deserializer
      Throws:
      DockLayoutLoadException - when layout deserialization fails
    • toJson

      public String toJson(Object payload)
      Serializes arbitrary payloads using snapshot JSON configuration.
      Parameters:
      payload - payload to serialize
      Returns:
      serialized JSON