()
| 5716 | } |
| 5717 | |
| 5718 | public void featuresGenerator() |
| 5719 | { |
| 5720 | // |
| 5721 | // in the exchange-specific features can be something like this, where we support 'string' aliases too: |
| 5722 | // |
| 5723 | // { |
| 5724 | // 'my' : { |
| 5725 | // 'createOrder' : {...}, |
| 5726 | // }, |
| 5727 | // 'swap': { |
| 5728 | // 'linear': { |
| 5729 | // 'extends': my', |
| 5730 | // }, |
| 5731 | // }, |
| 5732 | // } |
| 5733 | // |
| 5734 | if (Helpers.isTrue(Helpers.isEqual(this.features, null))) |
| 5735 | { |
| 5736 | return; |
| 5737 | } |
| 5738 | // reconstruct |
| 5739 | Object initialFeatures = this.features; |
| 5740 | this.features = new java.util.HashMap<String, Object>() {{}}; |
| 5741 | Object unifiedMarketTypes = new java.util.ArrayList<Object>(java.util.Arrays.asList("spot", "swap", "future", "option")); |
| 5742 | Object subTypes = new java.util.ArrayList<Object>(java.util.Arrays.asList("linear", "inverse")); |
| 5743 | // atm only support basic methods, eg: 'createOrder', 'fetchOrder', 'fetchOrders', 'fetchMyTrades' |
| 5744 | for (var i = 0; Helpers.isLessThan(i, Helpers.getArrayLength(unifiedMarketTypes)); i++) |
| 5745 | { |
| 5746 | Object marketType = Helpers.GetValue(unifiedMarketTypes, i); |
| 5747 | // if marketType is not filled for this exchange, don't add that in `features` |
| 5748 | if (!Helpers.isTrue((Helpers.inOp(initialFeatures, marketType)))) |
| 5749 | { |
| 5750 | Helpers.addElementToObject(this.features, marketType, null); |
| 5751 | } else |
| 5752 | { |
| 5753 | if (Helpers.isTrue(Helpers.isEqual(marketType, "spot"))) |
| 5754 | { |
| 5755 | Helpers.addElementToObject(this.features, marketType, this.featuresMapper(initialFeatures, marketType)); |
| 5756 | } else |
| 5757 | { |
| 5758 | Helpers.addElementToObject(this.features, marketType, new java.util.HashMap<String, Object>() {{}}); |
| 5759 | for (var j = 0; Helpers.isLessThan(j, Helpers.getArrayLength(subTypes)); j++) |
| 5760 | { |
| 5761 | Object subType = Helpers.GetValue(subTypes, j); |
| 5762 | Helpers.addElementToObject(Helpers.GetValue(this.features, marketType), subType, this.featuresMapper(initialFeatures, marketType, subType)); |
| 5763 | } |
| 5764 | } |
| 5765 | } |
| 5766 | } |
| 5767 | } |
| 5768 | |
| 5769 | public Object featuresMapper(Object initialFeatures, Object marketType, Object... optionalArgs) |
| 5770 | { |
no test coverage detected