6f1310ee74279d447a4edebaccd591cbf094d430
[demos/kafka/demos-kafka-payment-system-transfer] / transfer / src / main / java / de / juplo / kafka / payment / transfer / controller / TransferDTO.java
1 package de.juplo.kafka.payment.transfer.controller;
2
3 import de.juplo.kafka.payment.transfer.domain.Transfer;
4 import lombok.Builder;
5 import lombok.Data;
6
7 import javax.validation.constraints.NotNull;
8
9
10 /**
11  * Simple DTO used by the REST interface
12  */
13 @Data
14 @Builder
15 public class TransferDTO
16 {
17   @NotNull(message = "Cannot be null")
18   private long id;
19   @NotNull(message = "Cannot be null")
20   private long payer;
21   @NotNull(message = "Cannot be null")
22   private long payee;
23   @NotNull(message = "Cannot be null")
24   private int amount;
25
26   private Transfer.State state;
27
28
29   public Transfer toTransfer()
30   {
31     return
32         Transfer
33             .builder()
34             .id(id)
35             .payer(payer)
36             .payee(payee)
37             .amount(amount)
38             .build();
39   }
40
41
42   public static TransferDTO of(Transfer transfer)
43   {
44     return
45         TransferDTO
46             .builder()
47             .id(transfer.getId())
48             .payer(transfer.getPayer())
49             .payee(transfer.getPayee())
50             .amount(transfer.getAmount())
51             .state(transfer.getState())
52             .build();
53   }
54 }