1 package org.oxerr.peatio.websocket.dto;
2
3 import java.math.BigDecimal;
4 import java.time.Instant;
5
6 import javax.json.JsonObject;
7
8 import org.oxerr.peatio.rest.dto.BaseObject;
9
10 public class OrderBook extends BaseObject {
11
12 private final String action;
13 private final Order order;
14 private final String locale;
15
16 public OrderBook(String action, Order order, String locale) {
17 this.action = action;
18 this.order = order;
19 this.locale = locale;
20 }
21
22 public OrderBook(JsonObject jsonObject) {
23 this.action = jsonObject.getString("action");
24 this.order = new Order(jsonObject.getJsonObject("order"));
25 this.locale = jsonObject.getString("locale");
26 }
27
28 public String getAction() {
29 return action;
30 }
31
32 public Order getOrder() {
33 return order;
34 }
35
36 public String getLocale() {
37 return locale;
38 }
39
40 public static class Order extends BaseObject {
41 private final long id;
42 private final Instant timestamp;
43 private final String type;
44 private final BigDecimal volume;
45 private final BigDecimal price;
46 private final String market;
47 private final String ordType;
48
49 public Order(JsonObject jsonObject) {
50 this.id = jsonObject.getJsonNumber("id").longValue();
51 this.timestamp = Instant.ofEpochSecond(jsonObject.getJsonNumber("timestamp").longValue());
52 this.type = jsonObject.getString("type");
53 this.volume = new BigDecimal(jsonObject.getString("volume"));
54 this.price = new BigDecimal(jsonObject.getString("price"));
55 this.market = jsonObject.getString("market");
56 this.ordType = jsonObject.getString("ord_type");
57 }
58
59 public long getId() {
60 return id;
61 }
62
63 public Instant getTimestamp() {
64 return timestamp;
65 }
66
67 public String getType() {
68 return type;
69 }
70
71 public BigDecimal getVolume() {
72 return volume;
73 }
74
75 public BigDecimal getPrice() {
76 return price;
77 }
78
79 public String getMarket() {
80 return market;
81 }
82
83 public String getOrdType() {
84 return ordType;
85 }
86
87 }
88
89 }