# Class ConversationStore

java.lang.Object
com.codename1.ai.ConversationStore

public final class ConversationStore extends Object

JSON-backed persistent conversation history.

Stores `ChatMessage` lists in `Storage` under a caller-chosen key so apps can rehydrate a `ChatView` after process restart. Multimodal parts (`ImagePart`, `ToolResultPart`) are serialized to a lossy text fallback -- image data is not round-tripped (apps that need full multimodal persistence should encode the bytes themselves and keep them in `FileSystemStorage`).

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ConversationStore(String storageKey)`
  Creates a store using one app-private `Storage` key.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  Deletes the persisted conversation.
  `String`
  `getStorageKey()`
  `List<ChatMessage>`
  `load()`
  Loads persisted history.
  `void`
  `save(List<ChatMessage> messages)`
  Replaces the persisted history.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### ConversationStore

    public ConversationStore(String storageKey)
    Creates a store using one app-private `Storage` key.
    Parameters:
      `storageKey` - non-empty key dedicated to this conversation

- ## Method Details

  - ### save

    public void save(List<ChatMessage> messages) throws IOException
    Replaces the persisted history.
    Parameters:
      `messages` - chronological history; `null` stores an empty list
    Throws:
      `IOException` - when JSON encoding or storage fails

  - ### load

    public List<ChatMessage> load() throws IOException
    Loads persisted history. Missing or incompatible data is treated as an empty conversation so upgrades do not prevent application startup.
    Returns:
      mutable chronological message list
    Throws:
      `IOException` - when stored JSON cannot be decoded

  - ### clear

    public void clear()
    Deletes the persisted conversation.

  - ### getStorageKey

    public String getStorageKey()
    Returns:
      app-private storage key used by this store