java.lang.Object
org.snapfx.persistence.DockLayoutSnapshotService
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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordParsed floating-window snapshot payload.static final recordParsed snapshot payload containing main layout and optional floating windows. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a snapshot service with default JSON configuration. -
Method Summary
Modifier and TypeMethodDescriptioncom.google.gson.JsonObjectcreateFloatingWindowEntry(String layoutJson, Double x, Double y, double width, double height, boolean alwaysOnTop) Builds one floating-window snapshot entry.createSnapshotJson(String mainLayoutJson, com.google.gson.JsonArray floatingWindows) Builds snapshot JSON from main-layout JSON and floating-window entries.Serializes arbitrary payloads using snapshot JSON configuration.tryParseSnapshot(String json) Attempts to parse snapshot JSON that includesmainLayoutand optional floating windows.voidvalidateLayoutJson(String layoutJson, String rootPath, DockNodeFactory nodeFactory) Validates plain layout JSON.voidvalidateSnapshot(DockLayoutSnapshotService.DockLayoutSnapshot snapshot, DockNodeFactory nodeFactory) Validates a parsed snapshot payload including all floating-layout subtrees.
-
Constructor Details
-
DockLayoutSnapshotService
public DockLayoutSnapshotService()Creates a snapshot service with default JSON configuration.
-
-
Method Details
-
createSnapshotJson
Builds snapshot JSON from main-layout JSON and floating-window entries.- Parameters:
mainLayoutJson- main-layout JSON payloadfloatingWindows- 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 JSONx- preferred x position, ornully- preferred y position, ornullwidth- preferred widthheight- preferred heightalwaysOnTop- always-on-top state- Returns:
- snapshot entry JSON object
-
tryParseSnapshot
Attempts to parse snapshot JSON that includesmainLayoutand optional floating windows.- Parameters:
json- snapshot JSON string- Returns:
- parsed snapshot, or
nullwhen 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 snapshotnodeFactory- 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 payloadrootPath- root path used for error rebasingnodeFactory- optional node factory used by validation deserializer- Throws:
DockLayoutLoadException- when layout deserialization fails
-
toJson
Serializes arbitrary payloads using snapshot JSON configuration.- Parameters:
payload- payload to serialize- Returns:
- serialized JSON
-