Interface Editable<T extends Module>

Type Parameters:
T - editable module type
All Known Implementing Classes:
ContentModule, RichContentModule, SimpleListModule

public interface Editable<T extends Module>
Primary editing contract for mutable SimplyPages modules.

Framework boundary: this interface defines rendering and mutation hooks only. Applications are responsible for authorization, CSRF, transport validation, and persistence policy.

Mutability and thread-safety: implementations are typically mutable and request-scoped. Treat editable module instances as not thread-safe unless an implementation documents otherwise.

  • Method Details

    • buildEditView

      Component buildEditView()
      Builds the main-property edit view for this module.
      Returns:
      component containing form controls
    • applyEdits

      T applyEdits(Map<String,String> formData)
      Applies form data to this module instance.

      Side effect: mutates this module. Implementations should rebuild cached/built structure when required by module lifecycle semantics.

      Parameters:
      formData - form field name to value map
      Returns:
      this module instance
    • validate

      default ValidationResult validate(Map<String,String> formData)
      Validates form data before mutation.
      Parameters:
      formData - form field name to value map
      Returns:
      validation result; default is success
    • getEditableChildren

      default List<EditableChild> getEditableChildren()
      Returns editable child handles for nested editing UIs.
      Returns:
      editable children in UI/display order; default is empty