microservices-patterns / ftgo-application

Example code for the book Microservice patterns
Other
3.41k stars 1.32k forks source link

Proposal - use Lombok for FTGO app code #52

Open asn25 opened 4 years ago

asn25 commented 4 years ago

Hello,

I propose to use Lombok Project (https://projectlombok.org) for FTGO app. Huge amout of boilerplate code will be hidden and the code will be much more readable.

Here is Lombok-version of ValidateOrderByConsumer сommand:

@Data @NoArgsConstructor(access = AccessLevel.PRIVATE) @AllArgsConstructor public class ValidateOrderByConsumer implements Command { private long consumerId; private long orderId; private Money orderTotal; }

And below is original version of ValidateOrderByConsumer сommand:

public class ValidateOrderByConsumer implements Command {

private long consumerId; private long orderId; private Money orderTotal;

private ValidateOrderByConsumer() { }

@Override public boolean equals(Object o) { return EqualsBuilder.reflectionEquals(this, o); }

@Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); }

@Override public String toString() { return ToStringBuilder.reflectionToString(this); }

public ValidateOrderByConsumer(long consumerId, long orderId, Money orderTotal) { this.consumerId = consumerId; this.orderId = orderId; this.orderTotal = orderTotal; }

public Long getOrderId() { return orderId; }

public long getConsumerId() { return consumerId; }

public void setConsumerId(long consumerId) { this.consumerId = consumerId; }

public void setOrderId(long orderId) { this.orderId = orderId; }

public Money getOrderTotal() { return orderTotal; }

public void setOrderTotal(Money orderTotal) { this.orderTotal = orderTotal; } }

=======================================

Lombok could be added to the project by adding next lines into build.gradle in the root FTGO folder (below 'apply plugin: "java"'-line):

apply plugin: "java" dependencies { compileOnly 'org.projectlombok:lombok:1.18.10' annotationProcessor 'org.projectlombok:lombok:1.18.10' }

Best regards, Andrew