Record Class ToDo
java.lang.Object
java.lang.Record
com.ns.webserver.models.ToDo
- Record Components:
id- The unique identifier for the ToDo item, generated usingUUID.randomUUID(). This ID is used for referencing, updating, and deleting specific ToDo items. Must not be null.title- The title or description of the ToDo task. This is the main textual content displayed to users describing what needs to be done. Should not be null or empty for meaningful tasks, though no validation is enforced at this level.completed- A boolean flag indicating whether the ToDo item has been completed.trueindicates the task is done,falseindicates it is pending. This field supports task state tracking and filtering.
Immutable data model representing a ToDo item in the task management system.
This record encapsulates the essential attributes of a ToDo task, including a unique identifier, descriptive title, and completion status. As a Java record (introduced in Java 14), it provides automatic implementations of constructor, accessors, equals(), hashCode(), and toString() methods, ensuring immutability and value-based semantics.
Key characteristics:
- Immutability: All fields are final; instances cannot be modified after creation
- Value-based equality: Two ToDo instances are equal if all their fields are equal
- Automatic accessors: id(), title(), and completed() methods are generated
- Thread-safe: Immutability guarantees thread safety for read operations
Usage patterns:
// Create a new ToDo item UUID id = UUID.randomUUID(); ToDo todo = new ToDo(id, "Buy groceries", false); // Access fields using generated accessors String title = todo.title(); // "Buy groceries" boolean done = todo.completed(); // false // Create an updated version (immutable update pattern) ToDo completedTodo = new ToDo(todo.id(), todo.title(), true);
JSON Representation: This record is typically serialized to JSON in the following format:
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"title": "Buy groceries",
"completed": false
}
Integration: This model is used by ToDoHandler
to manage ToDo items through a RESTful API, with operations for creating, reading,
updating, and deleting tasks.
- Since:
- 1.0
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturns the value of thecompletedrecord component.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.id()Returns the value of theidrecord component.title()Returns the value of thetitlerecord component.final StringtoString()Returns a string representation of this record class.
-
Constructor Details
-
ToDo
-
-
Method Details
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
id
-
title
-
completed
-