Simple model management and generation in Java

In Java managing models and their generational usages can be a bit cumbersome when you are developing code or a system that has a lot of transitional states i.e. REST call to a API to retrieve some data to manipulate, polling from a topic to process a state change or something along the lines of a DAO (Data Access Object) abstracting the access to the actual data source for example a database (more on the DAO pattern can be found here –> https://www.oracle.com/java/technologies/dataaccessobject.html).

This is where for me, Lombok comes into play. This is a holy-grail when talking about boiler-plate code. Lombok (https://projectlombok.org/) through the use of annotations and plugins to your IDE generates pesky functions, methods and constructors all for you!

How about that ey, never having to write another getter/setter again!

Below is an example model to represent a collection of message properties, annotating with @Data generates all of the getters and setters for all attributes of the class and @AllArgsConstructor then generates all of the variations of the constructors for this class; note some of the caveats in the documentation!

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class MessageProperties {
    
    private String chatID;
    private boolean receivedByAll;
    private String text;

}

How does Lombok sound to you, have I convinced you enough to give it a try?