1 package org.oxerr.okcoin.websocket.dto; 2 3 import java.math.BigDecimal; 4 import java.util.Collections; 5 import java.util.Map; 6 import java.util.stream.Collectors; 7 8 import javax.json.JsonObject; 9 import javax.json.JsonString; 10 import javax.json.JsonValue; 11 12 public class Funds extends org.oxerr.okcoin.rest.dto.Funds { 13 14 private static final long serialVersionUID = 2015030701L; 15 16 public Funds(JsonValue jsonValue) { 17 this((JsonObject) jsonValue); 18 } 19 20 public Funds(JsonObject jsonObject) { 21 this( 22 jsonObject.getJsonObject("asset"), 23 jsonObject.getJsonObject("borrow"), 24 jsonObject.getJsonObject("free"), 25 jsonObject.getJsonObject("freezed"), 26 jsonObject.getJsonObject("union_fund") 27 ); 28 } 29 30 public Funds(JsonObject assetJsonObject, JsonObject borrowJsonObject, 31 JsonObject freeJsonObject, JsonObject frozenJsonObject, 32 JsonObject unionFundJsonObject) { 33 super( 34 toMap(assetJsonObject), 35 toMap(borrowJsonObject), 36 toMap(freeJsonObject), 37 toMap(frozenJsonObject), 38 toMap(unionFundJsonObject) 39 ); 40 } 41 42 private static Map<String, BigDecimal> toMap(JsonObject jsonObject) { 43 return jsonObject == null ? Collections.emptyMap() : jsonObject 44 .entrySet() 45 .stream() 46 .collect( 47 Collectors.toMap( 48 e -> e.getKey(), 49 e -> new BigDecimal(((JsonString) e.getValue()).getString()) 50 ) 51 ); 52 } 53 54 }