Interface TaskStateMapper_v0_3

All Known Implementing Classes:
TaskStateMapper_v0_3Impl

public interface TaskStateMapper_v0_3
Bidirectional mapper for converting TaskState enum between A2A Protocol v0.3 and v1.0.

This is a critical mapper because v1.0 adds the TASK_STATE_ prefix to all enum constants:

  • v0.3: SUBMITTED, WORKING, ...
  • v1.0: TASK_STATE_SUBMITTED, TASK_STATE_WORKING, ...

Additionally, the UNKNOWN state in v0.3 maps to TASK_STATE_UNSPECIFIED in v1.0.

This mapper uses manual switch statements instead of @ValueMapping to:

  • Avoid mapstruct-spi-protobuf enum strategy initialization issues
  • Handle explicit null mapping (null → TASK_STATE_UNSPECIFIED/UNKNOWN)
  • Provide clear, compile-time-safe enum conversions
See Also:
  • Field Details

  • Method Details

    • toV10

      default TaskState toV10(TaskState_v0_3 v03)
      Converts a v0.3 TaskState to v1.0 TaskState.

      Mapping:

      0.3                    → 1.0
      ─────────────────────────────────────────────
      SUBMITTED              → TASK_STATE_SUBMITTED
      WORKING                → TASK_STATE_WORKING
      INPUT_REQUIRED         → TASK_STATE_INPUT_REQUIRED
      AUTH_REQUIRED          → TASK_STATE_AUTH_REQUIRED
      COMPLETED              → TASK_STATE_COMPLETED
      CANCELED               → TASK_STATE_CANCELED
      FAILED                 → TASK_STATE_FAILED
      REJECTED               → TASK_STATE_REJECTED
      UNKNOWN                → TASK_STATE_UNSPECIFIED
      null                   → TASK_STATE_UNSPECIFIED
      
      Parameters:
      v03 - the v0.3 task state (may be null)
      Returns:
      the equivalent v1.0 task state (never null)
    • fromV10

      default TaskState_v0_3 fromV10(TaskState v10)
      Converts a v1.0 TaskState to v0.3 TaskState.

      Reverse mapping:

      1.0                          → 0.3
      ───────────────────────────────────────────────────
      TASK_STATE_SUBMITTED         → SUBMITTED
      TASK_STATE_WORKING           → WORKING
      TASK_STATE_INPUT_REQUIRED    → INPUT_REQUIRED
      TASK_STATE_AUTH_REQUIRED     → AUTH_REQUIRED
      TASK_STATE_COMPLETED         → COMPLETED
      TASK_STATE_CANCELED          → CANCELED
      TASK_STATE_FAILED            → FAILED
      TASK_STATE_REJECTED          → REJECTED
      TASK_STATE_UNSPECIFIED        → UNKNOWN
      null                         → UNKNOWN
      
      Parameters:
      v10 - the v1.0 task state (may be null)
      Returns:
      the equivalent v0.3 task state (never null)